samiee2213 commited on
Commit
19c3d8d
Β·
verified Β·
1 Parent(s): 5d3e981

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +64 -10
app.py CHANGED
@@ -24,6 +24,9 @@ warnings.filterwarnings("ignore", category=DeprecationWarning)
24
 
25
  load_dotenv()
26
 
 
 
 
27
  # Auth0 credentials
28
  clientId = os.getenv('client_id')
29
  domain = os.getenv('auth_domain')
@@ -51,6 +54,55 @@ if 'banned_users' not in st.session_state:
51
  if 'flowmessages' not in st.session_state:
52
  st.session_state.flowmessages = []
53
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
54
 
55
  # Function to handle registration
56
  def registration():
@@ -102,9 +154,6 @@ password = st.text_input("Enter your password...",type='password')
102
 
103
 
104
 
105
-
106
-
107
-
108
  # Function to get a response from the chat model
109
  def get_chatmodel_response(user_message):
110
  # Ensure user_message is a string
@@ -265,8 +314,9 @@ if user_info:
265
  else:
266
  st.write("Please log in to continue.")
267
 
268
- if st.button("Login / SignUp"):
269
- selected = option_menu(
 
270
  "Main Menu",
271
  ["Home","Registration","Chat"],
272
 
@@ -285,14 +335,16 @@ if st.button("Login / SignUp"):
285
  },
286
  "nav-link-selected": {"background-color": "#50B498"},
287
  }
 
288
  )
289
- if selected == "Registration":
 
290
  registration()
291
 
292
- elif selected == "Home":
293
  display_home_info()
294
 
295
- elif selected == "Chat":
296
 
297
  def traffitrack_chatbot():
298
  st.title('TraffiTrack πŸ’¬')
@@ -300,11 +352,13 @@ if st.button("Login / SignUp"):
300
  # Dropdown to select platform
301
  platform = st.selectbox(
302
  "Choose a platform",
303
- ["Live πŸ’β€β™€οΈ", "WhatsApp πŸ“±", "Instagram πŸ“Έ", "Telegram βœ‰οΈ"],
304
  index=0
305
  )
 
 
306
 
307
- if platform == "Telegram βœ‰οΈ":
308
  # Hardcoded CSV content
309
  csv_content = """sender_name,sender_id,phone_number,message_text
310
  Shruti,1580593004,917304814120,But I would prefer blowing a bag of Charlie
 
24
 
25
  load_dotenv()
26
 
27
+ if "selected_menu" not in st.session_state:
28
+ st.session_state.selected_menu = "Home"
29
+
30
  # Auth0 credentials
31
  clientId = os.getenv('client_id')
32
  domain = os.getenv('auth_domain')
 
54
  if 'flowmessages' not in st.session_state:
55
  st.session_state.flowmessages = []
56
 
57
+ def display_twitter_analysis():
58
+ st.title('Twitter Analysis 🐦')
59
+ username = st.text_input("Enter Twitter username")
60
+ num_tweets = st.number_input("Number of tweets to analyze", min_value=1, max_value=100, value=10)
61
+
62
+ if st.button("Fetch Tweets"):
63
+ if username:
64
+ try:
65
+ scraper = Nitter(0)
66
+ tweets = scraper.get_tweets(username, mode='user', number=num_tweets)
67
+ tweet_texts = [tweet['text'] for tweet in tweets['tweets']]
68
+
69
+ st.subheader("Tweets")
70
+ drug_count = 0
71
+ drug_tweets = []
72
+ user_data = {"username": username, "tweet_count": 0, "drug_words": []}
73
+
74
+ for i, tweet_text in enumerate(tweet_texts):
75
+ st.write(f"{i+1}. {tweet_text}")
76
+ response_content = get_chatmodel_response(tweet_text)
77
+ if "drug word detected" in response_content and "none" not in response_content:
78
+ drug_word = response_content.split("drug word detected: ")[1].strip()
79
+ drug_count += 1
80
+ drug_tweets.append({"tweet": tweet_text, "drug_word": drug_word})
81
+ user_data["tweet_count"] += 1
82
+ user_data["drug_words"].append(drug_word)
83
+
84
+ st.subheader("Analysis Results πŸ“Š")
85
+ st.write(f"Total drug-related tweets detected: {drug_count}")
86
+
87
+ if drug_count > 0:
88
+ st.markdown("### Drug Words Distribution 🍰")
89
+ fig = px.pie(
90
+ names=user_data["drug_words"],
91
+ title="Distribution of Detected Drugs in Tweets"
92
+ )
93
+ st.plotly_chart(fig)
94
+
95
+ st.markdown("### Tweets with Drug-related Content πŸ“‹")
96
+ drug_df = pd.DataFrame(drug_tweets)
97
+ st.dataframe(drug_df)
98
+
99
+ else:
100
+ st.write("No drug-related content detected in tweets.")
101
+
102
+ except Exception as e:
103
+ st.error(f"Failed to fetch tweets: {e}")
104
+ else:
105
+ st.warning("Please enter a Twitter username.")
106
 
107
  # Function to handle registration
108
  def registration():
 
154
 
155
 
156
 
 
 
 
157
  # Function to get a response from the chat model
158
  def get_chatmodel_response(user_message):
159
  # Ensure user_message is a string
 
314
  else:
315
  st.write("Please log in to continue.")
316
 
317
+ #if st.button("Login / SignUp"):
318
+ st.session_state.selected_menu = "Registration"
319
+ st.session_state.selected_menu = option_menu(
320
  "Main Menu",
321
  ["Home","Registration","Chat"],
322
 
 
335
  },
336
  "nav-link-selected": {"background-color": "#50B498"},
337
  }
338
+
339
  )
340
+ #st.session_state.selected_menu = selected
341
+ if st.session_state.selected_menu == "Registration":
342
  registration()
343
 
344
+ elif st.session_state.selected_menu == "Home":
345
  display_home_info()
346
 
347
+ elif st.session_state.selected_menu == "Chat":
348
 
349
  def traffitrack_chatbot():
350
  st.title('TraffiTrack πŸ’¬')
 
352
  # Dropdown to select platform
353
  platform = st.selectbox(
354
  "Choose a platform",
355
+ ["Live πŸ’β€β™€οΈ", "Twitter πŸ“±", "Instagram πŸ“Έ", "Telegram βœ‰οΈ"],
356
  index=0
357
  )
358
+ if platform == "Twitter πŸ“±":
359
+ display_twitter_analysis()
360
 
361
+ elif platform == "Telegram βœ‰οΈ":
362
  # Hardcoded CSV content
363
  csv_content = """sender_name,sender_id,phone_number,message_text
364
  Shruti,1580593004,917304814120,But I would prefer blowing a bag of Charlie