diff options
Diffstat (limited to '')
-rwxr-xr-x | cogs/utils.py | 125 |
1 files changed, 23 insertions, 102 deletions
diff --git a/cogs/utils.py b/cogs/utils.py index cd883f8..1555d58 100755 --- a/cogs/utils.py +++ b/cogs/utils.py @@ -1,6 +1,5 @@ from discord.ext import commands from discord.ext import tasks -from discord.utils import get import discord import requests import json @@ -21,106 +20,16 @@ async def translateMsg(text, target="en"): result['detectedSourceLanguage'])) return result; - -async def verifyRole(self, ctx, apiKey): - server = self.bot.get_guild(574267523869179904) - RunneRole = server.get_role(574268937454223361) - WrRole = server.get_role(583622436378116107) - head = { - "X-API-Key":apiKey, - "Accept": "application/json", - "User-Agent":"mcbeDiscordBot/1.0" - } - r = requests.get('https://www.speedrun.com/api/v1/profile', headers=head) - - #print(profile.text) - profile = json.loads(r.text) - pbs = requests.get(profile["data"]["links"][3]["uri"]) - pbs = json.loads(pbs.text) - - for i in pbs["data"]: - if i["place"] == 1: - if i["run"]["game"] == "yd4ovvg1" or i["run"]["game"] == "v1po7r76": - await ctx.send("WR boi") - await server.get_member(ctx.message.author.id).add_roles(WrRole) - print("WR boi") - if i["run"]["game"] == "yd4ovvg1" or i["run"]["game"] == "v1po7r76": - #print(i) - await ctx.send("Runner") - await server.get_member(ctx.message.author.id).add_roles(RunneRole) - #print("minecraft") - - print(r.status_code) - #print(json.dumps(pbs,sort_keys=True, indent=4)) - -async def clear(self): - async for msg in self.bot.get_channel(699713639866957905).history(): - await msg.delete() - - -async def pendingRuns(self, ctx): - head = { - "Accept": "application/json", - "User-Agent":"mcbeDiscordBot/1.0" - } - gameID = 'yd4ovvg1' # ID of Minecraft bedrock - gameID2 = 'v1po7r76' # ID of Category extension - runsRequest = requests.get( - f'https://www.speedrun.com/api/v1/runs?game={gameID}&status=new&max=200&embed=category,players', headers=head) - runs = json.loads(runsRequest.text) - runsRequest2 = requests.get( - f'https://www.speedrun.com/api/v1/runs?game={gameID2}&status=new&max=200&embed=category,players', headers=head) - runs2 = json.loads(runsRequest2.text) - # Use https://www.speedrun.com/api/v1/games?abbreviation=mcbe for ID - - for game in range(2): - for i in range(200): - try: - for key, value in runs['data'][i].items(): - if key == 'weblink': - link = value - if key == 'category': - categoryName = value["data"]["name"] - if key == 'players': - if value["data"][0]['rel'] == 'guest': - player = value["data"][0]['name'] - else: - player = value["data"][0]["names"]["international"] - if key == 'times': - rta = timedelta(seconds=value['realtime_t']) - except Exception as e: - break - if game == 0: - leaderboard = "Minecraft bedrock" - elif game == 1: - leaderboard = "Minecraft Bedrock category extensions" - embed = discord.Embed( - title=leaderboard, url=link, description=f"{categoryName} in `{str(rta).replace('000','')}` by **{player}**", color=16711680+i*60) - await self.bot.get_channel(699713639866957905).send(embed=embed) - runs = runs2 - gameID = gameID2 - class Utils(commands.Cog): def __init__(self, bot): self.bot = bot - @commands.command() + @commands.command(description="Pong!", help="Tells the ping of the bot to the discord servers", brief="Tells the ping") async def ping(self, ctx): - # """Shows the Client Latency.""" await ctx.send(f'Pong! {round(self.bot.latency*1000)}ms') - @commands.command() - async def test(self, ctx): - await ctx.send(ctx.message.channel) - - @commands.command() - @commands.guild_only() - async def pending(self, ctx): - await clear(self) - await pendingRuns(self, ctx) - - @commands.command() + @commands.command(help="Translate text in english (using google translate)", brief="Translate to english") async def translate(self, ctx, *, message): response = await translateMsg(message) embed=discord.Embed(title="Translation",description=f"{ctx.message.author.mention} says:", timestamp=ctx.message.created_at, color=0x4d9aff) @@ -135,15 +44,8 @@ class Utils(commands.Cog): embed.add_field(name=f"[{response['detectedSourceLanguage']}] Source:" , value=response['input'], inline=False) embed.add_field(name="Translation", value=response['translatedText'], inline=True) await ctx.send(embed=embed) - - @commands.command() - async def verify(self, ctx, apiKey=None): - if apiKey == None: - await ctx.send("Please try again this command by getting an apiKey from https://www.speedrun.com/api/auth then do `/verify <apiKey>` in my DMs or anywhere in this server. \nBe careful who you share this key with. To learn more check out https://github.com/speedruncomorg/api/blob/master/authentication.md") - elif ctx.guild != None: - await ctx.message.delete() - await verifyRole(self, ctx, apiKey) + @commands.cooldown(1, 25, commands.BucketType.guild) @commands.command() async def findseed(self, ctx): totalEyes = 0 @@ -153,7 +55,26 @@ class Utils(commands.Cog): totalEyes += randomness else: continue - await ctx.send(f"{ctx.message.author.name} -> your seed is a {totalEyes} eye") + await ctx.send(f"{ctx.message.author.display_name} -> your seed is a {totalEyes} eye") + + @findseed.error + async def findseed_handler(self,ctx,error): + if isinstance(error, commands.CommandOnCooldown): + await ctx.send(f"{ctx.message.author.display_name}, you have to wait {round(error.retry_after, 2)} seconds before using this again.") + + @commands.Cog.listener() + async def on_message(self, message): + if message.channel.id != 589110766578434078: + return + if message.author.bot: + return + badWords = ["fair", "f a i r", "ⓕⓐⓘⓡ", "ⓕ ⓐ ⓘ ⓡ"] + count = 0 + for word in badWords: + if word in message.content.lower(): + count += 1; + fair = 'Fair '*count + await message.channel.send(fair) def setup(bot): bot.add_cog(Utils(bot)) |