78 lines
3.9 KiB
Python
78 lines
3.9 KiB
Python
import discord
|
|
from discord.ext import commands
|
|
|
|
import praw
|
|
import random
|
|
import urllib.request as request
|
|
import os
|
|
import json
|
|
import time
|
|
import datetime
|
|
|
|
class Meme(commands.Cog):
|
|
|
|
def __init__(self, bot):
|
|
self.bot = bot
|
|
|
|
def JSONEncoder(self, o):
|
|
if isinstance(o, datetime.datetime):
|
|
return o.isoformat()
|
|
|
|
@commands.command(name='memes', aliases=['meme'])
|
|
async def memes_(self, ctx, *, args=""):
|
|
users=json.load(open('data/users.json', 'r'))
|
|
try:
|
|
dernier_message_temps = users[str(571348123855880192)]['dernier_message_XP_pics']
|
|
dernier_message_temps = datetime.datetime.strptime(dernier_message_temps, '%Y-%m-%dT%H:%M:%S.%f')
|
|
created_at = datetime.datetime.now()
|
|
ecart = created_at-dernier_message_temps #caclul l'écart
|
|
except:
|
|
users[str(571348123855880192)] = {}
|
|
dernier_message_temps = users[str(571348123855880192)]['experience']=-1
|
|
client = commands.Bot(command_prefix=".")
|
|
ravaBot = await client.fetch_user(571348123855880192)
|
|
dernier_message_temps = users[str(571348123855880192)]['nom_usuel']=f"{ravaBot.name}#{ravaBot.discriminator}"
|
|
ecart = datetime.timedelta(seconds=6)
|
|
if ecart.seconds >= 5:
|
|
users[str(571348123855880192)]['dernier_message_XP_pics'] = datetime.datetime.now()
|
|
json.dump(users, open('data/users.json', 'w'), default=self.JSONEncoder, indent=4, sort_keys=True)
|
|
try:
|
|
reddit = praw.Reddit(client_id='TON ID CLIENT', client_secret='TON CLIENT SECRET', user_agent='disreddit /u/xxxxxx, http://localhost:8080')
|
|
|
|
if args == "ctsurenft": # si user demande meme 'ctsurenft'
|
|
subredditchoix = 'Meme de qualité'
|
|
image_meme = 'https://twitter.com/i/status/1181338160741191682'
|
|
return await ctx.send(f"**{subredditchoix}**: {image_meme}") #en attendant que discord fix les vidéos dans les embed
|
|
|
|
elif args != "": # si il y a un arg différent d'un meme
|
|
subredditchoix = args
|
|
|
|
else: # si il n'y a pas d'arguments
|
|
subredditchoix = random.choice(['memes','anime_irl','Animemes','BikiniBottomTwitter','dankmemes','DeepFriedMemes',
|
|
'educationalmemes','funny','marvelmemes','me_irl','meme','MemeEconomy','Memes_Of_The_Dank','MinecraftMemes',
|
|
'PewdiepieSubmissions','physicsmemes','reactiongifs','wholesomememes','blackpeopletwitter','metal_me_irl','bee_irl','coaxedintoasnafu','195',
|
|
'shittyadviceanimals','meirl','2meirl4meirl','AdviceAnimals','weirdmemes'])
|
|
|
|
memes_submissions = reddit.subreddit(subredditchoix).hot()
|
|
post_to_pick = random.randint(1, 10)
|
|
for i in range(0, post_to_pick): # i pas important
|
|
submission = next(x for x in memes_submissions if not x.stickied)
|
|
|
|
image_meme = submission.url
|
|
subredditchoix = f"r/{subredditchoix}"
|
|
|
|
embed = discord.Embed(title=f"{subredditchoix} pour {ctx.author.name}", colour=discord.Colour.green())
|
|
embed.set_footer(text=f"Memes from reddit | Développé par des ravaG.")
|
|
embed.set_image(url=image_meme)
|
|
return await ctx.send(embed=embed)
|
|
|
|
except Exception as error:
|
|
print(f"args: {args}, subreddit: {subredditchoix}, error: {error}")
|
|
return await ctx.send(f"Ce subreddit est interdit, mis en quarantaine ou n'existe pas. ({subredditchoix})")
|
|
else:
|
|
t = 5-ecart.seconds
|
|
await ctx.send(f"Tu dois encore attendre {t} seconde{'s' if t>1 else ''} avant de lancer cette commande.", delete_after=2)
|
|
|
|
|
|
def setup(bot):
|
|
bot.add_cog(Meme(bot))
|