''' Run 'python3 main.py' in terminal Follow local URL ''' import praw import pandas as pd from praw.models import MoreComments from transformers import pipeline #from transformers import DistilBertTokenizerFast import gradio as gr import numpy as np reddit= praw.Reddit(client_id="Q1w42RHhLq2fgwljAk_k-Q", # your client id client_secret="enUJfFthiZRynGfPQtoK1nCxRer2Dw", # your client secret usernme = "xl395", #profile username password = "12xiao34quanAria!", #profile password user_agent="706_post") # your user agent classifier = pipeline("sentiment-analysis", model="michellejieli/NSFW_text_classifier") #input_url = "https://www.reddit.com/r/europe/comments/r0hthg/sweden_is_taking_the_lead_to_persuade_the_rest_of/" def extract_comments(input_url): submission = reddit.submission(url=input_url) #posts_dict = {"Post text":[],} posts_dict = {"Post text":[], "class": []} for top_level_comment in submission.comments: if isinstance(top_level_comment, MoreComments): continue posts_dict["Post text"].append(top_level_comment.body) posts_dict["class"].append(classifier(top_level_comment.body)[0]['label']) df = pd.DataFrame(posts_dict) percent_exp = np.count_nonzero(np.array(df["class"]) == 'NSFW') / df.shape[0] output_msg = "Reddit page is contains no explicit content. Page is safe for users under 18." if percent_exp > 0: output_msg = f"Reddit page contains some explicit content. Users under the age of 18 should proceed with caution. \n{percent_exp * 100:.0f}% explicit." if percent_exp > 0.5: output_msg = f"Reddit page contains major explicit content. Users be wary. \n{percent_exp * 100:.0f}% explicit." return output_msg # use gradio to create a web interface take a wikipedia page and summarize it iface = gr.Interface( fn=extract_comments, inputs=gr.Textbox( lines=2, placeholder="Enter Reddit page link", ), outputs="text", ) if __name__ == "__main__": iface.launch()