Этот проект создан исключительно в развлекательных и образовательных целях!
Бот предназначен для отслеживания активности ваших друзей с их ведома, чтобы:
- 🎬 Узнавать, что они смотрят, и обсуждать аниме
- 🎮 Находить общие интересы
- 📊 Делиться рекомендациями
НЕ используйте для:
- ❌ Скрытого наблюдения за людьми
- ❌ Преследования или слежки
- ❌ Нарушения приватности
Всегда спрашивайте разрешение перед добавлением чьего-либо профиля!
- ✅ Отслеживание истории — мгновенные уведомления о новых просмотрах аниме
- 🟢 Статус онлайн — узнавайте, когда друзья заходят на Shikimori
- ⚙️ Гибкие настройки — настраивайте уведомления для каждого профиля отдельно
- 📊 Проверка статуса — смотрите текущую активность в любой момент
- 🔄 Автоматика — бот сам проверяет обновления каждые 5 минут
- 💾 Локальная база — все данные хранятся у вас, никуда не передаются
- Python 3.10 или выше
- Токен Telegram бота от @BotFather
- Доступ к интернету
- ~50-100 МБ свободной памяти
git clone https://github.com/yourusername/shikimori-tracker-bot.git
cd shikimori-tracker-bot# Создание виртуального окружения
python -m venv venv
# Активация
# Windows:
venv\Scripts\activate
# Linux/MacOS:
source venv/bin/activate
# Установка пакетов
pip install -r requirements.txtСоздайте файл .env в корневой директории:
BOT_TOKEN=your_bot_token_here
DATABASE_URL=sqlite+aiosqlite:///./shikimori_bot.db
CHECK_INTERVAL=5
ONLINE_CHECK_INTERVAL=2python bot.pyГотово! Бот запущен и работает 🎉
| Команда | Описание |
|---|---|
/start |
Главное меню |
/help |
Справка по использованию |
-
Добавьте профиль друга
/start → Добавить профиль → Bubassaka -
Настройте уведомления
Мои профили → Выберите профиль → Настройки- 📺 История просмотров
- 🟢 Вход в сеть
- ⚫ Выход из сети
-
Получайте уведомления
🔔 Новая активность Bubassaka 📺 Naruto: Shippuuden Просмотрено 483 серия ⏰ 5 минут назад
shikimori_tracker_bot/
├── 📄 bot.py # Точка входа
├── ⚙️ config.py # Конфигурация
├── 📦 requirements.txt # Зависимости
│
├── 🗄 database/
│ ├── models.py # Модели SQLAlchemy
│ └── database.py # Работа с БД
│
├── 🎮 handlers/
│ ├── start.py # /start, /help
│ ├── profile.py # Управление профилями
│ └── settings.py # Настройки уведомлений
│
├── ⌨️ keyboards/
│ ├── inline.py # Inline-клавиатуры
│ └── reply.py # Reply-клавиатуры
│
├── 🔧 services/
│ ├── shikimori_parser.py # Парсинг Shikimori
│ ├── tracker.py # Отслеживание изменений
│ └── notifier.py # Отправка уведомлений
│
└── 🛠 utils/
└── helpers.py # Вспомогательные функции
|
Backend
|
Парсинг
|
graph LR
A[Telegram Bot] -->|Добавление профиля| B[База данных]
B -->|Каждые 5 минут| C[Tracker]
C -->|HTTP запрос| D[Shikimori.one]
D -->|HTML| E[Parser]
E -->|Новые данные| F[Проверка изменений]
F -->|Есть обновления| G[Notifier]
G -->|Отправка| A
- Парсинг — получаем HTML страницы профиля с Shikimori
- Сравнение — ищем новые записи в истории
- Уведомление — отправляем красиво оформленное сообщение
SQLite с четырьмя таблицами:
| Таблица | Описание |
|---|---|
users |
Пользователи Telegram |
tracked_profiles |
Отслеживаемые профили |
history_entries |
История просмотров |
online_status |
История онлайн-статусов |
✅ Локальное хранение — вся база данных у вас на компьютере
✅ Никаких серверов — данные не отправляются третьим лицам
✅ Открытый код — можете проверить каждую строку
✅ Простое удаление — удалите .env и shikimori_bot.db
Ошибка "Invalid token"
Проверьте правильность токена в .env:
BOT_TOKEN=123456789:ABCdefGHIjklMNOpqrsTUVwxyzПрофиль не найден
- Проверьте написание никнейма
- Убедитесь, что профиль публичный
- Попробуйте открыть профиль в браузере
Не приходят уведомления
- Проверьте, что бот запущен (
python bot.py) - Включите уведомления в настройках профиля
- Проверьте логи в
bot.log
Больше ответов в документации
Все события записываются в:
- 🖥 Консоль — для наблюдения в реальном времени
- 📄 bot.log — для анализа ошибок
# Просмотр последних логов
tail -f bot.logБуду рад любому вкладу!
- Fork репозитория
- Создайте ветку (
git checkout -b feature/amazing-feature) - Commit изменения (
git commit -m 'Add amazing feature') - Push в ветку (
git push origin feature/amazing-feature) - Откройте Pull Request
Проект распространяется под лицензией MIT. См. файл LICENSE для подробностей.
Создано с ❤️ для сообщества любителей аниме
Если проект оказался полезным, поставьте звездочку ⭐
Made with 🍜 and ☕
