clementBE commited on
Commit
5e80d8d
·
verified ·
1 Parent(s): c442b00

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +7 -13
app.py CHANGED
@@ -5,13 +5,6 @@ import networkx as nx
5
  from pyvis.network import Network
6
  import tempfile
7
  import os
8
- import jinja2
9
-
10
- # Fix pyvis missing template issue
11
- if Network.template is None:
12
- template_loader = jinja2.PackageLoader("pyvis", "templates")
13
- Network.template = jinja2.Environment(loader=template_loader).get_template("template.html")
14
-
15
 
16
  def process_file(file):
17
  file_ext = os.path.splitext(file.name)[1].lower()
@@ -28,7 +21,7 @@ def process_file(file):
28
  return f"Missing columns: {', '.join(missing)}", None, None, None, None
29
 
30
  df['date'] = pd.to_datetime(df['timestamp'], unit='s', errors='coerce')
31
- df = df.dropna(subset=['date']) # drop rows with invalid timestamps
32
  df['date_only'] = df['date'].dt.date
33
 
34
  # Messages per Day
@@ -54,7 +47,6 @@ def process_file(file):
54
  os.remove(file.name)
55
  return "Success", fig1, fig2, fig3, build_network_html(df)
56
 
57
-
58
  def build_network_html(df):
59
  G = nx.DiGraph()
60
 
@@ -85,7 +77,6 @@ def build_network_html(df):
85
 
86
  return html_content
87
 
88
-
89
  def search_keyword(keyword):
90
  if not os.path.exists("latest_data.csv"):
91
  return pd.DataFrame(columns=['date', 'author', 'like_count', 'text'])
@@ -96,11 +87,14 @@ def search_keyword(keyword):
96
  return pd.DataFrame(columns=['date', 'author', 'like_count', 'text'])
97
 
98
  mask = df['text'].astype(str).str.contains(keyword, case=False, na=False)
99
- result = df.loc[mask, ['timestamp', 'author', 'text', 'like_count']] if 'like_count' in df.columns else df.loc[mask, ['timestamp', 'author', 'text']]
 
 
 
 
100
  result['date'] = pd.to_datetime(result['timestamp'], unit='s', errors='coerce')
101
  result = result.dropna(subset=['date'])
102
- return result[['date', 'author', 'like_count', 'text']] if 'like_count' in result.columns else result[['date', 'author', 'text']]
103
-
104
 
105
  # Gradio interface
106
  with gr.Blocks() as demo:
 
5
  from pyvis.network import Network
6
  import tempfile
7
  import os
 
 
 
 
 
 
 
8
 
9
  def process_file(file):
10
  file_ext = os.path.splitext(file.name)[1].lower()
 
21
  return f"Missing columns: {', '.join(missing)}", None, None, None, None
22
 
23
  df['date'] = pd.to_datetime(df['timestamp'], unit='s', errors='coerce')
24
+ df = df.dropna(subset=['date'])
25
  df['date_only'] = df['date'].dt.date
26
 
27
  # Messages per Day
 
47
  os.remove(file.name)
48
  return "Success", fig1, fig2, fig3, build_network_html(df)
49
 
 
50
  def build_network_html(df):
51
  G = nx.DiGraph()
52
 
 
77
 
78
  return html_content
79
 
 
80
  def search_keyword(keyword):
81
  if not os.path.exists("latest_data.csv"):
82
  return pd.DataFrame(columns=['date', 'author', 'like_count', 'text'])
 
87
  return pd.DataFrame(columns=['date', 'author', 'like_count', 'text'])
88
 
89
  mask = df['text'].astype(str).str.contains(keyword, case=False, na=False)
90
+ result = df.loc[mask, ['timestamp', 'author', 'text']]
91
+ if 'like_count' in df.columns:
92
+ result['like_count'] = df.loc[mask, 'like_count']
93
+ else:
94
+ result['like_count'] = None
95
  result['date'] = pd.to_datetime(result['timestamp'], unit='s', errors='coerce')
96
  result = result.dropna(subset=['date'])
97
+ return result[['date', 'author', 'like_count', 'text']].head(100)
 
98
 
99
  # Gradio interface
100
  with gr.Blocks() as demo: