sbgonenc96's picture
init commit
558983d verified
raw
history blame
No virus
1.86 kB
import gradio as gr
import stylecloud
from PIL import Image
import os
from utils import data_to_text
from reddit import RedditContent
def create_stylecloud(subreddit, icon):
## Get content
rdt_content = RedditContent(
thread_limit=10,
include_nsfw=False,
max_comment_length=2000,
min_comment_length=50,
min_comment_score=10,
)
rdt_content.process(search_query=subreddit, exact_search=True)
# Load the content
text = data_to_text(rdt_content.contents)
# Initiate params
output_file = 'stylecloud.png'
icon = icon_dict[icon]
# Generate the word cloud
stylecloud.gen_stylecloud(
text=text,
icon_name=icon,
size=500,
output_name=output_file,
)
# Load the generated image
image = Image.open(output_file)
image = image.resize((300, 300)) # Resize the image to 300x300 pixels
# Return the image
return image
icon_dict = {
"Car" : "fas fa-car",
"Star and Crescent" : "fas fa-star-and-crescent",
"Trophy" : "fas fa-trophy",
"Heart" : "fas fa-heart",
"Flag" : "fas fa-flag"
}
with gr.Blocks() as demo:
gr.Markdown('Word Cloud for Reddit Comments')
with gr.Row():
subreddits = gr.Textbox(lines=1,
label="Write subreddit or search query here",
placeholder="Enter the subreddits you want to get content from")
with gr.Row():
icon = gr.Dropdown(choices=list(icon_dict.keys()),
label='Select Icon', value="Heart")
with gr.Row():
create_button = gr.Button('Submit')
output_image = gr.Image(label='Word Cloud')
create_button.click(
create_stylecloud,
inputs=[subreddits, icon],
outputs=[output_image]
)
demo.launch(share=True)