From 0c1f7efb820831c53eec210b259e56be4b3e3fe0 Mon Sep 17 00:00:00 2001 From: TheRandomFurryGuy Date: Sat, 8 Apr 2023 19:11:40 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=90=D0=91=D0=9E=D0=A2=D0=90=D0=95?= =?UTF-8?q?=D0=A2!!!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/gitlab-discord_bot/gitlab-discord_bot.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/source/gitlab-discord_bot/gitlab-discord_bot.py b/source/gitlab-discord_bot/gitlab-discord_bot.py index 34aaa7f..a35fc1b 100644 --- a/source/gitlab-discord_bot/gitlab-discord_bot.py +++ b/source/gitlab-discord_bot/gitlab-discord_bot.py @@ -11,21 +11,18 @@ import gitlab, discord # Обертка АПИ ГитЛаба — https://python-gitlab.readthedocs.io/en/latest и # АПИ Дискорда — https://discordpy.readthedocs.io/en/latest + + try: with open("database.msgpack", "rb") as database: database_content = database.read() - print(str(database_content)) database_spisok = msgpack.unpackb(database_content, strict_map_key=False) except: database_spisok = dict() - - - - gitlab_instance = gitlab.Gitlab(url = 'https://gitlab.megu.one', private_token = environ.get("TOKEN_GITLAB")) # определение адреса и токена экземляра ГитЛаба -project = gitlab_instance.projects.get(13) # определение проекта в котором нужно создавать задачи +'''project = gitlab_instance.projects.get(13)''' # определение проекта в котором нужно создавать задачи # TODO: Привязка экзепмляра и проекта к Дискорд Каналу в БД, а не в коде @@ -46,6 +43,7 @@ async def on_message(message): # обработка каждого сообще issue_text = message.content.replace("/issue ","") # получение текста команды «issue» if command('/issue'): # команда создания задачи на ГитЛабе if database_spisok.get(int(message.channel.id)): + project = gitlab_instance.projects.get(database_spisok.get(int(message.channel.id))) if project.issues.create({'title': issue_text}): await reply("Задача «" + issue_text + "» создана успешно, ^w^") else: @@ -56,6 +54,7 @@ async def on_message(message): # обработка каждого сообще if command('/project'): try: database_spisok[int(message.channel.id)] = int(message.content.replace("/project ","")) + open("database.msgpack", "wb").write(msgpack.packb(database_spisok)) await reply("данные сохранены ^w^") except: await reply("не удалось сохранить id") @@ -78,8 +77,8 @@ async def on_message(message): # обработка каждого сообще await reply("====================================") await reply("список комманд которые я выполняю:\n/issue - создание задачи на gitlab\n/project - подключение id канала discord с id канала gitlab\n/remove - удаление id\n/show - показ id (к каждому каналу discord подключён отдельный id gitlab)\n/speak - я расскажу немного о себе (что сейчас и делаю)") - if command('/save'): - open("database.msgpack", "wb").write(msgpack.packb(database_spisok)) + '''if command('/save'): + open("database.msgpack", "wb").write(msgpack.packb(database_spisok))''' discord_bot.run(environ.get("TOKEN_DISCORD")) # авторизация бота по токену из среды и запуск