rafaldembski commited on
Commit
a0ece88
verified
1 Parent(s): be9bd12

Update pages/Analysis.py

Browse files
Files changed (1) hide show
  1. pages/Analysis.py +84 -119
pages/Analysis.py CHANGED
@@ -1,3 +1,5 @@
 
 
1
  import streamlit as st
2
  from utils.functions import (
3
  get_phone_info,
@@ -188,6 +190,16 @@ def analyze_website(url, language):
188
  st.write(get_translation('website_analysis_in_progress', language))
189
  # Tutaj mo偶esz doda膰 logik臋 analizy stron internetowych
190
 
 
 
 
 
 
 
 
 
 
 
191
  def show_history(language):
192
  st.subheader(get_translation('history_header', language))
193
  st.write(get_translation('history_in_progress', language))
@@ -201,11 +213,33 @@ def show_statistics(language):
201
  def get_translation(key, language):
202
  translations = {
203
  'Polish': {
 
 
 
 
 
 
 
 
 
204
  'sms_analysis_header': "Analiza SMS",
205
  'email_analysis_header': "Analiza E-mail",
206
  'website_analysis_header': "Analiza Strony Internetowej",
207
- 'history_header': "Historia Analiz",
208
- 'statistics_header': "Statystyki",
 
 
 
 
 
 
 
 
 
 
 
 
 
209
  'phone_info': "Informacje o numerze telefonu:",
210
  'country_label': "Kraj",
211
  'operator_label': "Operator",
@@ -229,126 +263,37 @@ def get_translation(key, language):
229
  'number_already_reported': "Numer zosta艂 ju偶 wcze艣niej zg艂oszony jako oszustwo.",
230
  'invalid_number': "Podany numer telefonu jest nieprawid艂owy.",
231
  'failed_to_parse': "Nie uda艂o si臋 przetworzy膰 numeru telefonu. Upewnij si臋, 偶e jest w poprawnym formacie.",
232
- 'email_analysis_in_progress': "Funkcja analizy e-maili jest w trakcie implementacji.",
233
- 'website_analysis_in_progress': "Funkcja analizy stron internetowych jest w trakcie implementacji.",
234
  'history_in_progress': "Funkcja wy艣wietlania historii analiz jest w trakcie implementacji.",
235
  'statistics_in_progress': "Funkcja wy艣wietlania statystyk jest w trakcie implementacji.",
236
- 'analysis_center_title': "Centrum Analizy Zagro偶e艅",
237
- 'select_analysis_type': "Wybierz typ analizy:",
238
- 'additional_info_header': "Dodatkowe Informacje",
239
- 'frequency_label': "Jak cz臋sto otrzymujesz wiadomo艣ci od tego numeru?",
240
- 'frequency_options': ('Pierwszy raz', 'Sporadycznie', 'Regularnie'),
241
- 'last_received_label': "Kiedy ostatnio otrzyma艂e艣 podobn膮 wiadomo艣膰?",
242
- 'last_received_options': ('Dzi艣', 'W ci膮gu ostatniego tygodnia', 'W ci膮gu ostatniego miesi膮ca', 'D艂u偶ej'),
243
- 'confidence_level_label': "Jak bardzo jeste艣 pewny, 偶e wiadomo艣膰 jest autentyczna?",
244
- 'confidence_level_help': "1: Bardzo ma艂o pewny, 5: Bardzo pewny",
245
- 'unexpected_label': "Czy otrzymanie tej wiadomo艣ci by艂o dla Ciebie niespodziewane?",
246
- 'unexpected_options': ('Tak', 'Nie'),
247
- 'additional_notes_label': "Dodatkowe uwagi lub informacje (opcjonalnie)",
248
- 'analyze_button': "Analizuj",
249
- 'enter_sms_content': "Wprowad藕 tre艣膰 SMS",
250
- 'sender_phone_number': "Numer telefonu nadawcy (z kodem kierunkowym kraju, np. +48123456789)",
251
- 'enter_email_content': "Wprowad藕 tre艣膰 e-maila",
252
- 'sender_email_address': "Adres e-mail nadawcy",
253
- 'enter_website_url': "Wprowad藕 adres URL strony do analizy"
254
- },
255
- 'English': {
256
- 'sms_analysis_header': "SMS Analysis",
257
- 'email_analysis_header': "Email Analysis",
258
- 'website_analysis_header': "Website Analysis",
259
- 'history_header': "Analysis History",
260
- 'statistics_header': "Statistics",
261
- 'phone_info': "Phone number information:",
262
- 'country_label': "Country",
263
- 'operator_label': "Operator",
264
- 'unable_to_retrieve': "Unable to retrieve phone number information.",
265
- 'number_reported_warning': "Warning: This number has been previously reported as fraud!",
266
- 'red_flags_found': "The following potential red flags were found:",
267
- 'url_analysis_header': "URL Analysis",
268
- 'extracted_urls': "Extracted URLs from the message:",
269
- 'phishtank_warning': "The following URLs are flagged as phishing by PhishTank:",
270
- 'no_phishtank_threats': "No phishing threats detected by PhishTank.",
271
- 'api_key_missing': "API key missing for service: {}.",
272
- 'safe_browsing_warning': "The following URLs are flagged as unsafe by Google Safe Browsing:",
273
- 'no_safe_browsing_threats': "No threats detected by Google Safe Browsing.",
274
- 'analyzing_message': "Analyzing message using AI model...",
275
- 'message_analysis_header': "Message Content Analysis:",
276
- 'risk_assessment_header': "Fraud Risk Assessment:",
277
- 'user_recommendations_header': "User Recommendations:",
278
- 'remember_caution': "馃搶 Remember: Be cautious with messages from unknown senders.",
279
- 'report_button': "Report number as fraud",
280
- 'number_reported': "Number has been reported as fraud.",
281
- 'number_already_reported': "Number has already been reported as fraud.",
282
- 'invalid_number': "The provided phone number is invalid.",
283
- 'failed_to_parse': "Failed to parse the phone number. Ensure it is in the correct format.",
284
- 'email_analysis_in_progress': "Email analysis function is under development.",
285
- 'website_analysis_in_progress': "Website analysis function is under development.",
286
- 'history_in_progress': "Analysis history function is under development.",
287
- 'statistics_in_progress': "Statistics display function is under development.",
288
- 'analysis_center_title': "Threat Analysis Center",
289
- 'select_analysis_type': "Select analysis type:",
290
- 'additional_info_header': "Additional Information",
291
- 'frequency_label': "How often do you receive messages from this number?",
292
- 'frequency_options': ('First time', 'Occasionally', 'Regularly'),
293
- 'last_received_label': "When did you last receive a similar message?",
294
- 'last_received_options': ('Today', 'Within the last week', 'Within the last month', 'Longer ago'),
295
- 'confidence_level_label': "How confident are you that the message is authentic?",
296
- 'confidence_level_help': "1: Very unsure, 5: Very confident",
297
- 'unexpected_label': "Was receiving this message unexpected for you?",
298
- 'unexpected_options': ('Yes', 'No'),
299
- 'additional_notes_label': "Additional notes or information (optional)",
300
- 'analyze_button': "Analyze",
301
- 'enter_sms_content': "Enter SMS content",
302
- 'sender_phone_number': "Sender's phone number (with country code, e.g., +123456789)",
303
- 'enter_email_content': "Enter email content",
304
- 'sender_email_address': "Sender's email address",
305
- 'enter_website_url': "Enter website URL to analyze"
306
  },
307
- 'German': {
308
- # Dodaj t艂umaczenia dla j臋zyka niemieckiego
309
- # Add German translations here
310
- }
311
  }
312
- return translations.get(language, translations['English']).get(key, key)
313
 
314
  def show_analysis(language):
315
  st.title(get_translation('analysis_center_title', language))
316
-
317
- analysis_type = st.sidebar.radio(
 
 
 
 
 
 
 
 
 
 
318
  get_translation('select_analysis_type', language),
319
- (
320
- get_translation('sms_analysis_header', language),
321
- get_translation('email_analysis_header', language),
322
- get_translation('website_analysis_header', language),
323
- get_translation('history_header', language),
324
- get_translation('statistics_header', language)
325
- )
326
  )
327
 
328
- if analysis_type == get_translation('sms_analysis_header', language):
329
  with st.form("sms_form"):
330
  message = st.text_area(get_translation('enter_sms_content', language), height=150)
331
  phone_number = st.text_input(get_translation('sender_phone_number', language))
332
 
333
- st.subheader(get_translation('additional_info_header', language))
334
- frequency = st.selectbox(
335
- get_translation('frequency_label', language),
336
- get_translation('frequency_options', language)
337
- )
338
- last_received = st.selectbox(
339
- get_translation('last_received_label', language),
340
- get_translation('last_received_options', language)
341
- )
342
- confidence_level = st.slider(
343
- get_translation('confidence_level_label', language),
344
- 1, 5, 3,
345
- help=get_translation('confidence_level_help', language)
346
- )
347
- unexpected = st.radio(
348
- get_translation('unexpected_label', language),
349
- get_translation('unexpected_options', language)
350
- )
351
- additional_notes = st.text_area(get_translation('additional_notes_label', language), height=100)
352
 
353
  submitted = st.form_submit_button(get_translation('analyze_button', language))
354
 
@@ -358,19 +303,14 @@ def show_analysis(language):
358
  elif not phone_number.strip():
359
  st.error(get_translation('sender_phone_number', language))
360
  else:
361
- additional_info = f"""
362
- **{get_translation('frequency_label', language)}**: {frequency}
363
- **{get_translation('last_received_label', language)}**: {last_received}
364
- **{get_translation('confidence_level_label', language)}**: {confidence_level}/5
365
- **{get_translation('unexpected_label', language)}**: {unexpected}
366
- **{get_translation('additional_notes_label', language)}**: {additional_notes}
367
- """
368
  analyze_sms(message, phone_number, additional_info, language)
369
 
370
- elif analysis_type == get_translation('email_analysis_header', language):
371
  with st.form("email_form"):
372
  email_content = st.text_area(get_translation('enter_email_content', language), height=150)
373
  sender_email = st.text_input(get_translation('sender_email_address', language))
 
374
  submitted = st.form_submit_button(get_translation('analyze_button', language))
375
 
376
  if submitted:
@@ -381,9 +321,10 @@ def show_analysis(language):
381
  else:
382
  analyze_email(email_content, sender_email, language)
383
 
384
- elif analysis_type == get_translation('website_analysis_header', language):
385
  with st.form("website_form"):
386
  url = st.text_input(get_translation('enter_website_url', language))
 
387
  submitted = st.form_submit_button(get_translation('analyze_button', language))
388
 
389
  if submitted:
@@ -392,8 +333,32 @@ def show_analysis(language):
392
  else:
393
  analyze_website(url, language)
394
 
395
- elif analysis_type == get_translation('history_header', language):
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
396
  show_history(language)
397
 
398
- elif analysis_type == get_translation('statistics_header', language):
399
  show_statistics(language)
 
1
+ # pages/Analysis.py
2
+
3
  import streamlit as st
4
  from utils.functions import (
5
  get_phone_info,
 
190
  st.write(get_translation('website_analysis_in_progress', language))
191
  # Tutaj mo偶esz doda膰 logik臋 analizy stron internetowych
192
 
193
+ def analyze_image(image_file, language):
194
+ st.subheader(get_translation('image_analysis_header', language))
195
+ st.write(get_translation('image_analysis_in_progress', language))
196
+ # Tutaj mo偶esz doda膰 logik臋 analizy obraz贸w
197
+
198
+ def analyze_phone_number(phone_number, language):
199
+ st.subheader(get_translation('phone_number_analysis_header', language))
200
+ st.write(get_translation('phone_number_analysis_in_progress', language))
201
+ # Tutaj mo偶esz doda膰 logik臋 analizy numer贸w telefon贸w
202
+
203
  def show_history(language):
204
  st.subheader(get_translation('history_header', language))
205
  st.write(get_translation('history_in_progress', language))
 
213
  def get_translation(key, language):
214
  translations = {
215
  'Polish': {
216
+ 'analysis_center_title': "Centrum Analizy",
217
+ 'select_analysis_type': "Wybierz typ analizy:",
218
+ 'sms_analysis': "Analiza SMS",
219
+ 'email_analysis': "Analiza E-mail",
220
+ 'website_analysis': "Analiza Strony Internetowej",
221
+ 'phone_number_analysis': "Analiza Numeru Telefonu",
222
+ 'image_analysis': "Analiza Obrazu",
223
+ 'history': "Historia Analiz",
224
+ 'statistics': "Statystyki",
225
  'sms_analysis_header': "Analiza SMS",
226
  'email_analysis_header': "Analiza E-mail",
227
  'website_analysis_header': "Analiza Strony Internetowej",
228
+ 'phone_number_analysis_header': "Analiza Numeru Telefonu",
229
+ 'image_analysis_header': "Analiza Obrazu",
230
+ 'enter_sms_content': "Wprowad藕 tre艣膰 SMS",
231
+ 'sender_phone_number': "Numer telefonu nadawcy (z kodem kierunkowym kraju, np. +48123456789)",
232
+ 'analyze_button': "Analizuj",
233
+ 'enter_email_content': "Wprowad藕 tre艣膰 e-maila",
234
+ 'sender_email_address': "Adres e-mail nadawcy",
235
+ 'enter_website_url': "Wprowad藕 adres URL strony do analizy",
236
+ 'upload_image': "Prze艣lij obraz do analizy",
237
+ 'no_image_selected': "Prosz臋 wybra膰 obraz do analizy.",
238
+ 'enter_phone_number': "Wprowad藕 numer telefonu do analizy",
239
+ 'email_analysis_in_progress': "Funkcja analizy e-maili jest w trakcie implementacji.",
240
+ 'website_analysis_in_progress': "Funkcja analizy stron internetowych jest w trakcie implementacji.",
241
+ 'image_analysis_in_progress': "Funkcja analizy obraz贸w jest w trakcie implementacji.",
242
+ 'phone_number_analysis_in_progress': "Funkcja analizy numer贸w telefon贸w jest w trakcie implementacji.",
243
  'phone_info': "Informacje o numerze telefonu:",
244
  'country_label': "Kraj",
245
  'operator_label': "Operator",
 
263
  'number_already_reported': "Numer zosta艂 ju偶 wcze艣niej zg艂oszony jako oszustwo.",
264
  'invalid_number': "Podany numer telefonu jest nieprawid艂owy.",
265
  'failed_to_parse': "Nie uda艂o si臋 przetworzy膰 numeru telefonu. Upewnij si臋, 偶e jest w poprawnym formacie.",
 
 
266
  'history_in_progress': "Funkcja wy艣wietlania historii analiz jest w trakcie implementacji.",
267
  'statistics_in_progress': "Funkcja wy艣wietlania statystyk jest w trakcie implementacji.",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
268
  },
269
+ # Dodaj t艂umaczenia dla innych j臋zyk贸w, je艣li potrzebujesz
 
 
 
270
  }
271
+ return translations.get(language, translations['Polish']).get(key, key)
272
 
273
  def show_analysis(language):
274
  st.title(get_translation('analysis_center_title', language))
275
+
276
+ analysis_options = [
277
+ get_translation('sms_analysis', language),
278
+ get_translation('email_analysis', language),
279
+ get_translation('website_analysis', language),
280
+ get_translation('phone_number_analysis', language),
281
+ get_translation('image_analysis', language),
282
+ get_translation('history', language),
283
+ get_translation('statistics', language)
284
+ ]
285
+
286
+ selected_analysis = st.radio(
287
  get_translation('select_analysis_type', language),
288
+ analysis_options
 
 
 
 
 
 
289
  )
290
 
291
+ if selected_analysis == get_translation('sms_analysis', language):
292
  with st.form("sms_form"):
293
  message = st.text_area(get_translation('enter_sms_content', language), height=150)
294
  phone_number = st.text_input(get_translation('sender_phone_number', language))
295
 
296
+ # Dodaj dodatkowe pola i informacje, je艣li potrzebujesz
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
297
 
298
  submitted = st.form_submit_button(get_translation('analyze_button', language))
299
 
 
303
  elif not phone_number.strip():
304
  st.error(get_translation('sender_phone_number', language))
305
  else:
306
+ additional_info = "" # Dodaj dodatkowe informacje, je艣li potrzebujesz
 
 
 
 
 
 
307
  analyze_sms(message, phone_number, additional_info, language)
308
 
309
+ elif selected_analysis == get_translation('email_analysis', language):
310
  with st.form("email_form"):
311
  email_content = st.text_area(get_translation('enter_email_content', language), height=150)
312
  sender_email = st.text_input(get_translation('sender_email_address', language))
313
+
314
  submitted = st.form_submit_button(get_translation('analyze_button', language))
315
 
316
  if submitted:
 
321
  else:
322
  analyze_email(email_content, sender_email, language)
323
 
324
+ elif selected_analysis == get_translation('website_analysis', language):
325
  with st.form("website_form"):
326
  url = st.text_input(get_translation('enter_website_url', language))
327
+
328
  submitted = st.form_submit_button(get_translation('analyze_button', language))
329
 
330
  if submitted:
 
333
  else:
334
  analyze_website(url, language)
335
 
336
+ elif selected_analysis == get_translation('phone_number_analysis', language):
337
+ with st.form("phone_number_form"):
338
+ phone_number = st.text_input(get_translation('enter_phone_number', language))
339
+
340
+ submitted = st.form_submit_button(get_translation('analyze_button', language))
341
+
342
+ if submitted:
343
+ if not phone_number.strip():
344
+ st.error(get_translation('enter_phone_number', language))
345
+ else:
346
+ analyze_phone_number(phone_number, language)
347
+
348
+ elif selected_analysis == get_translation('image_analysis', language):
349
+ with st.form("image_form"):
350
+ image_file = st.file_uploader(get_translation('upload_image', language), type=['png', 'jpg', 'jpeg'])
351
+
352
+ submitted = st.form_submit_button(get_translation('analyze_button', language))
353
+
354
+ if submitted:
355
+ if image_file is None:
356
+ st.error(get_translation('no_image_selected', language))
357
+ else:
358
+ analyze_image(image_file, language)
359
+
360
+ elif selected_analysis == get_translation('history', language):
361
  show_history(language)
362
 
363
+ elif selected_analysis == get_translation('statistics', language):
364
  show_statistics(language)