pokemans/server/reddit_monitor.py
2024-03-03 19:59:35 -05:00

27 lines
1.0 KiB
Python

import praw
from models import Submission, session_scope
from datetime import datetime, timedelta
class RedditMonitor:
def __init__(self, client_id, client_secret, user_agent, username, password, subreddit_name):
self.reddit = praw.Reddit(
client_id=client_id,
client_secret=client_secret,
user_agent=user_agent,
username=username,
password=password
)
self.subreddit = self.reddit.subreddit(subreddit_name)
def stream_submissions(self):
for submission in self.subreddit.stream.submissions():
yield submission
def update_submissions(self):
with session_scope() as session:
one_week_ago = datetime.utcnow() - timedelta(weeks=1)
submissions_to_update = session.query(Submission).filter(Submission.created_utc >= one_week_ago.timestamp()).all()
for db_submission in submissions_to_update:
praw_submission = self.reddit.submission(id=db_submission.id)
yield praw_submission