rafaldembski commited on
Commit
10fb061
·
verified ·
1 Parent(s): 7360f5c

Update pages/Analysis.py

Browse files
Files changed (1) hide show
  1. pages/Analysis.py +59 -43
pages/Analysis.py CHANGED
@@ -2,12 +2,13 @@
2
 
3
  import streamlit as st
4
  from utils.functions import (
5
- get_phone_info,
6
- simple_checks,
7
- analyze_message,
8
- update_stats,
9
- add_to_history,
10
- is_fake_number
 
11
  )
12
  import os
13
  import re
@@ -35,7 +36,17 @@ def show_analysis(language):
35
  'confidence_level_help': "1: Bardzo mało pewny, 5: Bardzo pewny",
36
  'unexpected_label': "Czy otrzymanie tej wiadomości było dla Ciebie niespodziewane?",
37
  'unexpected_options': ('Tak', 'Nie'),
38
- 'additional_notes_label': "Dodatkowe uwagi lub informacje (opcjonalnie)"
 
 
 
 
 
 
 
 
 
 
39
  },
40
  'German': {
41
  'header': "📊 SMS-Analyse",
@@ -56,7 +67,17 @@ def show_analysis(language):
56
  'confidence_level_help': "1: Sehr unsicher, 5: Sehr sicher",
57
  'unexpected_label': "War der Empfang dieser Nachricht für Sie unerwartet?",
58
  'unexpected_options': ('Ja', 'Nein'),
59
- 'additional_notes_label': "Zusätzliche Bemerkungen oder Informationen (optional)"
 
 
 
 
 
 
 
 
 
 
60
  },
61
  'English': {
62
  'header': "📊 SMS Analysis",
@@ -77,7 +98,17 @@ def show_analysis(language):
77
  'confidence_level_help': "1: Very unsure, 5: Very confident",
78
  'unexpected_label': "Was receiving this message unexpected for you?",
79
  'unexpected_options': ('Yes', 'No'),
80
- 'additional_notes_label': "Additional notes or information (optional)"
 
 
 
 
 
 
 
 
 
 
81
  }
82
  }
83
 
@@ -88,14 +119,14 @@ def show_analysis(language):
88
 
89
  with st.form("sms_form"):
90
  message = st.text_area(
91
- label=translations['content'], # Non-empty label for accessibility
92
  placeholder=translations['input_placeholder'],
93
  height=150
94
  )
95
  phone_number = st.text_input(
96
  label=translations['phone_input_label'],
97
  value="",
98
- max_chars=20 # Zwiększenie limitu znaków dla numerów międzynarodowych
99
  )
100
 
101
  st.markdown(f"### {translations['additional_info_header']}")
@@ -136,11 +167,11 @@ def show_analysis(language):
136
  # Informacje o numerze telefonu
137
  country, operator = get_phone_info(phone_number)
138
  if country and operator:
139
- st.write("**Phone Number Information:**")
140
- st.write(f"- **Country:** {country}")
141
- st.write(f"- **Operator:** {operator}")
142
  else:
143
- st.write("Unable to retrieve phone number information.")
144
 
145
  # Sprawdzenie, czy numer jest w bazie fałszywych numerów
146
  if is_fake_number(phone_number):
@@ -151,41 +182,26 @@ def show_analysis(language):
151
  fraud_detected = False
152
 
153
  # Przeprowadź proste sprawdzenia heurystyczne
154
- warnings = simple_checks(message, language) # Przekazujemy argument language
155
  if warnings:
156
- if language == 'Polish':
157
- st.warning("Znaleziono następujące potencjalne czerwone flagi:")
158
- elif language == 'German':
159
- st.warning("Folgende potenzielle rote Flaggen wurden gefunden:")
160
- else:
161
- st.warning("The following potential red flags were found:")
162
  for warn in warnings:
163
  st.write(f"- {warn}")
164
 
165
  # Zbierz dodatkowe informacje
