ajout commande pour invoquer un chat, un chien, et un meme
This commit is contained in:
parent
88df5b5e7d
commit
2776c0663b
1 changed files with 103 additions and 0 deletions
103
cogs/internet.py
Normal file
103
cogs/internet.py
Normal file
|
@ -0,0 +1,103 @@
|
|||
import discord, praw, json, requests, datetime
|
||||
from discord.ext import commands
|
||||
from random import randint, choice
|
||||
import time
|
||||
from tokens import token_reddit as token # à l'importation de l'extension, le fichier se retrouve dans le '/' et non dans 'cogs/', ignorez l'erreur pylint si il y a
|
||||
|
||||
def setup(bot):
|
||||
bot.add_cog(Internet(bot))
|
||||
|
||||
class Internet(commands.Cog):
|
||||
"""Commandes relatives à ce qui provient d'internet."""
|
||||
|
||||
def __init__(self, bot):
|
||||
self.bot = bot
|
||||
|
||||
@commands.command(name='memes', aliases = ['meme'])
|
||||
async def _memes(self, ctx, *, args = ""):
|
||||
"""Envois un meme de reddit.\n ➡ Syntaxe: .memes/meme [subreddit]"""
|
||||
try:
|
||||
reddit = praw.Reddit(client_id = token['client_id'], client_secret = token['client_secret'], user_agent = f"{token['user_agent']}, http://localhost:8080")
|
||||
|
||||
if args != "": # si il y a un arg différent d'un meme
|
||||
subredditchoix = args
|
||||
|
||||
else: # si il n'y a pas d'arguments
|
||||
subredditchoix = choice(['memes', 'anime_irl', 'goodanimemes', 'BikiniclienttomTwitter', 'dankmemes', 'DeepFriedMemes',
|
||||
'educationalmemes', 'funny', 'marvelmemes', 'me_irl', 'meme', 'MemeEconomy', 'Memes_Of_The_Dank', 'MinecraftMemes',
|
||||
'physicsmemes', 'reactiongifs', 'blackpeopletwitter', 'metal_me_irl', 'bee_irl', '195',
|
||||
'shittyadviceanimals', 'meirl', '2meirl4meirl', 'AdviceAnimals', 'weirdmemes'])
|
||||
|
||||
memes_submissions = reddit.subreddit(subredditchoix).hot()
|
||||
post_to_pick = randint(1, 10)
|
||||
for i in range(0, post_to_pick): # i pas important
|
||||
i = i #retire l'erreur sur vscode
|
||||
submission = next(x for x in memes_submissions if not x.stickied)
|
||||
|
||||
image = ["png", "jpg", "jpeg", "bmp", "gif"]
|
||||
if submission.url[-3:] in image:
|
||||
embed = discord.Embed(title = f"r/{subredditchoix} pour {ctx.author.name}", color = randint(0, 0xFFFFFF), description = f"[lien du meme]({submission.url})")
|
||||
embed.set_footer(text = f"Meme de Reddit")
|
||||
embed.set_image(url = submission.url)
|
||||
message = await ctx.send(embed = embed)
|
||||
else:
|
||||
await ctx.send(f"```r/{subredditchoix} pour {ctx.author.name}```\n{submission.url}")
|
||||
message = await ctx.send("```Meme de Reddit```")
|
||||
await ctx.message.add_reaction(emoji = '✅')
|
||||
await message.add_reaction('👍')
|
||||
return await message.add_reaction('👎')
|
||||
|
||||
except Exception as error:
|
||||
print(f"args: {args}, subreddit: {subredditchoix}, error: {error}")
|
||||
await ctx.message.add_reaction(emoji = '❌')
|
||||
return await ctx.send(f"Ce subreddit est interdit, mis en quarantaine ou n'existe pas. ({subredditchoix})")
|
||||
|
||||
def _random_image(self, link):
|
||||
temps_requete = int(round(time.time() * 1000))
|
||||
try:
|
||||
request_data = requests.get(link)
|
||||
except Exception as e:
|
||||
raise Exception(f"Une erreur s'est produite lors de la tentative de demande de l'API {link} : {e}")
|
||||
|
||||
if not request_data.status_code == 200:
|
||||
raise Exception(f"Code HTTP {request_data.status_code} au lieu de HTTP 200 à l'appel de {link} : {request_data.text}")
|
||||
|
||||
try:
|
||||
json_data = json.loads(request_data.text)
|
||||
except Exception as e:
|
||||
raise Exception(f"Erreur lors de la transformation les données de {link} en json : {e}")
|
||||
|
||||
temps_requete = int(round(time.time() * 1000)) - temps_requete
|
||||
return (json_data, temps_requete)
|
||||
|
||||
@commands.command(name='cat', aliases = ['chat'])
|
||||
async def _cat(self, ctx):
|
||||
"""Te montre un magnifique chat\n ➡ Syntaxe: .cat/chat"""
|
||||
|
||||
if ctx.author.nick:
|
||||
name = f"{ctx.author.nick} ({ctx.author.name}#{ctx.author.discriminator})"
|
||||
else:
|
||||
name = f"{ctx.author.name}"
|
||||
embed = discord.Embed(title = f"Poticha pour {name}", colour = randint(0, 0xFFFFFF))
|
||||
cat = self._random_image("http://aws.random.cat/meow")
|
||||
embed.set_image(url = cat[0]['file'])
|
||||
embed.set_footer(text = f"random.cat a pris {cat[1]} ms.")
|
||||
await ctx.message.add_reaction(emoji = '✅')
|
||||
message = await ctx.send(embed=embed)
|
||||
return await message.add_reaction('❤️')
|
||||
|
||||
@commands.command(name='dog', aliases = ['chien'])
|
||||
async def _dog(self, ctx):
|
||||
"""Te montre un magnifique chien\n ➡ Syntaxe: .dog/chien"""
|
||||
|
||||
if ctx.author.nick:
|
||||
name = f"{ctx.author.nick} ({ctx.author.name}#{ctx.author.discriminator})"
|
||||
else:
|
||||
name = f"{ctx.author.name}"
|
||||
embed = discord.Embed(title = f"Potichien pour {name}", colour = randint(0, 0xFFFFFF))
|
||||
dog = self._random_image("https://dog.ceo/api/breeds/image/random")
|
||||
embed.set_image(url = dog[0]['message'])
|
||||
embed.set_footer(text = f"dog.ceo a pris {dog[1]} ms.")
|
||||
await ctx.message.add_reaction(emoji = '✅')
|
||||
message = await ctx.send(embed=embed)
|
||||
return await message.add_reaction('❤️')
|
Reference in a new issue