An open API service indexing awesome lists of open source software.

https://github.com/bohd4nx/Gifts-Buyer

Automated Telegram userbot for purchasing gifts with smart prioritization, multiple recipients, and intelligent balance management.
https://github.com/bohd4nx/Gifts-Buyer

auto-sender gifts telegram user-bot

Last synced: 12 months ago
JSON representation

Automated Telegram userbot for purchasing gifts with smart prioritization, multiple recipients, and intelligent balance management.

Awesome Lists containing this project

README

          

# Telegram Gifts Buyer

Program Preview

Автоматический Telegram бот для покупки подарков с умной приоритизацией, поддержкой нескольких получателей и контролем
баланса.

> 🌐 [English version](README.md)

## ✨ Возможности

- **🤖 Автоматический мониторинг**: Постоянно сканирует новые подарки по вашим критериям
- **🎯 Умная приоритизация**: Приоритет редким подаркам (малый тираж) в ваших ценовых диапазонах
- **👥 Несколько получателей**: Разное количество для разных пользователей/каналов в каждом диапазоне
- **💰 Контроль баланса**: Частичные покупки при нехватке средств
- **📊 Подробные уведомления**: Подтверждения покупок, оповещения о балансе и сводки
- **🔧 Гибкая настройка**: Простой формат для ценовых диапазонов и получателей
- **🌍 Два языка**: Русский и английский интерфейс

## 🚀 Установка

```bash
git clone https://github.com/bohd4nx/Gifts-Buyer.git
cd Gifts-Buyer
pip install -r requirements.txt
```

Настройте `config.ini` и запустите:

```bash
python main.py
```

## 🐳 Запуск через Docker

Вы можете запустить бота через Docker. Для этого необходимо пройти однократную авторизацию Telegram и после запустить в
фоне.

### 1. Сборка образа

```bash
docker compose build
```

### 2. Авторизация в Telegram (однократная настройка)

```bash
docker compose run --rm gift-buyer
```

Следуйте инструкциям для входа в Telegram. Сессия будет сохранена в папке `./data/`.

> ℹ️ Эту команду нужно выполнять только один раз — до тех пор, пока сессия активна.

### 3. Запуск бота в фоне

```bash
docker compose up -d
```

Бот использует сохранённую сессию и настройки из `config.ini`.

### 4. Остановка бота (при необходимости)

```bash
docker compose down
```

## ⚙️ Настройка

### Основные настройки

```ini
[Telegram]
API_ID = ваш_api_id # С https://my.telegram.org/apps
API_HASH = ваш_api_hash # С https://my.telegram.org/apps
PHONE_NUMBER = +1234567890 # Ваш номер телефона
CHANNEL_ID = -100xxxxxxxxx # Канал для уведомлений (-100 чтобы отключить)

[Bot]
INTERVAL = 10 # Интервал проверки в секундах
LANGUAGE = RU # Язык интерфейса (EN/RU)

[Gifts]
# Формат: ценовой_диапазон: лимит_тиража x количество: получатели
GIFT_RANGES = 1-1000: 500000 x 1: @user1, 123456; 1001-5000: 100000 x 2: @канал

PURCHASE_ONLY_UPGRADABLE_GIFTS = False # Покупать только улучшаемые подарки
PRIORITIZE_LOW_SUPPLY = True # Приоритет редким подаркам
```

### Формат диапазонов подарков

**Формат**: несколько диапазонов, разделённых `;`
Каждый диапазон: `мин_цена-макс_цена: лимит_тиража x количество: получатели`

**Примеры**:

- `1-1000: 500000 x 1: @johndoe, 123456789` - Дешёвые подарки, по 1 копии
- `1001-5000: 100000 x 2: @канал, @пользователь` - Средний диапазон, по 2 копии
- `5001-50000: 50000 x 5: 987654321` - Дорогие подарки, 5 копий

**В результате**:
`GIFT_RANGES = 1-1000: 500000 x 1: @johndoe, 123456789; 1001-5000: 100000 x 2: @канал, @user; 5001-50000: 50000 x 5: 987654321`

**Получатели могут быть**:

- Юзернеймы: `@username`
- ID пользователей: `123456789`
- Названия каналов: `@channelname`

### Как работает

1. **Мониторинг**: Бот каждые `INTERVAL` секунд проверяет новые подарки
2. **Фильтрация**: Обрабатывает только подарки из ваших диапазонов цен и тиража
3. **Приоритизация**: Если `PRIORITIZE_LOW_SUPPLY = True`, сначала редкие подарки
4. **Покупка**: Покупает указанное количество для каждого получателя в диапазоне
5. **Проверка баланса**: Частичные покупки при нехватке средств

## 💰 Контроль баланса

Бот рассчитывает сколько подарков может купить перед покупкой:

```
Пример:
- Подарок стоит 1500⭐, хотим купить 4 штуки
- Текущий баланс: 4500⭐
- Результат: Покупает 3 штуки, сообщает что не хватает 1500⭐ для последнего
```

## 📝 Советы

- Держите баланс в 2-3 раза больше самого дорогого диапазона
- Используйте несколько диапазонов для разных стратегий
- Включите уведомления для контроля активности
- Сначала протестируйте на малых диапазонах
- Запускайте на VPS для работы 24/7

---


🚀 Built with ❤️ by BohdanDonate