# Crypto Watch Tracker Bot Telegram бот для отслеживания изменений цен криптовалют в реальном времени с уведомлениями и системой подписки. ## 📊 Описание Этот бот позволяет пользователям: - Отслеживать цены на популярные криптовалюты (BTC, ETH, BNB, SOL, XRP). - Получать персонализированные уведомления об изменениях цен. - Настраивать интервалы проверок, пороги срабатывания и формат уведомлений. - Управлять подпиской через безопасную оплату с помощью [@CryptoBot](https://t.me/CryptoBot). Бот также включает админ-панель для управления пользователями и массовой рассылки. **Вы можете протестировать работу бота уже сейчас: [@CryptoWatchTracker_bot](https://t.me/CryptWatchTracker_bot)** ## ✨ Основные функции - [x] Отслеживание 5 популярных криптовалют. - [x] Уведомления об изменениях цен (настраиваемый порог). - [x] Настройка интервала уведомлений (1-15 минут). - [x] Настройка порога изменения цены (0.1%-5%). - [x] Выбор формата уведомлений (Классический/Компактный/Подробный). - [x] Система подписки с оплатой через [@CryptoBot](https://t.me/CryptoBot) (день/неделя/месяц). - Создание счетов для оплаты. - Проверка статуса оплаты. - Автоматическая активация подписки после оплаты. - [x] Админ панель с управлением пользователями, ценами и рассылкой. - [x] Массовая рассылка сообщений (с/без изображения). - [x] Хранение данных в SQLite. - [x] Поддержка Docker. ## 🛠 Технологии - Python 3.10+ - [aiogram 3.x](https://docs.aiogram.dev/en/latest/) (Telegram Bot API Framework) - SQLite3 - [aiohttp](https://docs.aiohttp.org/en/stable/) (для запросов к API криптобирж и CryptoBot) - [python-dotenv](https://pypi.org/project/python-dotenv/) (для работы с `.env`) ## 📦 Установка ### 1. Клонирование репозитория ```bash git clone https://github.com/mrk-coder/CryptoWatchTracker.git cd CryptoWatchTracker
Создание изолированного окружения помогает избежать конфликтов зависимостей с другими проектами.
# Создать виртуальное окружение python3 -m venv venv # Активировать его source venv/bin/activate # Linux/macOS # Или на Windows (в командной строке): # venv\Scripts\activate.bat # Или в PowerShell: # venv\Scripts\Activate.ps1
После активации вы увидите префикс (venv) в начале строки командной оболочки.
Установите все необходимые библиотеки Python, перечисленные в requirements.txt:
pip install -r requirements.txt
Создайте файл .env в корне проекта, скопировав .env.example:
cp .env.example .env
Откройте файл .env в текстовом редакторе и заполните его:
# Токен вашего Telegram бота (получить у @BotFather) TELEGRAM_TOKEN=your_telegram_bot_token_here # API ключ для CryptoBot API (получить у @CryptoBot -> /pay) CRYPTO_API_KEY=your_crypto_api_key_here # Токен для CryptoBot API (получить у @CryptoBot -> /pay) CRYPTO_BOT_TOKEN=your_crypto_bot_token_here # Ваш Telegram ID (для доступа к админке) ADMIN_ID=your_admin_telegram_id_here
Где взять токены:
TELEGRAM_TOKEN:- Найдите @BotFather в Telegram.
- Отправьте команду
/newbotи следуйте инструкциям, чтобы создать бота. - Используйте команду
/token, чтобы получить токен.
CRYPTO_BOT_TOKEN:- Начните диалог с @CryptoBot.
- Отправьте команду
/pay. - Следуйте инструкциям для создания токена.
ADMIN_ID:- Узнайте свой ID, например, написав сообщение боту @userinfobot.
- Или используйте инспектор сообщений в вашем боте для получения ID.
Поместите изображение welcome.jpg в папку assets/. Оно будет использоваться в приветственном сообщении. Если файл не найден, будет использована ссылка по умолчанию.
Убедитесь, что виртуальное окружение активировано (source venv/bin/activate), затем:
python bot.py
- Убедитесь, что Docker установлен.
- Соберите образ:
docker build -t crypto_tracker . - Запустите контейнер:
docker run -it --env-file .env crypto_tracker
- Убедитесь, что ваш
ADMIN_IDуказан в.env. - В боте отправьте команду
/admin. - Откроется меню администратора с возможностями:
- Управление пользователями (выдача/отзыв подписки, список).
- Управление ценами подписки (день/неделя/месяц).
- Просмотр статистики.
- Массовая рассылка сообщений.
Вы можете протестировать работу бота уже сейчас, перейдя по ссылке: @CryptWatchTracker_bot
CryptoWatchTracker/
├── bot.py # Точка входа
├── config.py # Загрузка конфигурации из .env
├── database.py # Работа с SQLite
├── requirements.txt # Зависимости Python
├── .env.example # Пример файла .env
├── .gitignore # Игнорируемые файлы для Git
├── Dockerfile # Конфигурация Docker
├── README.md # Этот файл
├── assets/
│ └── welcome.jpg # Изображение для приветствия
├── handlers/
│ ├── start.py # Обработчики команды /start и основного меню
│ ├── tracking.py # Обработчики отслеживания валют
│ └── admin.py # Админ-панель и рассылка
├── keyboards/
│ ├── main.py # Клавиатуры для пользователей
│ └── admin.py # Клавиатуры для админов
├── services/
│ ├── crypto_api.py # Запросы к API криптобирж
│ ├── crypto_bot.py # Работа с CryptoBot API
│ └── notifications.py # Фоновая проверка цен и уведомления
└── utils/
└── logger.py # Настройка логирования
Этот файл готов к использованию. Просто скопируйте его содержимое в файл `README.md` в корне вашего проекта `CryptoWatchTracker`. Не забудьте заменить `<ваш_логин>` на свой логин на GitHub перед коммитом.