aboutsummaryrefslogblamecommitdiff
path: root/cogs/utils.py
blob: f1cfeba80803b8b7a0758801d7e1545922f1816b (plain) (tree)
1
2
3
4
5
6
7
8
9
10

                                



               
               


                                                                             
                          
                              
                              
                                                     



                                    
 



                                                          
                                                                               
                                                          
                                                                                                 


                                                   
 



                                
                              
 
                                                                                                                               
                                  

                                                                         
                                                            

                                      
                                                                
                                                  
                              

                                   
                                                  



                                                       



                                                              
                                      
                




                                                                                                      
                                                                        
                                                          
                                      

                                             
                                                                                                                                                              








                                                                                 
                


                                                                                                       
                                                                                                    

                                                                                                    







                                                                                                             



                                                                                             





















                                                                                                   





                                                                                                                                    
                        




                                                           
 







                                                                                             

                                         



























                                                                                                     

                                 













































                                                                                                                      
                           

                                                                 
 

                               
from discord.ext import commands
from discord.ext import tasks
import discord
import requests
import json
import asyncio
import datetime
# forgot to import this and ended up looking mentally unstable
# troll literally pointed out atleast 4 things I did wrong in 3 lines of code
from random import choice
from random import randint
from datetime import timedelta
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
#from PIL.Image import core as Image
#import image as Image
from PIL import Image
import numpy as np

async def reportStuff(self, ctx, message):
	channel = self.bot.get_channel(715549209998262322)

	embed = discord.Embed(
				title=f"Report from {ctx.message.author.name}",
				description=f"{message}", 
				color=ctx.message.author.color, timestamp=ctx.message.created_at)

	await channel.send(embed=embed)
	await ctx.send("Report has been submitted")

