لقد حاولت إجراء هندسة عكسية للموقع عن طريق إرسال طلبات POST إلى “https://{hostUrl}/topics/timings” مع محتوى-النوع (content-type) ورمز الحماية من التزييف (csrf token) وعامل المستخدم (user-agent).
def load_topics(session, page):
print(f"[Topics] Loading page {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
}
# استخدم json=payload للإرسال كتطبيق/json
r = session.post(url, json=payload, headers = {
"X-CSRF-Token": csrf,
"User-Agent": "Mozilla/5.0",
"X-Requested-With": "XMLHttpRequest",
"Content-Type": "application/json"
}
)
يمكنني القول بيقين 100% أن هذا البيان صحيح!
تم تحديث قراءات المشاركات عدة مرات ولكن قراءات المواضيع لم تتغير. هل هي على فترات زمنية مختلفة؟ لقد مر حوالي 20 ساعة منذ ذلك الحين واستمر عدد قراءات المشاركات في الزيادة ولكن قراءات المواضيع لم تتغير.
أريد فقط أن أحاول عكس هندسة نقاط النهاية! هذا رائع.
أعتقد أنه يجب أن أنتظر قليلاً قبل العودة ورؤية ما إذا كانت القيم قد تغيرت
@Canapin، أنا لست مالك الموقع. إذا كان لا يزال بإمكاني تشغيله بمجرد تسجيل الدخول كمستخدم عادي، فأخبرني بالطريقة للقيام بذلك.
@Moin
الموقع الذي أستخدمه قام بتعطيل ذلك وسيعرض دائمًا “سيتم عرض قائمة بأعضاء المجتمع الذين يظهرون نشاطهم هنا. في الوقت الحالي القائمة فارغة لأن مجتمعك جديد تمامًا!”.
في حالته لا يمكنك ذلك. كونك مستخدمًا عاديًا ليس مثاليًا للهندسة العكسية لواجهة برمجة التطبيقات (API).
إذا استطعت، جرب تثبيت تطوير محلي أو تثبيت إنتاج على خادم افتراضي خاص (VPS) رخيص (خادم بقيمة 3-4 دولارات جيد)، نظرًا لأن Discourse لم يعد يتطلب اسم مضيف أو SMTP.