From fa9957fd38d8753713a6bbdfcf5c05222a3147ce Mon Sep 17 00:00:00 2001 From: Luke Robles Date: Fri, 29 Jun 2018 19:48:00 -0700 Subject: [PATCH] Create issues with dragon-bot now --- app/dragon-bot.py | 7 +++++++ app/gitlab.py | 44 ++++++++++++++++++++++++++++++++++++++++++++ app/help_methods.py | 6 +++++- 3 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 app/gitlab.py diff --git a/app/dragon-bot.py b/app/dragon-bot.py index 1fead751..391550b4 100644 --- a/app/dragon-bot.py +++ b/app/dragon-bot.py @@ -18,6 +18,7 @@ import eight_ball import emoji import excuse import get_from_reddit +import gitlab import help_methods import lewds import questions @@ -223,6 +224,12 @@ async def on_message(message): ) await client.send_message(message.channel, invite) + if message.content.startswith('!issue'): + await client.send_message( + message.channel, + gitlab.parse_message(message) + ) + if message.content.startswith('!lewd'): if 'nsfw' in message.channel.name: await client.send_message( diff --git a/app/gitlab.py b/app/gitlab.py new file mode 100644 index 00000000..c9c51a62 --- /dev/null +++ b/app/gitlab.py @@ -0,0 +1,44 @@ +import requests +import os + +import help_methods +import role_check + + +def create_issue(title, description): + + post_args = { + 'title': title, + 'description': description + } + + headers = { + 'PRIVATE-TOKEN': os.getenv('gitlab_token') + } + + r = requests.post( + 'http://luker.zzzz.io/gitlab/api/v4/projects/2/issues', + data=post_args, + headers=headers + ) + + return(r.json()['web_url']) + + +def parse_message(message): + if not role_check.is_admin(message.author.roles): + return 'You dont have permission to do that' + + if len(message.content.split()) == 1: + return help_methods.get_help_message(method='issue') + + try: + message = ' '.join(message.content.split()[1:]) + title, description = message.split(';') + except Exception: + return help_methods.get_help_message(method='issue') + + try: + return create_issue(title=title, description=description) + except Exception: + return help_methods.get_help_message(method='issue') diff --git a/app/help_methods.py b/app/help_methods.py index 7ef42546..aa94e06d 100644 --- a/app/help_methods.py +++ b/app/help_methods.py @@ -69,6 +69,10 @@ def get_help_message(method): 'Generates a one time use invite to the current channel.', 'Be quick! It expires in 12 hours' ], + 'issue': [ + 'Creates an issue on gitlab with the passed in parameters\n', + 'Usage: !issue ; ', + ], 'lewd': [ 'Returns a URL for a lewd image.', 'Can only be used in NSFW channels.', @@ -124,7 +128,7 @@ def get_help_message(method): def get_help_embed(client): categories = { 'fun': ['clap', 'birb', 'dog', 'excuse', 'greentext', 'lewd', 'message', 'homepage', 'pout', 'smug'], - 'util': ['8ball', 'decide', 'wallpaper', 'weather', 'stock', 'tts'], + 'util': ['8ball', 'decide', 'wallpaper', 'weather', 'stock', 'tts', 'issue'], 'users': ['help', 'invite', 'purge', 'roles', 'source', 'minecraft'], 'admin': ['emoji', 'cleanup'] }