Files
derpibooru-telegram-bot/README.md
2026-02-16 20:58:08 +03:00

111 lines
3.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🐴 Derpibooru Telegram Bot
Telegram-бот, который автоматически публикует изображения с [Derpibooru](https://derpibooru.org) по заданным тегам.
Особенности:
* Публикация изображений в канал каждый час в 00 минут.
* Поддержка команд в терминале:
* `postnow` — публикация случайного изображения сразу.
* `posttags tag1 tag2 ...` — публикация изображения с указанными тегами.
* `timetopost` - отображает время, которое осталось до публикации в секундах.
* Автоматический backoff при ошибках 500/501 API Derpibooru, чтобы избежать блокировки.
* В подписи к изображению выводятся все теги, автор и источник.
---
## 📂 Структура проекта
```
derpibooru-telegram-bot/
├─ app.py # Основной скрипт бота
├─ sent_images.json # Лог уже отправленных изображений
├─ bot.log # Лог работы бота
├─ README.md # Этот файл
└─ requirements.txt # Зависимости Python
```
---
## ⚙️ Установка
1. Клонируем репозиторий:
```bash
git clone https://github.com/USERNAME/derpibooru-telegram-bot.git
cd derpibooru-telegram-bot
```
2. Создаём виртуальное окружение и устанавливаем зависимости:
```bash
python -m venv venv
source venv/bin/activate # Linux/macOS
venv\Scripts\activate # Windows
pip install -r requirements.txt
```
3. Создаём `requirements.txt`:
```
python-telegram-bot==20.5
aiohttp==3.9.5
```
4. Настраиваем `app.py`:
```python
TELEGRAM_TOKEN = "ВАШ_TELEGRAM_TOKEN"
CHANNEL_ID = -100XXXXXXXXX # числовой ID канала
DERPIBOORU_TOKEN = "ВАШ_DERPIBOORU_TOKEN"
TAGS_LIST = [
["тег1"],
["тег2]",
["тег3"]
]
FILTER_ID = 56027 # ID фильтра, разрешающего NSFW
```
---
## 🚀 Запуск
```bash
python app.py
```
* Бот автоматически публикует изображения каждый час.
* В терминале можно писать команды:
```
postnow
posttags tag1
timetopost
```
---
## 🔧 Как получить `FILTER_ID` для NSFW
1. Зайдите на [Derpibooru](https://derpibooru.org/) и авторизуйтесь.
2. Перейдите в **Filters****Create New Filter**.
3. Настройте фильтр так, чтобы **NSFW контент не скрывался**.
4. Скопируйте `ID` фильтра из URL (пример: `https://derpibooru.org/filters/56027``56027`).
5. Подставьте этот `FILTER_ID` в `app.py`.
---
## 📌 Советы
* Убедитесь, что токен Telegram и Derpibooru верны.
* Не используйте теги из категории Safe вместе с NSFW, иначе API вернёт пустой результат.
* Все уже опубликованные изображения сохраняются в `sent_images.json`, чтобы не повторять посты.
---
## ⚖️ Лицензия
[MIT License](https://github.com/DarkShyMW/derpibooru-telegram-bot/blob/main/LICENSE).