class Utils(commands.Cog):

	def __init__(self, bot):
		self.bot = bot
		self.tries = 1

	@commands.command(description="Pong!", help="Tells the ping of the bot to the discord servers", brief="Tells the ping")
	async def ping(self, ctx):
		await ctx.send(f'Pong! {round(self.bot.latency*1000)}ms')

	@commands.cooldown(1, 25, commands.BucketType.guild)
	@commands.command()
	async def findseed(self, ctx):
		if ctx.message.channel.id != 684787316489060422:
			await ctx.message.delete()
			return
		totalEyes = 0
		for i in range(12):
			randomness = randint(1,10)
			if randomness == 1:
				totalEyes += randomness
			else:
				continue
				
		# haha sneaky sneaky
		Thomas = self.bot.get_user(280428276810383370)
		if ctx.message.author == Thomas:
			totalEyes = 12
		
		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):
			if ctx.message.channel.id != 684787316489060422:
				await ctx.message.delete()
				return
		else:
			await ctx.send(error)
			#await ctx.send(f"{ctx.message.author.display_name}, you have to wait {round(error.retry_after, 7)} 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
		
		coolKids = [
			['Cameron', self.bot.get_user(468262902969663488), datetime.date(2020, 10, 8)],
			['Indy', self.bot.get_user(274923326890311691), datetime.date(2020, 9, 10)],
			['Kai', self.bot.get_user(199070670221475842), datetime.date(2020, 11, 20)],
			['Luca', self.bot.get_user(99457716614885376), datetime.date(2020, 11, 5)],
			['Max', self.bot.get_user(543958509243596800), datetime.date(2020, 11, 10)],
			['Murray', self.bot.get_user(400344183333847060), datetime.date(2020, 11, 10)],
			# idk if she goes by her irl name but I'm sticking with it for the sake of uniformity
			# also idk how to pronounce prakxo
			['Samantha', self.bot.get_user(226312219787264000), datetime.date(2020, 6, 25)],
			['Scott', self.bot.get_user(223937483774230528), datetime.date(2020, 6, 23)],
			['Thomas', self.bot.get_user(280428276810383370), datetime.date(2020, 9, 29)]
		]
		
		
		# Luca plz dont remove the bottom code (just incase the new code doesnt work,
		# and also for me to laugh at how bad my code is)
		
		# brb while I write ugly and inefficient code in my
		# conquest to make Steve the Bot bloated and unworkable
		
		#if datetime.date.today() == datetime.date(2020, 6, 23):
		#	await scott.send('Happy Birthday Scott. You\'re a boomer now! :mango:')
		#elif datetime.date.today() == datetime.date(2020, 6, 25):
		#	await samantha.send('Happy Birthday Prakxo. You\'re a boomer now! :mango:')
		#elif datetime.date.today() == datetime.date(2020, 5, 28):
		#	await thomas.send('Testy Test :mango:')
		#elif datetime.date.today() == datetime.date(2020, 9, 29):
		#	await thomas.send('Now you know how the others felt :mango:')
		#elif datetime.date.today() == datetime.date(2020, 10, 8):
		#	await cameron.send('Happy Birthday Cameron. You\'re a boomer now! :mango:')
		#elif datetime.date.today() == datetime.date(2020, 11, 10):
		#	await murray.send('Happy Birthday Murray. You\'re a boomer now! :mango:')
		#elif datetime.date.today() == datetime.date(2020, 9, 10):
		#	await indy.send('Happy Birthday Indy. You\'re a boomer now! :mango:)
		
		# Ignore the above message. I got sick and tired of looking at trash code
		
		for coolKid in coolKids:
			if datetime.date.today() == coolKid[2]:
				try:
					for i in range(self.tries):
						await coolKid[1].send(f'Happy Birthday {coolKid[0]}! You\'re a boomer now! :mango:')
					self.tries = 1
				except:
					self.tries +=1
			
		for word in badWords:
			if word in message.content.lower():
				count += 1;
				fair = 'Fair '*count
		await message.channel.send(fair)

	@commands.cooldown(1, 60, commands.BucketType.member)
	@commands.command()
	async def report(self, ctx, *, message=None):
		if message == None:
			await ctx.send("Please type a report to report (hehe, sounds funny)")
		else:
			await reportStuff(self, ctx, message)

	@commands.command()
	async def leaderboard(self, ctx):
		async with ctx.typing():
			DRIVER = '/usr/lib/chromium-browser/chromedriver'
			chrome_options = Options()
			chrome_options.add_argument("--disable-dev-shm-usage")
			chrome_options.add_argument("--headless")
			chrome_options.add_argument("--no-sandbox")
			chrome_options.add_argument("--disable-gpu")
			#chrome_options.binary_location = ""
			driver = webdriver.Chrome(DRIVER, chrome_options=chrome_options)
			driver.get('https://aninternettroll.github.io/mcbeVerifierLeaderboard/')
			screenshot = driver.find_element_by_id('table').screenshot('leaderboard.png')
			driver.quit()
			#transparency time
			img = Image.open('leaderboard.png')
			img = img.convert("RGBA")
			datas = img.getdata()

			newData = []
			for item in datas:
				if item[0] == 255 and item[1] == 255 and item[2] == 255:
					newData.append((255, 255, 255, 0))
				else:
					newData.append(item)

			img.putdata(newData)
			img.save("leaderboard.png", "PNG")

			await ctx.send(file=discord.File("leaderboard.png"))
	
	# Why? Because I can. lel
	
	# celeste guyToday at 6:13 PM
	# @Mango Man that's not how it works
	
	# Mango ManToday at 6:13 PM
	# it looks fine in lightmode
	# wait whats not how what works
	
	# celeste guyToday at 6:13 PM
	# the command
	
	# Mango ManToday at 6:13 PM
	# o
	# how does it work
	
	# celeste guyToday at 6:14 PM
	# Like for a start, nothing is defined
	# use ctx D:
	
	# Mango ManToday at 6:14 PM
	# Do I need to though?
	
	# celeste guyToday at 6:14 PM
	# ctx.guild.members() or something
	# Yes, server is not a thing
	# 2nd, mention is not used like that
	# You still have to send a message
	# And mention in the message
	
	# Mango ManToday at 6:14 PM
	# o
	
	# celeste guyToday at 6:15 PM
	# 3rd, don't forget to import choice from random
	
	# Mango ManToday at 6:15 PM
	# this is why you dont steal code from github
	# I actually feel embarrased over forgetting to import random
	
	# celeste guyToday at 6:15 PM
	# 4th, add ctx in the arguments list, or you'll get an error like "function takes 1 argument but 2 were given"
	# And you will use it to send the message and get the server
	# Also forgetting the import is the least embarrassing thing
	# Since I did remove it
	# And replaced with import randint from random
	
	@commands.command()
	async def someone(self, ctx):
		await ctx.send(choice(ctx.guild.members).mention)

def setup(bot):
	bot.add_cog(Utils(bot))