Sélectionner une révision Git
-
Alexandre Morignot a rédigéAlexandre Morignot a rédigé
launch.py 3,08 Kio
import discord
import os
import praw
import random
import re
from dotenv import load_dotenv
load_dotenv()
TOKEN = os.getenv('DISCORD_TOKEN')
SECRET = os.getenv('REDDIT_SECRET')
REDDIT_ID = os.getenv('REDDIT_ID')
REDDIT_AGENT = os.getenv('REDDIT_AGENT')
subreddits = dict()
class Entry:
name = ""
subName = ""
#subreddit
#hot_subreddit
totalimgs = 0
posts = []
authors = []
posturls = []
def __init__(self, name, subName):
self.subreddit = praw.Reddit( client_id=REDDIT_ID, \
client_secret=SECRET, \
user_agent=REDDIT_AGENT).subreddit(subName)
hot_subreddit = self.subreddit.hot(limit=500)
self.name = name
self.subName = subName
subreddits['kumiko'] = Entry('kumiko', 'rarekumikos')
subreddits['araragi'] = Entry('araragi', 'araragi')
subreddits['hitagi'] = Entry('hitagi', 'Senjougahara')
def refresh_posts(entry):
print('Refreshing posts for ' + entry.name + '!')
entry.posts.clear()
entry.authors.clear()
entry.posturls.clear()
entry.totalimgs=0
i=0
for submission in entry.subreddit.hot(limit=100):
#_ = os.system('clear')
i = i + 1
entry.totalimgs = entry.totalimgs + 1
print('Getting submission number '+ str(i) +' / 500!')
if ".jpg" not in submission.url and ".png" not in submission.url:
print('Post is not a jpg or png --------------------------')
print(str(submission.url))
entry.totalimgs = entry.totalimgs - 1
continue
entry.posts.append(submission.url)
entry.authors.append(submission.author)
entry.posturls.append(submission.permalink)
print('Total amount of images: '+str(entry.totalimgs))
def refresh_all_posts():
for entry in subreddits.values():
refresh_posts(entry)
def create_embed(post,author,posturl):
embed = discord.Embed(
color = discord.Colour.dark_orange()
)
embed.set_image(url=post)
embed.description ='['+str(author)+'](https://www.reddit.com'+str(posturl)+')'
return embed
refresh_all_posts()
client = discord.Client()
@client.event
async def on_ready():
print(f'{client.user} has connected to Discord!')
@client.event
async def on_message(message):
if message.author == client.user:
return
if "show me a" in message.content.lower():
name = re.search(r"show me a ([\S]+)", message.content.lower())
if name == None:
return
else:
name = name.group(1)
if name in subreddits.keys():
print('asking for the following entry:')
print(name)
print(subreddits[name].name)
print(subreddits[name].subName)
postnumber = random.randint(1,subreddits[name].totalimgs)
await message.channel.send(embed = create_embed(subreddits[name].posts[postnumber], subreddits[name].authors[postnumber], subreddits[name].posturls[postnumber]))
#if "refresh the kumikos" in message.content.lower():
# refresh_all_posts()
client.run(TOKEN)