Anne314159's picture
Update app.py
4e47031 verified
raw
history blame
3.34 kB
import streamlit as st
from gnews import GNews
def fetch_news(topic):
google_news = GNews(language='en', country='US') # You can customize this
news_list = google_news.get_news(topic)
articles = []
for news in news_list[:5]: # Get top 5 news articles
articles.append({
'title': news['title'],
'published_date': news['published date'],
'description': news['description'],
'url': news['url'],
'publisher': news['publisher']
})
return articles
from gnews import GNews
def page_trending_niche():
st.title("What is trending in my niche?")
niche = st.text_input('Enter your niche', 'Technology')
if niche:
news_items = fetch_news(niche)
article_titles = [item['title'] for item in news_items]
selected_article = st.selectbox("Select an article to generate a social media post about:", article_titles)
selected_article_url = next((item['url'] for item in news_items if item['title'] == selected_article), None)
# Save the selected article's URL in the session state to use in another page
st.session_state['selected_article_url'] = selected_article_url
for item in news_items:
st.write(f"**Title:** {item['title']}")
st.write(f"**Published Date:** {item['published_date']}")
st.write(f"**Description:** {item['description']}")
st.write(f"**Publisher:** {item['publisher']}")
st.write(f"**URL:** [Read more]({item['url']})")
st.write("---")
from transformers import pipeline, set_seed
generator = pipeline('text-generation', model='gpt2')
set_seed(42)
def page_social_media_generator():
st.title("Social Media Content Generator")
# Using st.columns to create a two-column layout
col1, col2 = st.columns([3, 1])
with col1:
st.title("German Medical Content Manager")
with col2:
st.image('Content_Creation_Pic.png', use_column_width=True)
# Retrieve the URL saved in the session state on the trending niche page
article_url = st.session_state.get('selected_article_url', '')
if article_url:
st.write(f"Selected Article URL: {article_url}")
input_text = st.text_area("Enter additional context or leave empty to use only the article URL:", value=article_url)
if st.button('Generate Social Media Post'):
with st.spinner('Generating...'):
post_content = generator(input_text, max_length=100, num_return_sequences=1)[0]['generated_text']
st.success('Generated Content:')
st.write(post_content)
else:
st.write("Please select an article from the 'What is trending in my niche?' page.")
def page_test():
st.title('Test Page')
st.write('This is a test page with a test name.')
# Setup the sidebar with page selection
st.sidebar.title("Anne's Current Projects :star2:")
page = st.sidebar.selectbox(
'What project do you like to see first?',
('trending_niche', 'Social Media Content Generator', 'Test Page'))
# Display the selected page
if page == 'trending_niche':
page_trending_niche()
elif page == 'Social Media Content Generator':
page_social_media_generator()
elif page == 'Test Page':
page_test()