ignore deleted questions from the summarizer

This commit is contained in:
Bhupesh-V 2024-01-21 19:28:58 +05:30
parent ee24bdcbf6
commit 9f0bf8bfc5
4 changed files with 33 additions and 26 deletions

1
ama-summarizer/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
questions.md

View File

@ -1,34 +1,36 @@
import praw import praw
import os import os
from dotenv import dotenv_values
def get_reddit_instance(): def get_reddit_instance():
# Reddit API credentials # Reddit API credentials
user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 14.2; rv:109.0) Gecko/20100101 Firefox/121.0' 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_id = os.environ["REDDIT_CLIENT_ID"]
client_secret = os.environ["REDDIT_CLIENT_SECRET"] client_secret = os.environ["REDDIT_CLIENT_SECRET"]
reddit_pass = os.environ["REDDIT_PASSWORD"] reddit_pass = os.environ["REDDIT_PASSWORD"]
username = os.environ["REDDIT_USERNAME"] username = os.environ["REDDIT_USERNAME"]
# Create a Reddit instance # Create a Reddit instance
reddit = praw.Reddit(client_id=client_id, reddit = praw.Reddit(
client_id=client_id,
client_secret=client_secret, client_secret=client_secret,
password=reddit_pass, password=reddit_pass,
user_agent=user_agent, user_agent=user_agent,
username=username) username=username,
)
return reddit return reddit
def get_post_url(): def get_post_url():
post_url = input("Enter the AMA post URL: ") # reddit.com URLs preferred post_url = input("Enter the AMA post URL: ") # reddit.com URLs preferred
return post_url return post_url
def get_guest_username():
def get_guest_username():
guest_username = input("Enter the AMA guest username: ") guest_username = input("Enter the AMA guest username: ")
return guest_username return guest_username
def main(): def main():
reddit = get_reddit_instance() reddit = get_reddit_instance()
@ -38,23 +40,26 @@ def main():
submission = reddit.submission(url=post_url) submission = reddit.submission(url=post_url)
submission.comments.replace_more(limit=None) submission.comments.replace_more(limit=None)
markdown_file = '' markdown_file = ""
question_number = 1 question_number = 1
for comment in submission.comments.list(): for comment in submission.comments.list():
if comment.author and comment.author.name.lower() == guest_username.lower(): if comment.author and comment.author.name.lower() == guest_username.lower():
question_text = comment.parent().body.replace('\n', ' ') # TODO truncate long questions with ellipsis
question_link = 'https://reddit.com' + comment.parent().permalink question_text = comment.parent().body.replace("\n", " ")
markdown_file += f'{question_number}. [{question_text}]({question_link})\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"
)
question_number += 1 question_number += 1
# UTF-8 encoding with open("questions.md", "w", encoding="utf-8") as file:
with open('questions.md', 'w', encoding='utf-8') as file:
file.write(markdown_file) file.write(markdown_file)
print('Markdown file questions.md generated successfully.') print(f"{question_number} questions generated successfully.")
if __name__ == "__main__": if __name__ == "__main__":
main() main()

View File

@ -1,5 +1,5 @@
The Python script to help during AMAs. It generates a markdown file of questions and links of the questions the AMA guest has answered. # ama-summarizer
This script is designed to generate a Markdown file containing questions and links from a Reddit post's comments. It specifically focuses on questions or comments answered by a specific user. - The Python script to help during [AMAs](https://developersindia.in/ama-archive/). It generates a markdown file of questions and links to the questions the AMA guest has answered.
- This script is designed to generate a Markdown file containing questions and links from a Reddit post's comments. It specifically focuses on questions or comments answered by a specific user.
The resulting Markdown file will contain a list of questions or comments that the specified guest has answered, with each question numbered and linked to the corresponding Reddit comment. - The resulting Markdown file will contain a list of questions or comments that the specified guest has answered, with each question numbered and linked to the corresponding Reddit comment.

View File

@ -0,0 +1 @@
praw