تمييز منشورات محددة كـ"مقروءة" عبر الـ API؟

مرحبًا،
أقوم بسحب المنشورات عبر واجهة برمجة التطبيقات الخاصة بـ Discourse باستخدام بايثون. يستدعي الطلب الكود التالي (الذي يُنفذ طلب GET في الأساس) ويعيد ملف .json مشابهًا لهذا المنشور: هذا المنشور

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

المنشورات المسترجعة تحتوي على علم 'read'. المنشورات التي أرسلها تكون read=True، لكن المنشورات التي أستقبلها جميعها مُعلّمة بـ read=False، ما لم أقم بتسجيل الدخول فعليًا إلى Discourse وقراءة المنشورات يدويًا.

هل توجد طريقة لعلّم منشور معين بأنه مُقروء عبر الواجهة باستخدام معرف المنشور (post_id)؟ لقد بحثت في مكتبة pydiscourse، وهي توفر طريقة لإضافة وقت القراءة، والتي يُفترض أنها تجعل المنشور “مقروءًا”، لكن بغض النظر عن مقدار وقت القراءة الذي “أضيفه”، فإن نقطة النهاية .json تعيد قيمة خاطئة (false). لا أهتم بفجوات القراءة طالما يمكنني تحديد معرفات منشورات معينة.

    def topic_timings(self, topic_id, time, timings={}, **kwargs):
        """
        تعيين الوقت المستغرق في قراءة منشور
        من الآثار الجانبية لهذه الدالة هو علامة المنشور بأنه مُقروء

        المعاملات:
            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)

أيضًا، حل بديل صالح هو إمكانية علّم موضوع كامل (جميع المنشورات داخله) بأنه مُقروء.

أي مساعدة مرحب بها!

تحرير: من الضروري أن تعمل هذه الوظيفة أيضًا مع الرسائل الخاصة.

حسنًا، قمت بعكس هندستها باستخدام المتصفح. يجب استدعاء topic_timings() باستخدام فهرس المنشور في وسيط timings={} بدلاً من معرف المنشور. أعتقد أن هذا حل بديل مقبول إلى حد ما، رغم أنني أفضّل وجود طريقة تعتمد على معرف المنشور، لأنه ليس من السهل استنتاج الفهرس من المعرفات (سيتطلب جلب الموضوع الفعلي أولاً).

لا أعرف ما إذا كان هذا سيساعد، لكنني أعتقد أن هناك مسارًا /p/<POST_ID>.