{"id":25183168,"url":"https://github.com/dan-sazonov/sspb2","last_synced_at":"2025-10-24T15:31:16.078Z","repository":{"id":104834167,"uuid":"566607392","full_name":"dan-sazonov/sspb2","owner":"dan-sazonov","description":"🤖🎅(RU) Телеграм-бот для тайного Санты ПБ2","archived":false,"fork":false,"pushed_at":"2023-11-24T00:24:21.000Z","size":76,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-04-15T22:52:41.784Z","etag":null,"topics":["aiogram","postgresql","telegram","telegram-bot"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":false,"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/dan-sazonov.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2022-11-16T02:53:00.000Z","updated_at":"2023-11-23T20:39:47.000Z","dependencies_parsed_at":"2023-11-24T01:29:02.683Z","dependency_job_id":"ed5d1500-486c-4df6-9e2f-5859045b4029","html_url":"https://github.com/dan-sazonov/sspb2","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dan-sazonov%2Fsspb2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dan-sazonov%2Fsspb2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dan-sazonov%2Fsspb2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dan-sazonov%2Fsspb2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dan-sazonov","download_url":"https://codeload.github.com/dan-sazonov/sspb2/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237995650,"owners_count":19399176,"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":["aiogram","postgresql","telegram","telegram-bot"],"created_at":"2025-02-09T18:19:23.424Z","updated_at":"2025-10-24T15:31:15.763Z","avatar_url":"https://github.com/dan-sazonov.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SecretSanta bot\n[![GitHub](https://img.shields.io/github/license/dan-sazonov/sspb2)](https://github.com/dan-sazonov/sspb2/legal_info/LICENSE.md)\u0026nbsp;\u0026nbsp;\n![OpenSource](https://img.shields.io/badge/Open%20Source-%E2%99%A5-red)\u003cbr\u003e\n\nЭто пропитанный ненавистью кусок вымученного кода, из проекта, который я запилил за одну ночь год назад. Все, что может быть ужасно - здесь ужасно. Попытка понять исходники или как-то доработать их, чревата необратимыми психическими травмами. **Ты предупрежден.**\n\n- [Оригинал](https://github.com/dan-sazonov/MagistrKurskBot) этого мракобесия\n- Однажды я перепишу все это, и будет универсальный [бот для Тайного Санты](https://github.com/dan-sazonov/secret-santa)\n\n## Запуск\nЭто самая подробная инструкция, которую я только смог расписать. Сам бот был написан еще в 2021, и как-что там работает - я отказываюсь понимать. Чтобы что-то поменять, надо все переписывать с нуля. \u003cbr\u003e\u003cbr\u003e\n**Из ошибок:** число людей которые будут на встрече, или которые не будут - должно быть не меньше двух. Иначе, в жеребьевке они выпадут сами себе.\u003cbr\u003e\u003cbr\u003e\n**Условия работы:** я все проверил пошагово 24.11.2023 на Win10 MSEdge. Нет причин, чтобы оно не работало на других, но весь остальной софт надо ставить именно по ссылкам отсюда, как будет вести себя с другими версиями - не могу сказать\n\n### 0. notabene\nКомандную строку, в которой будет запущен бот, все время его работы закрывать нельзя - упадет. Также нельзя выключать комп, на котором это все запущено. Нужно постоянное соединение с инетом.\u003cbr\u003e\nЕсли все-таки бот упал, повторяем заново шаг №7\n\n### 1. Ставим гит\nЭкзешник [тут](https://github.com/git-for-windows/git/releases/download/v2.43.0.windows.1/Git-2.43.0-64-bit.exe).\u003cbr\u003e\nПервый и предпоследний флаг не нужен, остальные должны стоять. На выборе редактора - выбрать nano. Это не обязательно, но если что, будет проще\n\n### 2. Копируем репо\nОткрываем любую папку (желательно, на диске `C:`), нажимаем на свободном месте ПКМ и выбираем в выпавшей менюшке **Open git bash here**. Откроется консоль, в нее вставляем:\n```\ngit clone https://github.com/dan-sazonov/sspb2.git\n```\nНажимаем Enter. Если **\"open git...\"** не появилось, ошибка на шаге 1, переустанавливаем. Если посыпалось после ввода этой команды, скорее всего, нужны права админа\n\n### 3. Ставим Python\nНужна версия 3.9.0. Если уже установлен, да еще и если другой версии, помолиться, чтобы не было конфликтов версий, и пропустить этот шаг.\u003cbr\u003e\nЭкзешник [тут](https://www.python.org/ftp/python/3.9.0/python-3.9.0-amd64.exe).\u003cbr\u003e\n**По установке:** обязательно флажок **\"Add python to PATH\"** (сразу после открытия экзешика, внизу). После этого **Install now**. Если все ок, когда скачается, нажать **close**. Если будет что-то еще предлагать, игнорим.\u003cbr\u003e\n**Проверка:** открыть командную строку (через поиск винды, например) и ввести `python --version`. Если все ок, увидите `python 3.9.0`.\u003cbr\u003e\n\n### 4. Регаем бота\nЭто должен делать человек, который условно владелец бота, только у него будет доступ ко всему функционалу.\u003cbr\u003e\n- запускаем бот https://t.me/BotFather (нажимаем на кнопку Запустить)\n- отправляем команду `/newbot`\n- бот спрашивает про название, которое будет отображаться как имя бота, пишем\n- дальше спрашивает про логин бота (что будет после @....). Название должно заканчиваться на \"_bot\"\n- получаем сообщение, в котором указан токен бота. Никому не скидываем, иначе будет грустно. Лучше сохранить куда-то себе, чтобы случайно не потерять\n- копируем логин бота (который мы писали на двумя шагами выше), и вставляем его в поиск телеги. Увидим только что созданного бота. Открываем диалог с ним и нажимаем на кнопку запустить. Бот ничего не ответит, так и задумано. Зачем так задумано - я не помню\n- настраиваем оформление бота через BotFather: \n    ```\n    /setdescription - change bot description\n    /setabouttext - change bot about info\n    /setuserpic - change bot profile photo\n    ```\n    здесь, думаю, все понятно\n\n### 5. Накатываем БД\nВот тут предельно внимательно, одна ошибка - и ты ошибся\n- качаем pga4 [отсюда](https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v6.21/windows/pgadmin4-6.21-x64.exe). Если не будет компонентов для vs, может спросить разрешение на установку, соглашаемся\n- открываем **pg admin**, первый запуск может быть долгим. Его иконка должна была появиться в пуске, если нет - черз поиск\n- задаем мастер-пароль и стараемся не забыть его\n- нажимаем **\"Add new server\"**. На вкладке **\"General\"** в поле **\"Name\"** пишем `sspb2`, на вкладке **\"Connection\"** в поле **\"Host address\"** пишем `127.0.0.1`, в поле **\"Password\"** пишем `root`. Сохраняем.\n- в менюшке слева должна появиться иконка слона, рядом с которым написано **sspb2**, а под ним желтый значок с надписью **\"Databases (1)\"**. Кликаем по нему пкм, выбираем **Create**, затем **Database...** и в поле **Database** пишем `sspb2`. Сохраняем.\n\n### 6. Настраиваем бота\n- Открываем папку, куда мы склонировали бота на шаге 2. Через текстовый редактор _(это капец как важно)_ открываем файл `config.py`\n- Дальнейшая иснтрукция в нем. На этом этапе важно ничего не поломать, поэтому лучше открывать через редактор с подсветкой синтаксиса (vs code, notepad++, да хоть idle встроенный)\n- Как закончили редактировать, сохранем и закрываем\n\n### 7. Запускаем\n- открываем командную строку, переходим в ней в директорию с ботом: адрес этой директории можно скопировать в проводнике, посмотрев свойства или в пути файла сверху. Вводим такую команду, путь меняем на свой:\n    ```\n    cd C:\\Users\\IEUser\\Documents\\sspb2\n    ```\n  если все ок, этот адрес будет написан слева перед `\u003e`\n- вводим команду\n    ```\n    python -m venv venv\n    ```\n    если вылетают ошибки, что-то не так на шаге №3\n- вводим команду\n    ```\n    venv\\Scripts\\activate.bat\n    ```\n    если слева появилось `(venv)`, все ок\n- вводим команду\n    ```\n    pip install -r requirements.txt\n    ```\n    если просит что-то обновить, не в коем случае не делаем этого\n- момент истины - вводим:\n    ```\n    python main.py\n    ```\n    в консоли должны появится 3 записи лога, а админу бота придет сообщение, что бот запущен. Все, бот в режиме регистрации запущен. Теперь эту вкладку консоли закрывать нельзя)))\n- а вот pgadmin уже можно закрыть, но лучше не надо, мало ли что\n\n### 8. Проводим жеребьевку\n- останавливаем бот - в окне командной строки нажимаем `Ctrl + C`\n- удаляем файл `santa.py`\n- переименовываем `_santa.py` в `santa.py`\n- снова запускаем бот:\n    ```\n    python main.py\n    ```\n- открываем новую вкладку командной строки, повторяем шаги **7.1**; **7.3**\n- вводим команду:\n    ```\n    python drawing.py\n    ```\n\nКаждые 30 секунд прога будет отправлять сообщения пользователям. После отправки будет падать **DeprecationWarning**, это хорошо, значит оно живое. Когда все сообщения будут отправлены, снова появится предложения ввода консоли (что-то типа `(venv) C:\\Users\\IEUser\\Documents\\sspb2 \u003e`)\u003cbr\u003e\nПосле этого ЭТУ вкладку командной строки можно закрыть, другую не трогать!\n\n### 9. Победа\nПосле собрания, когда все подарки разданы, выключаем бота нажатием `Ctrl+C` в командной строке с основным процессом бота. Наконец-то закрываем ее\n\n## 👨‍💻 Автор\nАвтор репозитория и кода - [@dan-sazonov](https://github.com/dan-sazonov). \u003cbr\u003e\n**Связаться со мной:**\u003cbr\u003e\n[:airplane: Telegram](https://t.me/dan_sazonov) \u003cbr\u003e\n[:e-mail: Email](mailto:p-294803@yandex.ru) \u003cbr\u003e\n\n## 📜 Лицензия\nВесь код распространяется по лицензии [GPL-3.0 License](https://github.com/dan-sazonov/sspb2/legal_info/LICENSE.md).\u003cbr\u003e\nПодробнее смотри в файле.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdan-sazonov%2Fsspb2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdan-sazonov%2Fsspb2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdan-sazonov%2Fsspb2/lists"}