aboutsummaryrefslogtreecommitdiff
path: root/cogs/utils.py
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xcogs/utils.py125
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))