Ich habe versucht, die Website zu reverse-engineeren, indem ich POST-Anfragen an „https://{hostUrl}/topics/timings“ mit Content-Type, CSRF-Token und User-Agent gesendet habe.
Der Code sieht in Ordnung aus, ich bin mir nicht sicher, woher das Problem kommt.
Mein Bauchgefühl sagt mir, dass wir einfach etwas Offensichtliches übersehen haben
def load_topics(session, page):
print(f"[Themen] Lade Seite {page}")
r = session.get(f"https://{hostUrl}/latest.json?page={page}")
if r.status_code != 200:
return []
return [{"id": t["id"], "posts_count": t["posts_count"]} for t in r.json()["topic_list"]["topics"]]
timings = {
str(i): 60000
for i in range(1, post_count + 1)
}
payload = {
"topic_id": topic_id,
"topic_time": post_count * 60000,
"timings": timings
}
# Verwende json=payload, um als application/json zu senden
r = session.post(url, json=payload, headers = {
"X-CSRF-Token": csrf,
"User-Agent": "Mozilla/5.0",
"X-Requested-With": "XMLHttpRequest",
"Content-Type": "application/json"
}
)
Ich kann mit 100%iger Sicherheit sagen, dass diese Aussage wahr ist!
Die Beitragslesungen wurden mehrmals aktualisiert, die Themenlesungen jedoch nicht. Sind sie in unterschiedlichen Intervallen? Es ist ungefähr 20 Stunden her und die Anzahl der gelesenen Beiträge steigt weiter an, aber die der gelesenen Themen nicht.
Ich möchte nur versuchen, die Endpunkte umzukehren! Das ist cool.
Ich denke, ich sollte noch etwas warten, bevor ich zurückkomme und sehe, ob sich die Werte geändert haben.
@Canapin, ich bin nicht der Besitzer der Website. Wenn ich es immer noch auslösen kann, indem ich einfach als normaler Benutzer angemeldet bin, teilen Sie mir bitte die Methode mit, dies zu tun.
@Moin
Die Seite, die ich verwende, hat das deaktiviert und gibt immer „Eine Liste von Community-Mitgliedern, die ihre Aktivität anzeigen, wird hier angezeigt. Im Moment ist die Liste leer, da Ihre Community noch brandneu ist!“ zurück.
In seinem Fall können Sie das nicht. Als regulärer Benutzer ist es nicht ideal, die API zu reverse-engineeren.
Wenn Sie können, versuchen Sie eine lokale Entwicklerinstallation oder eine Produktionsinstallation auf einem günstigen VPS (ein 3-4 $ Server ist in Ordnung), da Discourse keinen Hostnamen oder SMTP mehr benötigt.