{"id":32861942,"url":"https://github.com/cr1ator/shikimory_activity","last_synced_at":"2025-11-09T23:01:35.650Z","repository":{"id":322256071,"uuid":"1088752117","full_name":"Cr1ator/shikimory_activity","owner":"Cr1ator","description":"🔔 Telegram bot for tracking Shikimori.one activity - anime watch history, online status notifications","archived":false,"fork":false,"pushed_at":"2025-11-03T13:09:43.000Z","size":40,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-11-03T14:24:39.448Z","etag":null,"topics":["aiogram","aiogram3","anime","anime-bot","anime-tracker","asyncio","beautifulsoup","notification-bot","python","shikimori","sqlite","telegram","telegram-bot","web-scraping"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Cr1ator.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-03T12:08:46.000Z","updated_at":"2025-11-03T13:14:11.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Cr1ator/shikimory_activity","commit_stats":null,"previous_names":["cr1ator/shikimory_activity"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/Cr1ator/shikimory_activity","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cr1ator%2Fshikimory_activity","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cr1ator%2Fshikimory_activity/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cr1ator%2Fshikimory_activity/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cr1ator%2Fshikimory_activity/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Cr1ator","download_url":"https://codeload.github.com/Cr1ator/shikimory_activity/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cr1ator%2Fshikimory_activity/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":283424651,"owners_count":26833720,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-08T02:00:06.281Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aiogram","aiogram3","anime","anime-bot","anime-tracker","asyncio","beautifulsoup","notification-bot","python","shikimori","sqlite","telegram","telegram-bot","web-scraping"],"created_at":"2025-11-08T22:01:05.033Z","updated_at":"2025-11-09T23:01:35.638Z","avatar_url":"https://github.com/Cr1ator.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# 👀 Shikimori Tracker Bot\n\n\u003cimg src=\"https://media4.giphy.com/media/v1.Y2lkPTc5MGI3NjExeGNtZDRhNWIybmoxemhpbzY3bjNraDdldmNmbWRwZDg3dnJreDIyNiZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/mRMuTC4emhtD2/giphy.gif\" width=\"400\" height=\"160\"\u003e\n\n_Telegram-бот для отслеживания активности друзей на Shikimori.one_\n\n[![Python](https://img.shields.io/badge/Python-3.10+-blue.svg)](https://www.python.org/downloads/)\n[![aiogram](https://img.shields.io/badge/aiogram-3.x-blue.svg)](https://docs.aiogram.dev/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n\n[Возможности](#-возможности) • [Установка](#-быстрый-старт) • [Использование](#-использование) • [Технологии](#️-технологии)\n\n\u003c/div\u003e\n\n---\n\n## ⚠️ Важное примечание\n\n\u003e **Этот проект создан исключительно в развлекательных и образовательных целях!**\n\u003e\n\u003e Бот предназначен для отслеживания активности **ваших друзей с их ведома**, чтобы:\n\u003e\n\u003e - 🎬 Узнавать, что они смотрят, и обсуждать аниме\n\u003e - 🎮 Находить общие интересы\n\u003e - 📊 Делиться рекомендациями\n\u003e\n\u003e **НЕ используйте** для:\n\u003e\n\u003e - ❌ Скрытого наблюдения за людьми\n\u003e - ❌ Преследования или слежки\n\u003e - ❌ Нарушения приватности\n\u003e\n\u003e Всегда **спрашивайте разрешение** перед добавлением чьего-либо профиля!\n\n---\n\n## 🎯 Возможности\n\n- ✅ **Отслеживание истории** — мгновенные уведомления о новых просмотрах аниме\n- 🟢 **Статус онлайн** — узнавайте, когда друзья заходят на Shikimori\n- ⚙️ **Гибкие настройки** — настраивайте уведомления для каждого профиля отдельно\n- 📊 **Проверка статуса** — смотрите текущую активность в любой момент\n- 🔄 **Автоматика** — бот сам проверяет обновления каждые 5 минут\n- 💾 **Локальная база** — все данные хранятся у вас, никуда не передаются\n\n## 📋 Требования\n\n- Python 3.10 или выше\n- Токен Telegram бота от [@BotFather](https://t.me/BotFather)\n- Доступ к интернету\n- ~50-100 МБ свободной памяти\n\n## 🚀 Быстрый старт\n\n### 1️⃣ Клонирование репозитория\n\n```bash\ngit clone https://github.com/yourusername/shikimori-tracker-bot.git\ncd shikimori-tracker-bot\n```\n\n### 2️⃣ Установка зависимостей\n\n```bash\n# Создание виртуального окружения\npython -m venv venv\n\n# Активация\n# Windows:\nvenv\\Scripts\\activate\n# Linux/MacOS:\nsource venv/bin/activate\n\n# Установка пакетов\npip install -r requirements.txt\n```\n\n### 3️⃣ Настройка\n\nСоздайте файл `.env` в корневой директории:\n\n```env\nBOT_TOKEN=your_bot_token_here\nDATABASE_URL=sqlite+aiosqlite:///./shikimori_bot.db\nCHECK_INTERVAL=5\nONLINE_CHECK_INTERVAL=2\n```\n\n### 4️⃣ Запуск\n\n```bash\npython bot.py\n```\n\nГотово! Бот запущен и работает 🎉\n\n## 📱 Использование\n\n### Основные команды\n\n| Команда  | Описание                 |\n| -------- | ------------------------ |\n| `/start` | Главное меню             |\n| `/help`  | Справка по использованию |\n\n### Пример работы\n\n1. **Добавьте профиль друга**\n\n   ```\n   /start → Добавить профиль → Bubassaka\n   ```\n\n2. **Настройте уведомления**\n\n   ```\n   Мои профили → Выберите профиль → Настройки\n   ```\n\n   - 📺 История просмотров\n   - 🟢 Вход в сеть\n   - ⚫ Выход из сети\n\n3. **Получайте уведомления**\n\n   ```\n   🔔 Новая активность Bubassaka\n\n   📺 Naruto: Shippuuden\n      Просмотрено 483 серия\n      ⏰ 5 минут назад\n   ```\n\n## 🗂 Структура проекта\n\n```\nshikimori_tracker_bot/\n├── 📄 bot.py                    # Точка входа\n├── ⚙️ config.py                 # Конфигурация\n├── 📦 requirements.txt          # Зависимости\n│\n├── 🗄 database/\n│   ├── models.py               # Модели SQLAlchemy\n│   └── database.py             # Работа с БД\n│\n├── 🎮 handlers/\n│   ├── start.py                # /start, /help\n│   ├── profile.py              # Управление профилями\n│   └── settings.py             # Настройки уведомлений\n│\n├── ⌨️ keyboards/\n│   ├── inline.py               # Inline-клавиатуры\n│   └── reply.py                # Reply-клавиатуры\n│\n├── 🔧 services/\n│   ├── shikimori_parser.py     # Парсинг Shikimori\n│   ├── tracker.py              # Отслеживание изменений\n│   └── notifier.py             # Отправка уведомлений\n│\n└── 🛠 utils/\n    └── helpers.py              # Вспомогательные функции\n```\n\n## ⚙️ Технологии\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\n**Backend**\n\n- [aiogram 3.x](https://docs.aiogram.dev/) — Telegram Bot API\n- [SQLAlchemy 2.0](https://www.sqlalchemy.org/) — ORM\n- [aiosqlite](https://pypi.org/project/aiosqlite/) — Async SQLite\n\n\u003c/td\u003e\n\u003ctd\u003e\n\n**Парсинг**\n\n- [aiohttp](https://docs.aiohttp.org/) — HTTP клиент\n- [BeautifulSoup4](https://www.crummy.com/software/BeautifulSoup/) — HTML парсер\n- [APScheduler](https://apscheduler.readthedocs.io/) — Планировщик\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n## 🔧 Как это работает\n\n```mermaid\ngraph LR\n    A[Telegram Bot] --\u003e|Добавление профиля| B[База данных]\n    B --\u003e|Каждые 5 минут| C[Tracker]\n    C --\u003e|HTTP запрос| D[Shikimori.one]\n    D --\u003e|HTML| E[Parser]\n    E --\u003e|Новые данные| F[Проверка изменений]\n    F --\u003e|Есть обновления| G[Notifier]\n    G --\u003e|Отправка| A\n```\n\n1. **Парсинг** — получаем HTML страницы профиля с Shikimori\n2. **Сравнение** — ищем новые записи в истории\n3. **Уведомление** — отправляем красиво оформленное сообщение\n\n## 📊 База данных\n\nSQLite с четырьмя таблицами:\n\n| Таблица            | Описание                |\n| ------------------ | ----------------------- |\n| `users`            | Пользователи Telegram   |\n| `tracked_profiles` | Отслеживаемые профили   |\n| `history_entries`  | История просмотров      |\n| `online_status`    | История онлайн-статусов |\n\n## 🔐 Безопасность и приватность\n\n✅ **Локальное хранение** — вся база данных у вас на компьютере  \n✅ **Никаких серверов** — данные не отправляются третьим лицам  \n✅ **Открытый код** — можете проверить каждую строку  \n✅ **Простое удаление** — удалите `.env` и `shikimori_bot.db`\n\n## 🐛 Решение проблем\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eОшибка \"Invalid token\"\u003c/b\u003e\u003c/summary\u003e\n\nПроверьте правильность токена в `.env`:\n\n```env\nBOT_TOKEN=123456789:ABCdefGHIjklMNOpqrsTUVwxyz\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eПрофиль не найден\u003c/b\u003e\u003c/summary\u003e\n\n- Проверьте написание никнейма\n- Убедитесь, что профиль публичный\n- Попробуйте открыть профиль в браузере\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eНе приходят уведомления\u003c/b\u003e\u003c/summary\u003e\n\n1. Проверьте, что бот запущен (`python bot.py`)\n2. Включите уведомления в настройках профиля\n3. Проверьте логи в `bot.log`\n\u003c/details\u003e\n\nБольше ответов в [документации](https://github.com/yourusername/shikimori-tracker-bot/issues)\n\n## 📝 Логирование\n\nВсе события записываются в:\n\n- 🖥 **Консоль** — для наблюдения в реальном времени\n- 📄 **bot.log** — для анализа ошибок\n\n```bash\n# Просмотр последних логов\ntail -f bot.log\n```\n\n## 🤝 Вклад в проект\n\nБуду рад любому вкладу!\n\n1. Fork репозитория\n2. Создайте ветку (`git checkout -b feature/amazing-feature`)\n3. Commit изменения (`git commit -m 'Add amazing feature'`)\n4. Push в ветку (`git push origin feature/amazing-feature`)\n5. Откройте Pull Request\n\n## 📄 Лицензия\n\nПроект распространяется под лицензией MIT. См. файл [LICENSE](LICENSE) для подробностей.\n\n## 👨‍💻 Автор\n\nСоздано с ❤️ для сообщества любителей аниме\n\n## ⭐ Поддержка\n\nЕсли проект оказался полезным, поставьте звездочку ⭐\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**[⬆ Вернуться к началу](#-shikimori-tracker-bot)**\n\nMade with 🍜 and ☕\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcr1ator%2Fshikimory_activity","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcr1ator%2Fshikimory_activity","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcr1ator%2Fshikimory_activity/lists"}