deviras/ama-summarizer/main.py
2024-03-05 13:35:01 +05:30

66 lines
1.9 KiB
Python

import praw
import os
def get_reddit_instance():
# Reddit API credentials
user_agent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 14.2; rv:109.0) Gecko/20100101 Firefox/121.0"
client_id = os.environ["REDDIT_CLIENT_ID"]
client_secret = os.environ["REDDIT_CLIENT_SECRET"]
reddit_pass = os.environ["REDDIT_PASSWORD"]
username = os.environ["REDDIT_USERNAME"]
# Create a Reddit instance
reddit = praw.Reddit(
client_id=client_id,
client_secret=client_secret,
password=reddit_pass,
user_agent=user_agent,
username=username,
)
return reddit
def get_post_url():
post_url = input("Enter the AMA post URL: ") # reddit.com URLs preferred
return post_url
def get_guest_username():
guest_username = input("Enter the AMA guest username: ")
return guest_username
def main():
reddit = get_reddit_instance()
post_url = get_post_url()
guest_username = get_guest_username()
submission = reddit.submission(url=post_url)
submission.comments.replace_more(limit=None)
markdown_file = ""
question_number = 1
for comment in submission.comments.list():
if comment.author and comment.author.name.lower() == guest_username.lower():
# TODO truncate long questions with ellipsis
question_text = comment.parent().body.replace("\n", " ")
# avoid deleted questions/comments
if question_text != "[deleted]":
question_link = "https://reddit.com" + comment.parent().permalink
markdown_file += (
f"{question_number}. [{question_text}]({question_link})\n\n"
) # Add an extra newline after each question
question_number += 1
with open("questions.md", "w", encoding="utf-8") as file:
file.write(markdown_file)
print(f"{question_number - 1} questions generated successfully.")
if __name__ == "__main__":
main()