Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import praw
- import config
- import os.path
- import json
- import time
- def authentication():
- print ("Authenticating...")
- reddit = praw.Reddit(username = config.username,
- password = config.password,
- client_id = config.client_id,
- client_secret = config.client_secret,
- user_agent = "WFOP_Flair_Timer_MinecraftHelp")
- print ("Authenticated as {}.".format(reddit.user.me()))
- return reddit
- def main(reddit, posts: dict):
- while True:
- for submission in reddit.subreddit(config.subreddit).new(limit=config.searchlimit):
- if not submission.saved:
- if submission.id not in posts.keys() and submission.link_flair_text == config.flair_text:
- posts[submission.id] = time.time()
- print(f"Post {submission} has been flaired {config.flair_text}")
- if submission.id in posts.keys() and submission.link_flair_text != config.flair_text:
- posts.pop(submission.id)
- print(f"Post {submission} has been unflaired {config.flair_text}")
- for submission in posts:
- if time.time() > posts[submission] + (config.hours * 60 * 60):
- posts.pop(submission)
- reddit.submission(submission).save()
- reddit.subreddit(config.subreddit).modmail.create(subject=f"{config.messagetitle}", body=f"It has been {config.hours/24} day(s) since this was flaired [{config.flair_text}](https://old.reddit.com{reddit.submission(submission).permalink})", recipient="mod")
- print(f"Post {submission} has been flaired {config.flair_text} for {config.hours/24} days, sent modmail")
- break
- save_posts(posts)
- time.sleep(config.interval)
- def load_posts():
- if not os.path.exists("posts.json"):
- with open("posts.json", "w+") as file:
- json.dump({}, file)
- with open("posts.json", "r+") as file:
- data = json.load(file)
- return data
- def save_posts(data):
- with open('posts.json', 'w+') as file:
- json.dump(data, file)
- while True:
- try:
- posts = load_posts()
- main(reddit = authentication(), posts = posts)
- except Exception as e:
- print(e)
Advertisement
Add Comment
Please, Sign In to add comment