twitter_viz / app.py
johnowhitaker's picture
Update app.py
dc2ae70
raw
history blame
1.21 kB
import streamlit as st
import pandas as pd
import twint
import nest_asyncio
# Function to make this easy for ourselves:
def get_tweets(username, limit=500, save_name=None):
#nest_asyncio.apply() # Helps avoid RuntimeError: This event loop is already running
# Setup config
c = twint.Config() # Create a config object to store our settings
c.Limit = limit # Max number of tweets to fetch (increments of 20)
c.Username = username # User of interest
c.Pandas = True # Store tweets in a dataframe
c.Hide_output = True # Avoid printing out tweets
# Run the seearch
twint.run.Search(c)
# Get the results and optionally save to a file as well
df = twint.storage.panda.Tweets_df
if save_name != None:
df.to_csv(save_name)
return df
st.title('Test')
with st.form("my_form"):
st.write("Inside the form")
user = st.text_input("Twitter Username")
n_tweets = st.slider('How Many Tweets', 20, 2000, 20)
# Every form must have a submit button.
submitted = st.form_submit_button("Submit")
if submitted:
st.write("Fetching user", user, "n_tweets", n_tweets)
tweets = get_tweets(user, limit=n_tweets)
st.write(st.dataframe(tweets.head()))
st.write("Outside the form")