44import random
55import time
66from datetime import datetime , timezone
7+ from urllib import request
78
89import akinator as ak
910import disnake
1213from disnake .ext import commands
1314from disnake .utils import utcnow
1415from dotenv import load_dotenv
16+ import requests
1517
1618from utils .CONSTANTS import morse
1719from utils .assorted import renderBar
@@ -134,7 +136,7 @@ async def youtube(self, inter):
134136 )
135137 embed .set_footer (
136138 text = f"Command issued by: { inter .author .name } " ,
137- icon_url = inter .author .avatar ,
139+ icon_url = inter .author .display_avatar ,
138140 )
139141 await inter .send (embed = embed )
140142 else :
@@ -151,7 +153,7 @@ async def joke(self, inter):
151153 embed = disnake .Embed (title = "Joke!" , description = data ["joke" ], color = 0xFFFFFF )
152154 embed .set_footer (
153155 text = f"Command issued by: { inter .author .name } " ,
154- icon_url = inter .message .author .avatar ,
156+ icon_url = inter .message .author .display_avatar ,
155157 )
156158 await inter .send (embed = embed )
157159
@@ -165,7 +167,7 @@ async def triggered(self, inter, member: disnake.Member = None):
165167 """Time to get triggered."""
166168 if not member :
167169 member = inter .author
168- trigImg = await self .bot .session .get (f"https://some-random-api.ml/canvas/triggered?avatar={ member .avatar .url } " )
170+ trigImg = await self .bot .session .get (f"https://some-random-api.ml/canvas/triggered?avatar={ member .display_avatar .url } " )
169171 imageData = io .BytesIO (await trigImg .read ())
170172 await inter .send (file = disnake .File (imageData , "triggered.gif" ))
171173
@@ -182,7 +184,7 @@ async def amongus(self, inter, member: disnake.Member = None):
182184 member = inter .author
183185 impostor = random .choice (["true" , "false" ])
184186 apikey = os .getenv ("SRA_API_KEY" )
185- uri = f"https://some-random-api.ml/premium/amongus?username={ member .name } &avatar={ member .avatar .url } &impostor={ impostor } &key={ apikey } "
187+ uri = f"https://some-random-api.ml/premium/amongus?username={ member .name } &avatar={ member .display_avatar .url } &impostor={ impostor } &key={ apikey } "
186188 resp = await self .bot .session .get (uri )
187189 if 300 > resp .status >= 200 :
188190 fp = io .BytesIO (await resp .read ())
@@ -196,7 +198,7 @@ async def invert(self, inter, member: disnake.Member = None):
196198 """Invert your profile picture."""
197199 if not member :
198200 member = inter .author
199- trigImg = await self .bot .session .get (f"https://some-random-api.ml/canvas/invert/?avatar={ member .avatar .url } " )
201+ trigImg = await self .bot .session .get (f"https://some-random-api.ml/canvas/invert/?avatar={ member .display_avatar .url } " )
200202 imageData = io .BytesIO (await trigImg .read ())
201203 await inter .send (file = disnake .File (imageData , "invert.png" ))
202204
@@ -206,7 +208,7 @@ async def pixelate(self, inter, member: disnake.Member = None):
206208 """Turn yourself into pixels"""
207209 if not member :
208210 member = inter .author
209- trigImg = await self .bot .session .get (f"https://some-random-api.ml/canvas/pixelate/?avatar={ member .avatar .url } " )
211+ trigImg = await self .bot .session .get (f"https://some-random-api.ml/canvas/pixelate/?avatar={ member .display_avatar .url } " )
210212 imageData = io .BytesIO (await trigImg .read ())
211213 await inter .send (file = disnake .File (imageData , "pixelate.png" ))
212214
@@ -217,7 +219,7 @@ async def jail(self, inter, member: disnake.Member = None):
217219 if not member :
218220 member = inter .author
219221
220- trigImg = await self .bot .session .get (f"https://some-random-api.ml/canvas/jail?avatar={ member .avatar .url } " )
222+ trigImg = await self .bot .session .get (f"https://some-random-api.ml/canvas/jail?avatar={ member .display_avatar .url } " )
221223 imageData = io .BytesIO (await trigImg .read ())
222224 await inter .send (file = disnake .File (imageData , "jail.png" ))
223225
@@ -461,6 +463,32 @@ async def info(self, inter, pokem: str = commands.ParamInfo(name="pokemon", desc
461463 return await errorEmb (inter , f"{ key } " )
462464 return await inter .send (embed = embed )
463465
466+ @commands .slash_command (name = "urltoqr" , description = "Converts a URL to a QR code." )
467+ async def urltoqr (self , inter , url : str , size : int ):
468+ url = url .replace ("http://" , "" ).replace ("https://" , "" )
469+ qr = f"https://api.qrserver.com/v1/create-qr-code/?size={ size } x{ size } &data={ url } "
470+ embed = disnake .Embed (title = f"URL created for: { url } " , color = 0xFFFFFF )
471+ embed .set_image (url = qr )
472+ embed .set_footer (text = f"Requested by: { inter .author .name } " )
473+ return await inter .send (embed = embed )
474+
475+ @commands .slash_command (name = "urlshortner" , description = "Shortens a URL." )
476+ async def urlshortner (self , inter , url : str ):
477+ # checking if url starts with http:// or https://, if it does not, adding https:// towards the start
478+ if not url .startswith ("http://" ) and not url .startswith ("https://" ):
479+ url = f"https://{ url } "
480+ response = requests .post (f"https://u.jasoncodes.ca/add/{ url } " )
481+ if response .status_code == 200 :
482+ embed = disnake .Embed (
483+ title = f"URL created for: { url .replace ('http://' , '' ).replace ('https://' , '' )} " ,
484+ color = 0xFFFFFF ,
485+ description = f"Your shortend URL is: { response .json ()['short_url' ]} , or click [here]({ response .json ()['short_url' ]} ) to visit it." ,
486+ )
487+ embed .set_footer (text = f"Requested by: { inter .author .name } " )
488+ return await inter .send (embed = embed )
489+ else :
490+ return await errorEmb (inter , "An unexpected error occurred! Please try again later." )
491+
464492
465493def setup (bot ):
466494 bot .add_cog (Fun (bot ))
0 commit comments