File size: 1,212 Bytes
e03530d
 
071cb1b
 
e03530d
86f79dd
 
dc2ae70
86f79dd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
071cb1b
 
360bf8a
 
 
 
071cb1b
360bf8a
 
 
86f79dd
 
 
071cb1b
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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")