166
  additional_info = f"""
167
- **{ 'Jak często otrzymujesz wiadomości od tego numeru?' if language == 'Polish' else
168
- 'Wie oft erhalten Sie Nachrichten von dieser Nummer?' if language == 'German' else
169
- 'How often do you receive messages from this number?' }** {frequency}
170
 
171
- **{ 'Kiedy ostatnio otrzymałeś podobną wiadomość?' if language == 'Polish' else
172
- 'Wann haben Sie zuletzt eine ähnliche Nachricht erhalten?' if language == 'German' else
173
- 'When did you last receive a similar message?' }** {last_received}
174
 
175
- **{ 'Jak bardzo jesteś pewny, że wiadomość jest autentyczna?' if language == 'Polish' else
176
- 'Wie sicher sind Sie, dass die Nachricht authentisch ist?' if language == 'German' else
177
- 'How confident are you that the message is authentic?' }** {confidence_level}/5
178
 
179
- **{ 'Czy otrzymanie tej wiadomości było dla Ciebie niespodziewane?' if language == 'Polish' else
180
- 'War der Empfang dieser Nachricht für Sie unerwartet?' if language == 'German' else
181
- 'Was receiving this message unexpected for you?' }** {unexpected}
182
 
183
- **{ 'Dodatkowe uwagi lub informacje:' if language == 'Polish' else
184
- 'Zusätzliche Bemerkungen oder Informationen:' if language == 'German' else
185
- 'Additional notes or information:' }** {additional_notes}
186
  """
187
 
188
- # Pobierz klucz API z Secret
189
  api_key = os.getenv('SAMBANOVA_API_KEY')
190
  if not api_key:
191
  st.error("API key is missing. Please set the SAMBANOVA_API_KEY environment variable.")
@@ -212,7 +228,7 @@ def show_analysis(language):
212
  # Dodanie analizy do historii
213
  add_to_history(message, phone_number, analysis_text, risk_text, recommendations_text)
214
 
215
- st.info("📌 Remember: Stay cautious with messages from unknown senders.")
216
 
217
  # Zgłoszenie numeru jako oszustwo
218
  if fraud_detected:
@@ -222,11 +238,11 @@ def show_analysis(language):
222
  if is_valid_number(parsed_number):
223
  success = add_fake_number(phone_number)
224
  if success:
225
- st.success("Number has been reported as fraud.")
226
  else:
227
- st.info("Number has already been reported as fraud.")
228
  else:
229
- st.error("The provided phone number is invalid.")
230
  except NumberParseException:
231
- st.error("Failed to parse the phone number. Please ensure it is in the correct format.")
232
 
 
2
 
3
  import streamlit as st
4
  from utils.functions import (
5
+ get_phone_info,
6
+ simple_checks,
7
+ analyze_message,
8
+ update_stats,
9
+ add_to_history,
10
+ is_fake_number,
11
+ add_fake_number # Upewnij się, że ta funkcja jest zaimplementowana
12
  )
13
  import os
14
  import re
 
36
  'confidence_level_help': "1: Bardzo mało pewny, 5: Bardzo pewny",
37
  'unexpected_label': "Czy otrzymanie tej wiadomości było dla Ciebie niespodziewane?",
38
  'unexpected_options': ('Tak', 'Nie'),
39
+ 'additional_notes_label': "Dodatkowe uwagi lub informacje (opcjonalnie)",
40
+ 'phone_info_header': "Informacje o numerze telefonu",
41
+ 'country_label': "Kraj",
42
+ 'operator_label': "Operator",
43
+ 'unable_to_retrieve': "Nie można uzyskać informacji o numerze telefonu.",
44
+ 'red_flags_found': "Znaleziono następujące potencjalne czerwone flagi:",
45
+ 'remember_caution': "📌 Pamiętaj: Bądź ostrożny z wiadomościami od nieznanych nadawców.",
46
+ 'number_reported': "Numer został zgłoszony jako oszustwo.",
47
+ 'number_already_reported': "Numer został już wcześniej zgłoszony jako oszustwo.",
48
+ 'invalid_number': "Podany numer telefonu jest nieprawidłowy.",
49
+ 'failed_to_parse': "Nie udało się przetworzyć numeru telefonu. Upewnij się, że jest w poprawnym formacie."
50
  },
51
  'German': {
52
  'header': "📊 SMS-Analyse",
 
67
  'confidence_level_help': "1: Sehr unsicher, 5: Sehr sicher",
68
  'unexpected_label': "War der Empfang dieser Nachricht für Sie unerwartet?",
69
  'unexpected_options': ('Ja', 'Nein'),
70
+ 'additional_notes_label': "Zusätzliche Bemerkungen oder Informationen (optional)",
71
+ 'phone_info_header': "Informationen zur Telefonnummer",
72
+ 'country_label': "Land",
73
+ 'operator_label': "Anbieter",
74
+ 'unable_to_retrieve': "Informationen zur Telefonnummer können nicht abgerufen werden.",
75
+ 'red_flags_found': "Folgende potenzielle rote Flaggen wurden gefunden:",
76
+ 'remember_caution': "📌 Denken Sie daran: Seien Sie vorsichtig mit Nachrichten von unbekannten Absendern.",
77
+ 'number_reported': "Nummer wurde als Betrug gemeldet.",
78
+ 'number_already_reported': "Nummer wurde bereits als Betrug gemeldet.",
79
+ 'invalid_number': "Die angegebene Telefonnummer ist ungültig.",
80
+ 'failed_to_parse': "Die Telefonnummer konnte nicht verarbeitet werden. Bitte stellen Sie sicher, dass sie im richtigen Format ist."
81
  },
