Skip to content
Extraits de code Groupes Projets
Sélectionner une révision Git
  • 977e51932f84d4ed18a0a351cd575a78f3c2df40
  • master par défaut protégée
  • devel
  • v5.2.6
  • v5.2.5
5 résultats

Action.pm

Blame
    • ElTata's avatar
      977e5193
      classes wip: · 977e5193
      ElTata a rédigé
      - bugfix with rps reference on reloaddb : created a 2nd object,
        corrected
      - loaddb() takes a reference to rps (as writedb) and write inside
      977e5193
      Historique
      classes wip:
      ElTata a rédigé
      - bugfix with rps reference on reloaddb : created a 2nd object,
        corrected
      - loaddb() takes a reference to rps (as writedb) and write inside
    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)