# This example requires the 'message_content' intent. import discord from sys import argv from threading import Thread from time import sleep import asyncio import PICable if len(argv) != 3: print('Usage:\n\t' + argv[0] + ' ') discord_token = argv[1] github_token = argv[2] intents = discord.Intents.default() intents.message_content = True client = discord.Client(intents=intents) def reply_msg(message, owner, repo): asyncio.run(reply_msg_async(message, owner, repo)) return async def reply_msg_async(message, owner, repo): await message.reply(PICable.PICable(owner, repo, github_token)) return async def check_repo_async(message, owner, repo): sent = await message.reply('Checking ' + owner + '/' + repo + '.. /') thread = Thread(target=reply_msg, args=(message, owner, repo)) thread.start() counter = 0 chars = '-\\|/' while thread.is_alive(): char = chars[counter] await sent.edit(content='Checking ' + owner + '/' + repo + '.. ' + char) counter += 1 counter %= 4 await asyncio.sleep(3) return @client.event async def on_ready(): print(f'We have logged in as {client.user}') await client.change_presence(activity=discord.Game("with PIC ideas")) @client.event async def on_message(message): if message.author == client.user: return if not message.content.startswith('$picable'): return msg : str = message.content parts = msg.split() if len(parts) != 3: await message.reply('Usage:\n\t$picable ') return loop = asyncio.get_event_loop() loop.create_task(check_repo_async(message, parts[1], parts[2])) return client.run(discord_token)