{"id":29117777,"url":"https://github.com/misha-mayskiy/lootbox_analytics","last_synced_at":"2026-04-29T04:35:32.964Z","repository":{"id":293627019,"uuid":"984577619","full_name":"Misha-Mayskiy/lootbox_analytics","owner":"Misha-Mayskiy","description":"Lootbox Analytics: Your personal dashboard for tracking and analyzing lootbox/gacha opening statistics from popular games. Currently supports Genshin Impact with detailed Pity/luck analysis. (Python, Flask, SQLAlchemy)","archived":false,"fork":false,"pushed_at":"2025-05-31T10:32:27.000Z","size":361,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-31T20:59:43.491Z","etag":null,"topics":["chartjs","data-visualization","flask","gacha","game-analytics","genshin-impact","pity-tracker","python","sqlalchemy","statistics"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Misha-Mayskiy.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}},"created_at":"2025-05-16T06:51:03.000Z","updated_at":"2025-05-31T10:32:30.000Z","dependencies_parsed_at":"2025-05-16T10:20:02.463Z","dependency_job_id":"1c3613ef-829c-49d8-967d-f9fc0fa30f4a","html_url":"https://github.com/Misha-Mayskiy/lootbox_analytics","commit_stats":null,"previous_names":["misha-mayskiy/lootbox_analytics"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Misha-Mayskiy/lootbox_analytics","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Misha-Mayskiy%2Flootbox_analytics","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Misha-Mayskiy%2Flootbox_analytics/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Misha-Mayskiy%2Flootbox_analytics/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Misha-Mayskiy%2Flootbox_analytics/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Misha-Mayskiy","download_url":"https://codeload.github.com/Misha-Mayskiy/lootbox_analytics/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Misha-Mayskiy%2Flootbox_analytics/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262589898,"owners_count":23333256,"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","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":["chartjs","data-visualization","flask","gacha","game-analytics","genshin-impact","pity-tracker","python","sqlalchemy","statistics"],"created_at":"2025-06-29T12:06:44.542Z","updated_at":"2026-04-29T04:35:32.937Z","avatar_url":"https://github.com/Misha-Mayskiy.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Lootbox Analytics\n\n**Lootbox Analytics** — это веб-приложение, предназначенное для отслеживания и анализа статистики открытий лутбоксов, кейсов и молитв в популярных онлайн-играх. Пользователи могут импортировать свои данные и получать детальную статистику по своей \"удачливости\", отслеживать системы гарантий (pity) и многое другое.\n\nНа данный момент реализована полная поддержка для игры **Genshin Impact**.\n\n## ✨ Ключевые Возможности\n\n*   **Импорт данных из Genshin Impact:** Легкий импорт истории молитв с помощью предоставленного PowerShell скрипта и URL из игры.\n*   **Детальная статистика по Genshin Impact:**\n    *   Общее количество молитв и распределение по редкости (3★, 4★, 5★).\n    *   Точные Pity-трекеры для 5★ и 4★ артефактов/персонажей для всех основных групп баннеров (ивентовые персонажные, стандартный, оружейный).\n    *   Анализ и отображение статуса 50/50 для ивентовых баннеров персонажей.\n    *   История всех 5★ дропов с указанием pity, на котором они выпали, и статуса 50/50.\n    *   Расширенные показатели \"удачливости\":\n        *   Процент выигрышей 50/50.\n        *   Средний Pity для получения 5★ предметов.\n        *   Распределение 5★ дропов по зонам Pity (рано, в зоне soft-pity, на hard-pity).\n*   **Визуализация данных:** Интерактивные графики и диаграммы (распределение редкости, история Pity и т.д.) с использованием Chart.js.\n*   **Пользовательские аккаунты:** Регистрация, вход (стандартный Email/Password и через Steam OAuth).\n*   **Персональный дашборд:** Обзор подключенных игр и доступ к статистике.\n*   **Кастомизируемый интерфейс:** Переключатель между светлой и темной темами оформления с сохранением выбора.\n*   **API для импорта:** Защищенный API-эндпоинт для импорта данных (в текущей реализации не используется напрямую пользователем, но демонстрирует возможность).\n\n## 🛠️ Использованные Технологии\n\n*   **Бэкенд:**\n    *   Python 3.x\n    *   Flask (веб-фреймворк)\n    *   SQLAlchemy (ORM)\n    *   SQLite (база данных на этапе разработки)\n    *   Flask-Login (аутентификация)\n    *   Flask-OpenID / Authlib (для Steam OAuth)\n    *   Flask-Migrate (Alembic для миграций БД)\n    *   Flask-WTF (формы и CSRF-защита)\n*   **Фронтенд:**\n    *   HTML5, CSS3\n    *   JavaScript (Vanilla JS)\n    *   Chart.js (для графиков)\n    *   Bootstrap 5\n*   **Инструменты и Другое:**\n    *   Git, GitHub\n    *   PowerShell (для клиентского скрипта импорта Genshin Impact)\n    *   Виртуальное окружение Python (`venv`)\n    *   `requests` (для HTTP-запросов на стороне сервера)\n\n## 🚀 Установка и Запуск Локально\n\n1.  **Клонируйте репозиторий:**\n    ```bash\n    git clone https://github.com/Misha-Mayskiy/lootbox_analytics.git\n    cd lootbox_analytics\n    ```\n\n2.  **Создайте и активируйте виртуальное окружение:**\n    ```bash\n    python -m venv venv\n    # Windows\n    venv\\Scripts\\activate\n    # macOS/Linux\n    source venv/bin/activate\n    ```\n\n3.  **Установите зависимости:**\n    ```bash\n    pip install -r requirements.txt\n    ```\n\n4.  **Настройте переменные окружения:**\n    *   Создайте файл `.env` в корневой директории проекта.\n    *   Скопируйте в него содержимое из примера или добавьте следующие обязательные переменные:\n        ```env\n        FLASK_APP=run.py # Имя вашего главного запускаемого файла\n        SECRET_KEY='your_very_secret_random_long_key_for_sessions_and_csrf'\n        DATABASE_URL='sqlite:///app.db'\n        STEAM_API_KEY='ВАШ_STEAM_API_KEY'\n        ```\n    **Примечание:**\n    * `SECRET_KEY` должен быть действительно случайным и длинным.\n    * `STEAM_API_KEY` создайте через ваш api_key по ссылке: https://steamcommunity.com/dev/apikey\n\n5.  **Примените миграции базы данных:**\n    ```bash\n    flask db upgrade\n    ```\n    Это создаст файл базы данных `app.db` (если SQLite) со всеми необходимыми таблицами.\n\n6.  **(Опционально, но рекомендуется) Заполните начальные данные:**\n    *   Запустите Flask shell:\n        ```bash\n        flask shell\n        ```\n    *   Внутри shell выполните команды для добавления поддерживаемых игр и типов лутбоксов (особенно для Genshin Impact):\n        ```python\n        from app import db\n        from app.models import Game, LootboxType\n\n        # Добавление игры Genshin Impact\n        genshin = Game.query.filter_by(slug='genshin').first()\n        if not genshin:\n            genshin = Game(name='Genshin Impact', slug='genshin')\n            db.session.add(genshin)\n            db.session.commit()\n            print(\"Игра Genshin Impact добавлена.\")\n\n        # Добавление типов лутбоксов для Genshin\n        if genshin:\n            lootbox_types_data = [\n                {'game_specific_id': '100', 'name': 'Баннер новичка'},\n                {'game_specific_id': '200', 'name': 'Стандартный баннер'},\n                {'game_specific_id': '301', 'name': 'Ивентовый баннер персонажа'},\n                {'game_specific_id': '400', 'name': 'Ивентовый баннер персонажа (параллельный)'},\n                {'game_specific_id': '302', 'name': 'Баннер оружия (Воплощение божества)'}\n            ]\n            for lt_data in lootbox_types_data:\n                existing_lt = LootboxType.query.filter_by(game_id=genshin.id, game_specific_id=lt_data['game_specific_id']).first()\n                if not existing_lt:\n                    new_lt = LootboxType(game_id=genshin.id, game_specific_id=lt_data['game_specific_id'], name=lt_data['name'])\n                    db.session.add(new_lt)\n            db.session.commit()\n            print(\"Типы лутбоксов для Genshin Impact добавлены/проверены.\")\n        exit()\n        ```\n\n7.  **Запустите Flask development server:**\n    ```bash\n    flask run\n    ```\n    Или если используете `run.py`:\n    ```bash\n    python run.py\n    ```\n    Приложение будет доступно по адресу `http://127.0.0.1:5000/`.\n\n## 📖 Как Пользоваться\n\n1.  **Регистрация/Вход:**\n    *   Зарегистрируйтесь, используя Email и пароль, или войдите через Steam.\n    *   При обычной регистрации для вас будет автоматически сгенерирован API-ключ (отображается в Дашборде), который ранее предназначался для прямого импорта скриптом, но в текущей реализации импорт Genshin происходит через вставку URL.\n\n2.  **Импорт Данных Genshin Impact:**\n    *   Перейдите в Дашборд, затем на страницу \"Импорт Genshin\".\n    *   Следуйте инструкциям на странице:\n        1.  Откройте Genshin Impact на ПК и зайдите в историю молитв.\n        2.  Скопируйте предоставленную команду PowerShell.\n        3.  Вставьте и выполните команду в окне Windows PowerShell. Ссылка на вашу историю молитв будет скопирована в буфер обмена.\n        4.  Вернитесь на сайт и вставьте эту ссылку в текстовое поле.\n        5.  Нажмите \"Импортировать данные\".\n    *   Сервер обработает вашу историю и сохранит данные.\n\n3.  **Просмотр Статистики:**\n    *   После импорта перейдите на страницу статистики Genshin Impact из Дашборда.\n    *   Изучайте свои Pity, шансы, историю дропов и другие показатели удачливости, представленные в текстовом виде и на графиках.\n\n4.  **Переключение Темы:**\n    *   Используйте переключатель в навигационной панели для выбора между светлой и темной темой оформления. Ваш выбор будет сохранен.\n\n## 🛣️ Планы на Будущее\n\n*   Поддержка других игр (CS2, Honkai: Star Rail, Hearthstone и др.).\n*   Реализация ROI-аналитики для игр с рыночной стоимостью предметов (например, CS2).\n*   Более продвинутые метрики \"Удачи\" (например, Z-score).\n*   Симуляторы открытия лутбоксов (Monte-Carlo).\n*   Общий \"Индекс Удачи\" пользователя по всем играм.\n*   Социальные функции: сравнение статистики с друзьями, публичные анонимные рейтинги.\n*   Улучшенное отслеживание Epitomized Path для оружейного баннера Genshin Impact.\n\n##  Авторы\nПроект разработан @Misha-Mayskiy.\n\nСпециальная благодарность моему AI-ассистенту Gemini за помощь в брейншторме и решении технических вопросов.\n\n## 📄 Лицензия\n\nЭтот проект распространяется под лицензией GPL-3.0. Подробнее см. файл `LICENSE`.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmisha-mayskiy%2Flootbox_analytics","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmisha-mayskiy%2Flootbox_analytics","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmisha-mayskiy%2Flootbox_analytics/lists"}