{"id":50119842,"url":"https://github.com/algorithm-ssau/2026-6304-4-","last_synced_at":"2026-05-23T18:05:21.216Z","repository":{"id":354848423,"uuid":"1170757497","full_name":"algorithm-ssau/2026-6304-4-","owner":"algorithm-ssau","description":null,"archived":false,"fork":false,"pushed_at":"2026-05-20T05:59:35.000Z","size":210,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-20T09:26:52.967Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/algorithm-ssau.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":"2026-03-02T13:39:47.000Z","updated_at":"2026-05-20T05:59:39.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/algorithm-ssau/2026-6304-4-","commit_stats":null,"previous_names":["algorithm-ssau/2026-6304-4-"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/algorithm-ssau/2026-6304-4-","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/algorithm-ssau%2F2026-6304-4-","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/algorithm-ssau%2F2026-6304-4-/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/algorithm-ssau%2F2026-6304-4-/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/algorithm-ssau%2F2026-6304-4-/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/algorithm-ssau","download_url":"https://codeload.github.com/algorithm-ssau/2026-6304-4-/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/algorithm-ssau%2F2026-6304-4-/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33406496,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-23T04:15:53.637Z","status":"ssl_error","status_checked_at":"2026-05-23T04:15:53.242Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2026-05-23T18:04:37.137Z","updated_at":"2026-05-23T18:05:21.205Z","avatar_url":"https://github.com/algorithm-ssau.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FunPay AI Bot\n\nАвтоматизированный бот для FunPay с AI-ответами и Telegram управлением.\n\n## Возможности\n\n- 🤖 **AI-ответы**: Автоматическая генерация ответов клиентам через Ollama\n- 📱 **Telegram управление**: Полное управление ботом через Telegram\n- 🔔 **Уведомления**: Мгновенные уведомления о новых заказах\n- 💾 **История сообщений**: Контекстные ответы на основе истории переписки\n- 🔐 **Безопасность**: Защищённое хранение токенов\n\n## Быстрый старт\n\n### 1. Установка зависимостей\n\n```bash\npoetry install\n```\n\nПосле пофиксить баг в FunPayAPI:\naccount.py \n  1387\n```\n    msg = parser.find(\"div\", {\"class\": \"message-text\"})\n    if not msg:\n        msg = parser.find(\"div\", {\"class\": \"chat-msg-text\"})\n    if not msg:\n        raise Exception(\"Couldn't parse message\")\n    message_text = msg.text\n```\n\n### 2. Настройка окружения\n\nСоздайте файл `.env`:\n\n```env\n# AI сервис (Ollama)\nAI_URL=http://localhost:11434\nMODEL=llama3.2\n\n# Чат бот\nBOT_TOKEN=your_bot_token\n\n# База данных (SQLite по умолчанию)\n# DATABASE_URL=sqlite+aiosqlite:///./funpay_bot.db\n\n# Окружение\nENVIRONMENT=dev\n```\n\n### 3. Применение миграций\n\n```bash\ncd src\npoetry run alembic upgrade head\n```\n\n### 4. Запуск\n\n```bash\npoetry run python src/main.py\n```\n\n## Использование\n\n### Через Мессенджер\n\n1. Найдите вашего бота в мессенджере\n2. Отправьте `/start`\n3. Зарегистрируйтесь: `/register`\n4. Отправьте ваш FunPay `golden_token`\n5. Запустите воркера: `/start_worker`\n\n\n## Архитектура\n\n```\n┌─────────────────┐\n│       Bot       │ ← Управление пользователями\n└────────┬────────┘\n         │\n┌────────▼────────┐\n│  Task Manager   │ ← Управление воркерами\n└────────┬────────┘\n         │\n┌────────▼────────┐\n│ FunPay Worker   │ ← Обработка событий\n└─┬──────────────┬┘\n  │              │\n  ▼              ▼\n┌─────────┐  ┌─────────┐\n│ AI API  │  │ FunPay  │\n└─────────┘  └─────────┘\n```\n\n## Документация\n\n- [EVENTS_HANDLING.md](EVENTS_HANDLING.md) - Обработка событий FunPay\n- [CLAUDE.md](CLAUDE.md) - Документация для разработчиков\n\n## Технологии\n\n- **FastAPI** - веб-фреймворк\n- **aiogram** - Чат bot framework\n- **SQLAlchemy** - ORM\n- **Ollama** - локальная AI модель\n- **FunPayAPI** - интеграция с FunPay\n- **SQLite/PostgreSQL** - база данных\n\n## Разработка\n\n### Структура проекта\n\n```\nsrc/\n├── main.py                # Entrypoint\n├── config.py              # Конфигурация\n├── runtime.py             # Singleton объекты\n├── gateaway/              # Внешние интеграции\n│   ├── ai_api.py          # Ollama API\n│   ├── funpay_api.py      # FunPay API\n│   └── chat_bot.py        # чат бот\n├── workers/               # Воркеры\n│   └── funpay_worker.py   # FunPay воркер\n├── services/              # Бизнес-логика\n│   └── task_manager.py    # Управление воркерами\n├── repositories/          # Работа с БД\n├── models/                # ORM модели\n```\n\n### Команды разработки\n\n```bash\n# Создать миграцию\ncd src \u0026\u0026 poetry run alembic revision --autogenerate -m \"description\"\n\n# Применить миграции\ncd src \u0026\u0026 poetry run alembic upgrade head\n\n# Откатить миграцию\ncd src \u0026\u0026 poetry run alembic downgrade -1\n```\n\n## Лицензия\n\nMIT\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falgorithm-ssau%2F2026-6304-4-","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falgorithm-ssau%2F2026-6304-4-","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falgorithm-ssau%2F2026-6304-4-/lists"}