Заголовок: Disqus API с возможностью получения параметров старых комментариев вместо последнихPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Заголовок: Disqus API с возможностью получения параметров старых комментариев вместо последних

Сообщение Anonymous »

Я работаю над сценарием для получения комментариев с нескольких форумов Disqus с помощью Disqus API. Моя цель — получить комментарии за последнее указанное количество часов до текущего времени. Однако я столкнулся с проблемой, когда параметр с тех пор работает противоположным образом, извлекая старые комментарии, а не недавние.
Вот упрощенная версия моего скрипта:
Вот упрощенная версия моего скрипта:

Код: Выделить всё

import json
import requests
import pandas as pd
from datetime import datetime, timedelta
from ratelimit import limits, sleep_and_retry

# Constants for rate limiting
CALLS = 900
RATE_LIMIT = 3600

# API secrets for different forums
API_SECRETS = {
"example forum':"key"
}
# Rate limit decorator
@sleep_and_retry
@limits(calls=CALLS, period=RATE_LIMIT)
def check_limit(url):
return requests.get(url)

def fetch_comments(forum, hours=1):
api_secret = API_SECRETS[forum]
skeleton_url = f'https://disqus.com/api/3.0/forums/listPosts.json?forum={forum}&limit=100&related=thread&include=approved&order=desc&api_secret={api_secret}'

# Calculate the start time as a UNIX timestamp
time_threshold = datetime.utcnow() - timedelta(hours=hours)
time_threshold = int(time_threshold.timestamp())

url = f"{skeleton_url}&since={time_threshold}"

response = check_limit(url)

try:
comments = response.json()
except:
print('Error:', response.status_code)
return []

total_comments = comments["response"]
cursor = comments.get("cursor", {})
i = 1

while cursor.get("hasNext"):
print(f"Fetching comments for {forum}, page {i}, cursor: {cursor['next']}")
next_cursor = cursor['next']
next_url = f"{skeleton_url}&cursor={next_cursor}"

try:
response = check_limit(next_url)
comments = response.json()

if comments["code"] == 15:
time.sleep(3000)
response = check_limit(next_url)
comments = response.json()

if comments["code"] == 13:
print(comments)
print("Sleeping for 10 mins")
time.sleep(600)
else:
total_comments.extend(comments["response"])
i += 1

cursor = comments.get("cursor", {})

except Exception as e:
print(e)
time.sleep(60)

return total_comments

def main():
forums = ["example forum"]
for forum in forums:
print(f"Processing forum: {forum}")
comments = fetch_comments(forum, hours=1)
# Process and save comments

if __name__ == "__main__":
main()
Проблема:
Когда я устанавливаю параметр часов на 1, 2, 7 или 25, все полученные комментарии старше указанного временной интервал, то есть они выходят за пределы диапазона «последние X часов». Похоже, что параметр с тех пор извлекает комментарии с указанного времени и раньше, а не с указанного времени до текущего времени.
Любая помощь или рекомендации о том, как правильно использовать параметр с тех пор. или другой метод достижения желаемых результатов был бы очень признателен.
Спасибо!
Что я пробовал:
  • Я убедился, что временные метки правильно преобразованы в формат UNIX.

    < li>Я протестировал разные значения параметра Часы, чтобы подтвердить поведение.
  • Я просмотрел документацию Disqus API, но поведение все еще неожиданный.

Моя цель:

Я хочу получать комментарии от последнего указанного количества часов до текущего времени. Как я могу изменить свой скрипт или правильно использовать параметры Disqus API для достижения этой цели?

Подробнее здесь: https://stackoverflow.com/questions/785 ... ecent-ones
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Jquery Drag drop – один список с возможностью сортировки и другой список с возможностью перетаскивания и удаления без со
    Anonymous » » в форуме Jquery
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Настройте «функцию комментариев» WordPress или другую встроенную функцию WordPress с возможностью утверждения.
    Anonymous » » в форуме Php
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous
  • Создание комментариев и добавление в поле для комментариев
    Anonymous » » в форуме Html
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Не могу опубликовать имя автора с помощью Disqus
    Гость » » в форуме C#
    0 Ответы
    78 Просмотры
    Последнее сообщение Гость
  • Не могу опубликовать имя автора с помощью Disqus
    Гость » » в форуме C#
    0 Ответы
    36 Просмотры
    Последнее сообщение Гость

Вернуться в «Python»