82
  'English': {
83
  'header': "📊 SMS Analysis",
 
98
  'confidence_level_help': "1: Very unsure, 5: Very confident",
99
  'unexpected_label': "Was receiving this message unexpected for you?",
100
  'unexpected_options': ('Yes', 'No'),
101
+ 'additional_notes_label': "Additional notes or information (optional)",
102
+ 'phone_info_header': "Phone Number Information",
103
+ 'country_label': "Country",
104
+ 'operator_label': "Operator",
105
+ 'unable_to_retrieve': "Unable to retrieve phone number information.",
106
+ 'red_flags_found': "The following potential red flags were found:",
107
+ 'remember_caution': "📌 Remember: Stay cautious with messages from unknown senders.",
108
+ 'number_reported': "Number has been reported as fraud.",
109
+ 'number_already_reported': "Number has already been reported as fraud.",
110
+ 'invalid_number': "The provided phone number is invalid.",
111
+ 'failed_to_parse': "Failed to parse the phone number. Please ensure it is in the correct format."
112
  }
113
  }
114
 
 
119
 
120
  with st.form("sms_form"):
121
  message = st.text_area(
122
+ label=translations['input_placeholder'],
123
  placeholder=translations['input_placeholder'],
124
  height=150
125
  )
126
  phone_number = st.text_input(
127
  label=translations['phone_input_label'],
128
  value="",
129
+ max_chars=20
130
  )
131
 
132
  st.markdown(f"### {translations['additional_info_header']}")
 
167
  # Informacje o numerze telefonu
168
  country, operator = get_phone_info(phone_number)
169
  if country and operator:
170
+ st.subheader(translations['phone_info_header'])
171
+ st.write(f"- **{translations['country_label']}:** {country}")
172
+ st.write(f"- **{translations['operator_label']}:** {operator}")
173
  else:
174
+ st.write(translations['unable_to_retrieve'])
175
 
176
  # Sprawdzenie, czy numer jest w bazie fałszywych numerów
177
  if is_fake_number(phone_number):
 
182
  fraud_detected = False
183
 
184
  # Przeprowadź proste sprawdzenia heurystyczne
185
+ warnings = simple_checks(message, language)
186
  if warnings:
187
+ st.warning(translations['red_flags_found'])
 
 
 
 
 
188
  for warn in warnings:
189
  st.write(f"- {warn}")
190
 
191
  # Zbierz dodatkowe informacje
192
  additional_info = f"""
193
+ **{translations['frequency_label']}** {frequency}
 
 
194
 
195
+ **{translations['last_received_label']}** {last_received}
 
 
196
 
197
+ **{translations['confidence_level_label']}** {confidence_level}/5
 
 
198
 
199
+ **{translations['unexpected_label']}** {unexpected}
 
 
200
 
201
+ **{translations['additional_notes_label']}** {additional_notes}
 
 
202
  """
203
 
204
+ # Pobierz klucz API z zmiennych środowiskowych
205
  api_key = os.getenv('SAMBANOVA_API_KEY')
206
  if not api_key:
207
  st.error("API key is missing. Please set the SAMBANOVA_API_KEY environment variable.")
 
228
  # Dodanie analizy do historii
229
  add_to_history(message, phone_number, analysis_text, risk_text, recommendations_text)
230
 
231
+ st.info(translations['remember_caution'])
232
 
233
  # Zgłoszenie numeru jako oszustwo
234
  if fraud_detected:
 
238
  if is_valid_number(parsed_number):
239
  success = add_fake_number(phone_number)
240
  if success:
241
+ st.success(translations['number_reported'])
242
  else:
243
+ st.info(translations['number_already_reported'])
244
  else:
245
+ st.error(translations['invalid_number'])
246
  except NumberParseException:
247
+ st.error(translations['failed_to_parse'])
248