rafaldembski commited on
Commit
2212fb0
verified
1 Parent(s): a72f8b6

Update pages/Analysis.py

Browse files
Files changed (1) hide show
  1. pages/Analysis.py +32 -10
pages/Analysis.py CHANGED
@@ -1,3 +1,5 @@
 
 
1
  import streamlit as st
2
  from utils.functions import (
3
  get_phone_info,
@@ -7,11 +9,13 @@ from utils.functions import (
7
  add_to_history,
8
  is_fake_number,
9
  add_fake_number, # Importujemy funkcj臋 dodaj膮c膮 numer do bazy oszustw
10
- init_fake_numbers_file # Inicjalizujemy plik fake_numbers.json
 
11
  )
12
  import os
13
- import re # Dodany import do obs艂ugi wyra偶e艅 regularnych
14
  import json
 
15
 
16
  def show_analysis(language):
17
  # Definiowanie t艂umacze艅 dla tej podstrony
@@ -87,6 +91,9 @@ def show_analysis(language):
87
  # Inicjalizacja pliku fake_numbers.json (je艣li jeszcze nie istnieje)
88
  init_fake_numbers_file()
89
 
 
 
 
90
  with st.form("sms_form"):
91
  message = st.text_area(
92
  label=page_translations[language]['content'], # Non-empty label for accessibility
@@ -146,8 +153,10 @@ def show_analysis(language):
146
  # Sprawdzenie, czy numer jest w bazie fa艂szywych numer贸w
147
  if is_fake_number(phone_number):
148
  st.warning(page_translations[language]['result_positive'])
 
149
  else:
150
  st.info(page_translations[language]['result_negative'])
 
151
 
152
  # Przeprowad藕 proste sprawdzenia heurystyczne
153
  warnings = simple_checks(message, language) # Przekazujemy argument language
@@ -203,7 +212,8 @@ def show_analysis(language):
203
  match = re.search(r'(\d+)/10', risk_text)
204
  fraud_detected = int(match.group(1)) >= 7 if match else False
205
  update_stats(fraud_detected=fraud_detected)
206
- except:
 
207
  fraud_detected = False
208
 
209
  # Dodanie analizy do historii
@@ -211,11 +221,23 @@ def show_analysis(language):
211
 
212
  st.info("馃搶 Pami臋taj: zachowaj ostro偶no艣膰 przy wiadomo艣ciach od nieznanych nadawc贸w.")
213
 
214
- # Zg艂oszenie numeru jako oszustwo
 
 
 
215
  if fraud_detected:
216
- if st.button(page_translations[language]['report_button']):
217
- success = add_fake_number(phone_number)
218
- if success:
219
- st.success("Numer zosta艂 zg艂oszony jako oszustwo.")
220
- else:
221
- st.info("Numer zosta艂 ju偶 zg艂oszony jako oszustwo.")
 
 
 
 
 
 
 
 
 
 
1
+ # pages/Analysis.py
2
+
3
  import streamlit as st
4
  from utils.functions import (
5
  get_phone_info,
 
9
  add_to_history,
10
  is_fake_number,
11
  add_fake_number, # Importujemy funkcj臋 dodaj膮c膮 numer do bazy oszustw
12
+ init_fake_numbers_file, # Inicjalizujemy plik fake_numbers.json
13
+ init_history_file
14
  )
15
  import os
16
+ import re # Import do obs艂ugi wyra偶e艅 regularnych
17
  import json
18
+ from phonenumbers import parse, is_valid_number, NumberParseException
19
 
20
  def show_analysis(language):
21
  # Definiowanie t艂umacze艅 dla tej podstrony
 
91
  # Inicjalizacja pliku fake_numbers.json (je艣li jeszcze nie istnieje)
92
  init_fake_numbers_file()
93
 
94
+ # Inicjalizacja pliku historii analiz (je艣li jeszcze nie istnieje)
95
+ init_history_file()
96
+
97
  with st.form("sms_form"):
98
  message = st.text_area(
99
  label=page_translations[language]['content'], # Non-empty label for accessibility
 
153
  # Sprawdzenie, czy numer jest w bazie fa艂szywych numer贸w
154
  if is_fake_number(phone_number):
155
  st.warning(page_translations[language]['result_positive'])
156
+ fraud_detected = True
157
  else:
158
  st.info(page_translations[language]['result_negative'])
159
+ fraud_detected = False
160
 
161
  # Przeprowad藕 proste sprawdzenia heurystyczne
162
  warnings = simple_checks(message, language) # Przekazujemy argument language
 
212
  match = re.search(r'(\d+)/10', risk_text)
213
  fraud_detected = int(match.group(1)) >= 7 if match else False
214
  update_stats(fraud_detected=fraud_detected)
215
+ except Exception as e:
216
+ logging.error(f"Nie uda艂o si臋 zaktualizowa膰 statystyk: {e}")
217
  fraud_detected = False
218
 
219
  # Dodanie analizy do historii
 
221
 
222
  st.info("馃搶 Pami臋taj: zachowaj ostro偶no艣膰 przy wiadomo艣ciach od nieznanych nadawc贸w.")
223
 
224
+ # Inicjalizacja st.session_state dla raportowania numeru
225
+ if 'report_clicked' not in st.session_state:
226
+ st.session_state['report_clicked'] = False
227
+
228
  if fraud_detected:
229
+ # U偶ycie klucza unikalnego dla danego numeru, aby unikn膮膰 resetowania przycisku
230
+ report_key = f"report_button_{phone_number}"
231
+ if st.button(page_translations[language]['report_button'], key=report_key):
232
+ try:
233
+ parsed_number = parse(phone_number, None)
234
+ if is_valid_number(parsed_number):
235
+ success = add_fake_number(phone_number)
236
+ if success:
237
+ st.success("Numer zosta艂 zg艂oszony jako oszustwo.")
238
+ else:
239
+ st.info("Numer zosta艂 ju偶 zg艂oszony jako oszustwo.")
240
+ else:
241
+ st.error("Podany numer telefonu jest nieprawid艂owy.")
242
+ except NumberParseException:
243
+ st.error("Nie uda艂o si臋 przetworzy膰 numeru telefonu. Upewnij si臋, 偶e jest on w poprawnym formacie.")