111 lines
3.5 KiB
Markdown
111 lines
3.5 KiB
Markdown
# 🐴 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).
|
||
|