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

**URL:** <https://meta.discourse.org/t/mark-specific-posts-as-read-through-the-api/198701>\
**Category:** Development\
**Tags:** rest-api\
**Created:** [30. Juli 2021 um 14:53 UTC](https://meta.discourse.org/t/mark-specific-posts-as-read-through-the-api/198701 "2021-07-30T14:53:40Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![vagosduke](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/vagosduke/32/196991_2.png) [@vagosduke](https://meta.discourse.org/u/vagosduke)\
**Post date:** [30. Juli 2021 um 14:53 UTC](https://meta.discourse.org/t/mark-specific-posts-as-read-through-the-api/198701/1 "2021-07-30T14:53:40Z")

</div>

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](https://meta.discourse.org/t/198701.json) zurück:

```plaintext
    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.

```plaintext
    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:

```plaintext
    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.

---

_[View the full topic](https://meta.discourse.org/t/mark-specific-posts-as-read-through-the-api/198701)._
