Update README.md
This commit is contained in:
111
README.md
111
README.md
@@ -1,2 +1,109 @@
|
|||||||
# derpibooru-telegram-bot
|
# 🐴 Derpibooru Telegram Bot
|
||||||
Telegram-бот, который автоматически публикует изображения с Derpibooru по заданным тегам.
|
|
||||||
|
Telegram-бот, который автоматически публикует изображения с [Derpibooru](https://derpibooru.org) по заданным тегам.
|
||||||
|
|
||||||
|
Особенности:
|
||||||
|
|
||||||
|
* Публикация изображений в канал каждый час в 00 минут.
|
||||||
|
* Поддержка команд в терминале:
|
||||||
|
|
||||||
|
* `postnow` — публикация случайного изображения сразу.
|
||||||
|
* `posttags tag1 tag2 ...` — публикация изображения с указанными тегами.
|
||||||
|
* Автоматический 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
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔧 Как получить `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).
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user