안녕하세요,
저는 Discourse API를 통해 게시글을 가져오고 있습니다. 이를 위해 Python을 사용하고 있습니다. 요청은 다음 코드(본질적으로 GET 요청을 수행)를 호출하며, 이 게시글과 유사한 .json을 반환합니다.
def topic_by_id(self, topic_id, **kwargs):
return self._get("/t/{0}.json".format(topic_id), **kwargs)
반환되는 게시글에는 'read' 플래그가 있습니다. 제가 전송하는 게시글은 read=True이지만, 제가 수신하는 게시글은 제가 Discourse에 직접 로그인하여 읽지 않는 한 모두 read=False로 표시됩니다.
post_id가 주어졌을 때 API를 통해 특정 게시글을 읽음으로 표시하는 방법이 있을까요? pydiscourse를 살펴보고 있는데, 읽기 시간을 추가하는 메서드를 제공한다고 하는데, 이는 게시글을 "읽음"으로 표시한다고 합니다. 하지만 읽기 시간을 얼마나 "추가"해도 .json 엔드포인트는 false를 반환합니다. 특정 게시글 ID를 표시할 수만 있다면 읽기 "구간(gaps)"은 신경 쓰지 않습니다.
def topic_timings(self, topic_id, time, timings={}, **kwargs):
"""
게시글 읽기에 걸린 시간 설정
이 작업의 부수적 효과는 게시글을 읽음으로 표시하는 것입니다
Args:
topic_id: { post_number: ms }
time: 주제 전체 시간 (단위는 무엇인가요????)
timings:
"""
kwargs["topic_id"] = topic_id
kwargs["topic_time"] = time
for post_num, timing in timings.items():
kwargs["timings[{0}]".format(post_num)] = timing
return self._post("/topics/timings", **kwargs)
유사한 기능은 이미 notifications/mark-read 엔드포인트를 사용하여 알림에 대해 구현되었습니다.
def mark_read(self, notification_id):
return self._put('/notifications/mark-read.json', id=notification_id)
또한, 전체 주제(주제 내 모든 게시글)를 읽음으로 표시할 수 있다면 그것도 유효한 대안이 될 수 있습니다.
도움 부탁드립니다!
수정: 이 기능이 개인 메시지(private messages)에도 작동해야 합니다.