aboutsummaryrefslogblamecommitdiff
path: root/cogs/general.py
blob: 9fc8f5cfd2cf754ec905d36d8bdcdba7bdc5b9c6 (plain) (tree)
1
2
3
4
5


                                 

                


















                                                                       
 

                                     
                                                  
 



                                           
 
                                                                                                                              
                                                                   
                                                                          










                                                                                                      
                                                                 

                                                  
                      

                                                            
                                                                                                               







                                                                       

















                                                                                                                                    

                                                                         






                                                                                               





























































                                                                                                                    

                                  
from discord.ext import commands
import discord
import datetime
import requests
import json

def dump(obj):
	output = ""
	for attr in dir(obj):
		output += "\nobj.%s = %r" % (attr, getattr(obj, attr))
		print("obj.%s = %r" % (attr, getattr(obj, attr)))
	return output


class General(commands.Cog):
	def __init__(self, bot):
		self.bot = bot

	@commands.command()
	async def userinfo(self, ctx, user: discord.Member=None):
		#await ctx.send(f"```py\n{dump(user)}```")

		if not user:
			user = ctx.message.author

		output = ""
		for i in user.roles:
			output += i.mention + " "

		if user.color.value == 0:
			color = 16777210
		else:
			color = user.color

		embed=discord.Embed(title=user.name, description=user.mention, color=color, timestamp=ctx.message.created_at)
		#embed.set_thumbnail(url="attachment://temp.webp")
		embed.set_thumbnail(url=user.avatar_url_as(format="png"))
		embed.add_field(name="Nickname", value=user.display_name, inline=False)
		embed.add_field(name="Joined on", value=user.joined_at.date(), inline=True)
		embed.add_field(name="Status", value=user.status, inline=True)
		embed.add_field(name="Created account on", value=user.created_at.date(), inline=True)
		embed.add_field(name="Roles", value=output, inline=True)
		embed.set_footer(text=f"ID: {user.id}")
		await ctx.send(embed=embed)
		#os.remove("temp.webp")
		#os.remove("temp.png")

	@commands.command()
	async def coop(self, ctx, *, user: discord.Member=None):
		if not user:
			user = ctx.message.author
		else:
			user = self.bot.get_user(int(user))

		coop_role = ctx.guild.get_role(int(self.bot.config[str(ctx.message.guild.id)]["coop_roleID"]))

		if coop_role in user.roles:
			await user.remove_roles(coop_role)
			await ctx.send('You have left coop gang')
		else:
			await user.add_roles(coop_role)
			await ctx.send("You are now in the coop gang")

	@commands.command()
	async def serverinfo(self, ctx, guild=None):
		if not guild:
			guild = ctx.message.guild
		else:
			print(type(guild))
			guild = self.bot.get_guild(int(guild))

		if guild.owner.color.value == 0:
			color = 16777210
		else:
			color = guild.owner.color

		emojiList = " "
		for i in guild.emojis:
			emojiList += str(i) + " "

		embed=discord.Embed(title=guild.name, description=guild.description, color=color, timestamp=ctx.message.created_at)
		embed.set_thumbnail(url=guild.icon_url_as(format="png"))
		embed.set_image(url=guild.splash_url_as(format="png"))
		embed.add_field(name="Created on", value=guild.created_at.date(), inline=True)
		embed.add_field(name="Members", value=guild.member_count, inline=True)
		embed.add_field(name="Emojis", value=emojiList, inline=True)
		embed.add_field(name="Owner", value=guild.owner.mention, inline=True)
		embed.set_footer(text=f"ID: {guild.id}")
		await ctx.send(embed=embed)

	@commands.command()
	async def xboxUser(self, ctx, *, gamertag=None):
		if not gamertag:
			await ctx.send("You need to specify a gamer, gamer")
			return

		r = requests.get(f"https://xbl-api.prouser123.me/profile/gamertag/{gamertag}")
		gamer = json.loads(r.text)

		try:
			await ctx.send(f"{gamer['error']}: {gamer['message']}")
			return
		except KeyError:
			pass

		for i in gamer["profileUsers"][0]["settings"]:
			if i["id"] == "GameDisplayName":
				gameName = i["value"]
				continue
			if i["id"] == "AppDisplayPicRaw":
				picUrl = i["value"]
				continue
			if i["id"] == "Gamerscore":
				Gamerscore = i["value"]+"<:gamerscore:727131234534424586>"
				continue
			if i["id"] == "AccountTier":
				accountTier = i["value"]
				continue
			if i["id"] == "XboxOneRep":
				reputation = i["value"]
				continue
			if i["id"] == "PreferredColor":
				color = int(json.loads(requests.get(i["value"]).text)["primaryColor"], 16)
				continue
			if i["id"] == "Location":
				location = i["value"]
				continue
			if i["id"] == "Bio":
				#if len(i["value"]) == 0:
				#	Bio = "Unknown"
				#else:
				Bio = i["value"]
				continue
			if i["id"] == "Watermarks":
				Watermarks = i["value"]
				continue
			if i["id"] == "RealName":
				RealName = i["value"]
				continue


		embed=discord.Embed(title=gameName, description=Bio, color=color, timestamp=ctx.message.created_at)
		embed.set_thumbnail(url=picUrl)
		embed.add_field(name="Gamerscore", value=Gamerscore, inline=True)
		if len(location) != 0:
			embed.add_field(name="Location", value=location, inline=True)
		if len(Watermarks) != 0:
			embed.add_field(name="Watermarks", value=Watermarks, inline=True)
		embed.add_field(name="Account Tier", value=accountTier, inline=True)
		embed.add_field(name="Reputation", value=reputation, inline=True)
		await ctx.send(embed=embed)

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