Прокомментировал используемые библиотеки

This commit is contained in:
bogdan zažigin 2023-04-05 01:56:53 +03:00
parent 91ce97c10b
commit dfda33dbe0
Signed by: zaboal
GPG key ID: C9918166D559FE8A

View file

@ -1,37 +1,33 @@
''' Интеграция Дискорда и ГитЛаба
🄯 Стешенко Артём и Зажигин Богдан '''
''' Справочные материалы на английском для разработки
Язык Пайтон https://docs.python.org/3.12/reference
АПИ Дискорда https://discordpy.readthedocs.io/en/latest
АПИ ГитЛаба https://python-gitlab.readthedocs.io/en/latest
'''
from os import environ, remove
''' Получение переменных среды и удаление файлов —
https://docs.python.org/3.12/library/os.html '''
import msgpack
''' Бинарная сериализация, создание машинной базы данных —
https://github.com/msgpack/msgpack-python/blob/main/README.md '''
import gitlab, discord
''' Обертка АПИ ГитЛаба — https://python-gitlab.readthedocs.io/en/latest и
АПИ Дискорда https://discordpy.readthedocs.io/en/latest '''
from os import environ, remove # получение переменных среды и удаление файлов
import discord, gitlab # работа с АПИ Дискорда и ГитЛаба
import csv # запись и чтение табличной базы данных, https://ru.wikipedia.org/wiki/CSV
database = open("database.csv", "w")
database.close()
slovar = dict()
gitlab_instance = gitlab.Gitlab(url = 'https://gitlab.megu.one', private_token = environ.get("TOKEN_GITLAB")) # ппределение адреса и токена экземляра ГитЛаба
project = gitlab_instance.projects.get(13)
''' Определение проекта в котором нужно создавать задачи.
TODO: Привязка экземляра и проекта к Дискорд Каналу, не в коде '''
gitlab_instance = gitlab.Gitlab(
url = 'https://gitlab.megu.one',
private_token = environ.get("TOKEN_GITLAB")
)
intents = discord.Intents.default() # использовать требования по умолчанию
intents.message_content = True # требовать содержимое сообщений
''' Определение событий требуемых для функционирования бота, например,
«пользователь печатает» можно игнорировать, а отправленное сообщение нужно получить '''
project = gitlab_instance.projects.get(13) # TODO: надо чтобы id проекта привязался к id канала
intents = discord.Intents.default()
intents.message_content = True
discord_bot = discord.Client(intents=intents) # Объявление о существовании бота
#tree_commands = discord.app_commands.CommandTree(discord_bot) # Объявление дерева команд бота
discord_bot = discord.Client(intents=intents) # Определение конфигурации бота
@ -45,10 +41,6 @@ async def on_message(message): # обработка каждого сообще
if message.content.startswith('/issue'): # Создание на базе этого задачи на ГитЛабе и отчёт об этом в канал
if project.issues.create({'title': issue_text,'description': 'Something useful here.'}):
await message.channel.send("Задача «" + issue_text + "» создана.")
#if message.content.startswith('/project'):
#slovar.update({message.channel.id: message.content.replace("/project ","")})
#await message.channel.send(slovar)
if message.content.startswith('/project'):
database = open("database.csv", "a+")
@ -58,13 +50,22 @@ async def on_message(message): # обработка каждого сообще
if message.content.startswith('/remove'):
remove("database.csv")
#command_issue_extras = dict()
#@tree_commands.command(name="issue", description="создать задачу на GitLab", nsfw=False, auto_locale_strings=False)
#async def issue(interaction):
# await interaction.response.send_message(f"Pong", ephemeral=True)
#add_command(*command_issue, guild=None, guilds=None, override=True)
#asyncio.run(sync(*command_issue, guild=None))
discord_bot.run(environ.get("TOKEN_DISCORD"))
discord_bot.run(environ.get("TOKEN_DISCORD"))
''' TODO: Регистрировать команды бота в Команды Приложения —
https://discordpy.readthedocs.io/en/latest/interactions/api.html#application-commands:
tree_commands = discord.app_commands.CommandTree(discord_bot) # Объявление дерева команд бота
if message.content.startswith('/project'):
slovar.update({message.channel.id: message.content.replace("/project ","")})
await message.channel.send(slovar)
slovar = dict()
command_issue_extras = dict()
@tree_commands.command(name="issue", description="создать задачу на GitLab", nsfw=False, auto_locale_strings=False)
async def issue(interaction):
await interaction.response.send_message(f"Pong", ephemeral=True)
add_command(*command_issue, guild=None, guilds=None, override=True)
asyncio.run(sync(*command_issue, guild=None))
'''