Spaces:
Sleeping
Sleeping
Update pages/Analysis.py
Browse files- 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 #
|
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 |
-
#
|
|
|
|
|
|
|
215 |
if fraud_detected:
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.")
|