85 lines
4.2 KiB
Markdown
85 lines
4.2 KiB
Markdown
# RP Farm Bots (Pyrogram)
|
||
|
||
Два процесса:
|
||
|
||
- **`controller.py`** — обычный бот через Bot API. Через него вы **регистрируете
|
||
аккаунты, вводите данные и управляете фармом** — никакого ручного
|
||
редактирования JSON с аккаунтами.
|
||
- **`farmer.py`** — фоновый процесс, который читает базу и от лица
|
||
зарегистрированных аккаунтов шлёт фарм-команду по расписанию. Раз в минуту
|
||
сам подхватывает новые аккаунты, добавленные через контроллер — рестарт не нужен.
|
||
|
||
Всё динамическое состояние — в `farm_state.db` (SQLite), создаётся автоматически.
|
||
|
||
## Установка
|
||
|
||
```bash
|
||
pip install -r requirements.txt
|
||
cp config.example.json config.json
|
||
```
|
||
|
||
В `config.json` нужны только секреты самого бота-контроллера (не аккаунтов
|
||
фарма!):
|
||
|
||
1. **bot_token** — создайте бота через [@BotFather](https://t.me/BotFather).
|
||
2. **controller_api_id / controller_api_hash** — любая пара с
|
||
https://my.telegram.org → "API development tools" (можно использовать
|
||
свою личную, она не связана с фарм-аккаунтами).
|
||
3. **admin_ids** — ваш Telegram user_id. Запустите контроллер и напишите ему
|
||
`/myid`, чтобы узнать свой ID, затем впишите его в конфиг и перезапустите бота.
|
||
|
||
## Запуск
|
||
|
||
```bash
|
||
python controller.py
|
||
```
|
||
|
||
Напишите боту `/start` — увидите меню:
|
||
|
||
- **➕ Добавить аккаунт** (`/addaccount`) — пошаговый мастер:
|
||
1. Имя аккаунта (произвольное, например `acc1`)
|
||
2. `api_id` и `api_hash` — для этого аккаунта, с my.telegram.org
|
||
(у каждого своего аккаунта должна быть отдельная пара)
|
||
3. Номер телефона аккаунта
|
||
4. Код из Telegram/SMS
|
||
5. Пароль 2FA (если включён)
|
||
6. Юзернейм/ID целевого РП-бота (`@some_rp_bot`)
|
||
7. Текст фарм-команды (`/farm`, `/work`, `/daily`...)
|
||
8. Интервал фарма в часах (например `4`)
|
||
|
||
После этого аккаунт сразу активен.
|
||
|
||
- **📋 Мои аккаунты** (`/accounts`) — список
|
||
- **📊 Статус** (`/status`) — пауза/интервал/сколько ждать/последний ответ бота
|
||
|
||
Остальные команды:
|
||
|
||
```
|
||
/pause <name|all>
|
||
/resume <name|all>
|
||
/setinterval <name> <часы>
|
||
/settarget <name> <@бот>
|
||
/setcommand <name> <текст>
|
||
/farmnow <name>
|
||
/removeaccount <name>
|
||
/cancel — прервать мастер добавления
|
||
```
|
||
|
||
Отдельным процессом (другой терминал / systemd-сервис):
|
||
|
||
```bash
|
||
python farmer.py
|
||
```
|
||
|
||
## Важно
|
||
|
||
- Код/пароль 2FA вводятся текстом прямо в чат с вашим ботом — это летит
|
||
через серверы Telegram (MTProto), обычная практика для ботов-помощников
|
||
входа, но `config.json` и файлы `*_session.session` всё равно держите
|
||
строго при себе, не выкладывайте в публичные репозитории.
|
||
- Юзерботы (автоматизация обычных аккаунтов через Pyrogram) формально не
|
||
разрешены правилами Telegram — интервалы и джиттер уже встроены, не
|
||
убирайте их и не гоняйте десятки аккаунтов с одинаковым паттерном.
|
||
- Проверьте правила самого РП-бота на предмет автофарма — бан там за
|
||
накрутку это отдельный от Telegram риск.
|