Initial commit
This commit is contained in:
1
reddit_saved_pptx/__init__.py
Normal file
1
reddit_saved_pptx/__init__.py
Normal file
@ -0,0 +1 @@
|
||||
__version__ = "0.1.0"
|
48
reddit_saved_pptx/__main__.py
Normal file
48
reddit_saved_pptx/__main__.py
Normal file
@ -0,0 +1,48 @@
|
||||
import os
|
||||
import pathlib
|
||||
import random
|
||||
import re
|
||||
|
||||
import praw
|
||||
from dotenv import load_dotenv
|
||||
from jinja2 import Environment
|
||||
from jinja2 import FileSystemLoader
|
||||
from praw.models import Submission
|
||||
from praw.models import Redditor
|
||||
|
||||
load_dotenv()
|
||||
|
||||
IMAGE_ONLY_REGEX = re.compile(r"(http(s?):)([/|.|\w|\s|-])*\.(?:jpg|png)")
|
||||
|
||||
|
||||
def main() -> int:
|
||||
reddit = praw.Reddit(
|
||||
client_id=os.getenv("REDDIT_CLIENT_ID"),
|
||||
client_secret=os.getenv("REDDIT_CLIENT_SECRET"),
|
||||
user_agent="reddit-saved-pptx",
|
||||
username=os.getenv("REDDIT_USERNAME"),
|
||||
password=os.getenv("REDDIT_PASSWORD"),
|
||||
)
|
||||
|
||||
me: Redditor = reddit.user.me()
|
||||
|
||||
nsfw_posts: list[Submission] = []
|
||||
for post in me.saved(limit=None):
|
||||
if not isinstance(post, Submission):
|
||||
continue
|
||||
|
||||
post: Submission
|
||||
if IMAGE_ONLY_REGEX.match(post.url):
|
||||
nsfw_posts.append(post)
|
||||
|
||||
random.shuffle(nsfw_posts)
|
||||
|
||||
environment = Environment(loader=FileSystemLoader("templates/"))
|
||||
template = environment.get_template("base.jinja2")
|
||||
result = template.render(nsfw_posts=nsfw_posts)
|
||||
pathlib.Path("slide-deck.md").write_text(result, encoding="utf8")
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
raise SystemExit(main())
|
Reference in New Issue
Block a user