Bestimmte Beiträge über die API als "gelesen" markieren?

Hallo,

ich extrahiere Beiträge über die Discourse-API. Dafür verwende ich Python. Die Anfrage ruft den folgenden Code auf (der im Wesentlichen eine GET-Anfrage stellt) und gibt das .json-Format ähnlich wie in diesem Beitrag zurück:

    def topic_by_id(self, topic_id, **kwargs):
        return self._get("/t/{0}.json".format(topic_id), **kwargs)

Die zurückgegebenen Beiträge besitzen ein 'read'-Flag. Die Beiträge, die ich sende, haben read=True, aber bei den empfangenen Beiträgen ist das Flag stets auf read=False gesetzt, es sei denn, ich melde mich aktiv bei Discourse an und lese sie.

Gibt es eine Möglichkeit, einen bestimmten Beitrag über die API als gelesen zu markieren, gegeben eine post_id? Ich habe mich mit pydiscourse beschäftigt; sie bieten eine Methode zum Hinzufügen von Lesezeit an, die angeblich auch einen Beitrag als „gelesen" markiert. Doch egal wie viel Lesezeit ich „hinzufüge", der .json-Endpunkt gibt weiterhin false zurück. Mir sind keine Lese-Lücken wichtig, solange ich spezifische Beitrag-IDs als gelesen markieren kann.

    def topic_timings(self, topic_id, time, timings={}, **kwargs):
        """
        Legt die Zeit fest, die mit dem Lesen eines Beitrags verbracht wurde.
        Eine Nebenwirkung hiervon ist, dass der Beitrag als gelesen markiert wird.

        Argumente:
            topic_id: { post_number: ms }
            time: Gesamtzeit für das Thema (in welcher Einheit????)
            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)

Ähnliche Funktionalität wurde bereits für Benachrichtigungen über den Endpunkt notifications/mark-read umgesetzt:

    def mark_read(self, notification_id):
        return self._put('/notifications/mark-read.json', id=notification_id)

Ein weiterer möglicher Workaround wäre, falls es möglich ist, ein ganzes Thema (alle darin enthaltenen Beiträge) als gelesen zu markieren.

Jede Hilfe ist willkommen!

EDIT: Es ist erforderlich, dass dies auch für private Nachrichten funktioniert.

Nun, ich habe es mit dem Browser reverse-engineert.
topic_timings() muss unter Verwendung des Post-Index im Argument timings={} aufgerufen werden, anstatt der Post-ID.

Ich schätze, das ist eine akzeptable Workaround-Lösung, obwohl ich eine Methode basierend auf der Post-ID bevorzugen würde, da es nicht sehr einfach ist, den Index aus den IDs abzuleiten (man müsste zunächst das eigentliche Thema abrufen).

Ich weiß nicht, ob das hilft, aber ich glaube, es gibt eine Route /p/<POST_ID>.