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()