написать бота для телеграмм который бы мониторил выход новостей отсюда https://decrypt.co/news/cryptocurrencies https://decrypt.co/news/gaming
Брал бы только картинку первую, конвертил ее в jpg, заголовок и текст - загонял в chatgpt для рерайта по промту и постил в тг канал - снизу бы добавлял ссылки блок и хештег
Схема такая:
- в конце дня заходит в указанные категории
- если есть пост за текущую дату то открывает пост, берет заголовок с описанием и картинку
- отправляет на рерайт по промту в чатгпт
- картинку конвертит в jpg
Пост в канал
- вставляет полученный текст от чатгпт, внизу блок ссылками и хештег
- добавляет картинку
- постит
Основные настройки задаются переменными окружения: OPENAI_API_KEY - API-key для работы с chatgpt OPENAI_PROJECT_ID OPENAI_MODEL OPENAI_MAX_TOKENS - максимальное количество токенов в одном запросе к чатгпт OPENAI_TEMPERATURE - температура ответов чатгпт TG_BOT_API_TOKEN - токен телеграм-бота который является админом каналов, в которые нужен постинг TG_BOT_TARGET_CHANNELS - список каналов, через запятую без пробелов. без t.me/ и без @
Настройки задаются в файле app/core/config.py Там есть переменная publishing_schedule, которой присваивается список словарей вида [ { "source": "decrypt_co", "category": "gaming", "time": ["12:00", "19:05"] }, { "source": "decrypt_co", "category": "coins", "time": ["12:05", "19:00"] }, { "source": "beincrypto_com", "category": "press releases", "time": ["15:00", "21:00"] },
]
При запуске скрипта в окружение автоматически загружаются переменные из файла .env
Для запуска скрипта нужно установить UV - https://docs.astral.sh/uv/getting-started/installation/
Запускать можно командой uv run python -m app.main
Также возможен запуск через pm2: pm2 start pm2-config.json