From cc922c0ed3ba84b5fe87a0d0c720079be00081d1 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Mon, 22 Sep 2025 11:52:46 +0100 Subject: [PATCH] Add warning if post content contains only a single web link# --- cwlists.py | 10 ++++++++++ translations/ar.json | 3 ++- translations/bn.json | 3 ++- translations/ca.json | 3 ++- translations/cy.json | 3 ++- translations/de.json | 3 ++- translations/el.json | 3 ++- translations/en.json | 3 ++- translations/es.json | 3 ++- translations/fa.json | 3 ++- translations/fi.json | 3 ++- translations/fr.json | 3 ++- translations/ga.json | 3 ++- translations/he.json | 3 ++- translations/hi.json | 3 ++- translations/it.json | 3 ++- translations/ja.json | 3 ++- translations/ko.json | 3 ++- translations/ku.json | 3 ++- translations/nl.json | 3 ++- translations/oc.json | 3 ++- translations/pl.json | 3 ++- translations/pt.json | 3 ++- translations/ru.json | 3 ++- translations/sw.json | 3 ++- translations/tr.json | 3 ++- translations/uk.json | 3 ++- translations/yi.json | 3 ++- translations/zh.json | 3 ++- utils.py | 9 +++++++++ 30 files changed, 75 insertions(+), 28 deletions(-) diff --git a/cwlists.py b/cwlists.py index 54c24d04a..1ef932a97 100644 --- a/cwlists.py +++ b/cwlists.py @@ -10,6 +10,7 @@ __module_group__ = "Core" import os from utils import load_json from utils import get_content_from_post +from utils import content_is_single_url def load_cw_lists(base_dir: str, verbose: bool) -> {}: @@ -124,6 +125,15 @@ def add_cw_from_lists(post_json_object: {}, cw_lists: {}, translate: {}, if not content: return + # warn about possible dangerous web links, which could be phishing scams + if content_is_single_url(content): + single_link_warning = translate['Warning: Possible dangerous link'] + if cw_text: + if single_link_warning not in cw_text: + cw_text = single_link_warning + ' / ' + cw_text + else: + cw_text = single_link_warning + post_tags: list[dict] = [] if post_json_object['object'].get('tag'): if isinstance(post_json_object['object']['tag'], list): diff --git a/translations/ar.json b/translations/ar.json index 7d3d15d26..e308eb179 100644 --- a/translations/ar.json +++ b/translations/ar.json @@ -761,5 +761,6 @@ "SPORTS": "الرياضة", "THEATRE": "مسرح", "WORKSHOPS_SKILL_SHARING": "ورش العمل / مشاركة المهارات", - "Status": "حالة" + "Status": "حالة", + "Warning: Possible dangerous link": "تحذير: رابط خطير محتمل" } diff --git a/translations/bn.json b/translations/bn.json index f4fd5a86c..a76d20cd1 100644 --- a/translations/bn.json +++ b/translations/bn.json @@ -761,5 +761,6 @@ "SPORTS": "খেলাধুলা", "THEATRE": "থিয়া", "WORKSHOPS_SKILL_SHARING": "কর্মশালা / দক্ষতা ভাগ করে নেওয়া", - "Status": "অবস্থা" + "Status": "অবস্থা", + "Warning: Possible dangerous link": "সতর্কতা: সম্ভাব্য বিপজ্জনক লিঙ্ক" } diff --git a/translations/ca.json b/translations/ca.json index 09a119dcd..abff7d7a1 100644 --- a/translations/ca.json +++ b/translations/ca.json @@ -761,5 +761,6 @@ "SPORTS": "Esport", "THEATRE": "Teat", "WORKSHOPS_SKILL_SHARING": "Tallers / compartició d’habilitats", - "Status": "Estat" + "Status": "Estat", + "Warning: Possible dangerous link": "Avís: Possible enllaç perillós" } diff --git a/translations/cy.json b/translations/cy.json index 11dd89f7a..55eaddbc4 100644 --- a/translations/cy.json +++ b/translations/cy.json @@ -761,5 +761,6 @@ "SPORTS": "Chwaraeon", "THEATRE": "Theatr", "WORKSHOPS_SKILL_SHARING": "Gweithdai / Rhannu Sgiliau", - "Status": "Statws" + "Status": "Statws", + "Warning: Possible dangerous link": "Rhybudd: Cyswllt peryglus posibl" } diff --git a/translations/de.json b/translations/de.json index c3b0946c6..457a48e5a 100644 --- a/translations/de.json +++ b/translations/de.json @@ -761,5 +761,6 @@ "SPORTS": "Sport", "THEATRE": "Theater", "WORKSHOPS_SKILL_SHARING": "Workshops / Fertigkeitsaustausch", - "Status": "Status" + "Status": "Status", + "Warning: Possible dangerous link": "Warnung: Möglicher gefährlicher Link" } diff --git a/translations/el.json b/translations/el.json index db2f3936c..9fede137f 100644 --- a/translations/el.json +++ b/translations/el.json @@ -761,5 +761,6 @@ "SPORTS": "Αθλητισμός", "THEATRE": "Θέατρο", "WORKSHOPS_SKILL_SHARING": "Εργαστήρια / κοινή χρήση δεξιοτήτων", - "Status": "Κατάσταση" + "Status": "Κατάσταση", + "Warning: Possible dangerous link": "Προειδοποίηση: Πιθανός επικίνδυνος σύνδεσμος" } diff --git a/translations/en.json b/translations/en.json index a3957e823..7d7c7f514 100644 --- a/translations/en.json +++ b/translations/en.json @@ -761,5 +761,6 @@ "SPORTS": "Sports", "THEATRE": "Theatre", "WORKSHOPS_SKILL_SHARING": "Workshops / Skill sharing", - "Status": "Status" + "Status": "Status", + "Warning: Possible dangerous link": "Warning: Possible dangerous link" } diff --git a/translations/es.json b/translations/es.json index 71376fa23..7b1eec4dd 100644 --- a/translations/es.json +++ b/translations/es.json @@ -761,5 +761,6 @@ "SPORTS": "Deportes", "THEATRE": "Teatro", "WORKSHOPS_SKILL_SHARING": "Talleres / Experiencia de habilidades", - "Status": "Estado" + "Status": "Estado", + "Warning: Possible dangerous link": "Advertencia: Posible enlace peligroso" } diff --git a/translations/fa.json b/translations/fa.json index 54999cd02..f070edeff 100644 --- a/translations/fa.json +++ b/translations/fa.json @@ -761,5 +761,6 @@ "SPORTS": "ورزش", "THEATRE": "تئاتر", "WORKSHOPS_SKILL_SHARING": "کارگاه ها / اشتراک مهارت", - "Status": "وضعیت" + "Status": "وضعیت", + "Warning: Possible dangerous link": "هشدار: احتمال لینک خطرناک" } diff --git a/translations/fi.json b/translations/fi.json index 133fa2851..d5c6e2579 100644 --- a/translations/fi.json +++ b/translations/fi.json @@ -761,5 +761,6 @@ "SPORTS": "Urheilu", "THEATRE": "Teatteri", "WORKSHOPS_SKILL_SHARING": "Työpajat / taitojen jakaminen", - "Status": "Status" + "Status": "Status", + "Warning: Possible dangerous link": "Varoitus: Mahdollisesti vaarallinen linkki" } diff --git a/translations/fr.json b/translations/fr.json index 11ccba9e4..9e9648c72 100644 --- a/translations/fr.json +++ b/translations/fr.json @@ -761,5 +761,6 @@ "SPORTS": "Sportive", "THEATRE": "Théâtre", "WORKSHOPS_SKILL_SHARING": "Ateliers / partage des compétences", - "Status": "Statut" + "Status": "Statut", + "Warning: Possible dangerous link": "Avertissement : lien potentiellement dangereux" } diff --git a/translations/ga.json b/translations/ga.json index 65ab59184..42a4f1911 100644 --- a/translations/ga.json +++ b/translations/ga.json @@ -761,5 +761,6 @@ "SPORTS": "Oll naordaí", "THEATRE": "Tochadán", "WORKSHOPS_SKILL_SHARING": "Ceardlanna / comhroinnt scileanna", - "Status": "Stádas" + "Status": "Stádas", + "Warning: Possible dangerous link": "Rabhadh: Nasc contúirteach féideartha" } diff --git a/translations/he.json b/translations/he.json index db2a2f65a..92bc4cb18 100644 --- a/translations/he.json +++ b/translations/he.json @@ -761,5 +761,6 @@ "SPORTS": "ספו", "THEATRE": "תֵאַטרוֹן", "WORKSHOPS_SKILL_SHARING": "סדנאות / שיתוף מיומנות", - "Status": "סטָטוּס" + "Status": "סטָטוּס", + "Warning: Possible dangerous link": "אזהרה: קישור מסוכן אפשרי" } diff --git a/translations/hi.json b/translations/hi.json index 1fcf67a90..26d05a565 100644 --- a/translations/hi.json +++ b/translations/hi.json @@ -761,5 +761,6 @@ "SPORTS": "खेल", "THEATRE": "थिएटर", "WORKSHOPS_SKILL_SHARING": "कार्यशालाएं / कौशल साझाकरण", - "Status": "स्थिति" + "Status": "स्थिति", + "Warning: Possible dangerous link": "चेतावनी: संभावित खतरनाक लिंक" } diff --git a/translations/it.json b/translations/it.json index 970c92a06..3734a01b0 100644 --- a/translations/it.json +++ b/translations/it.json @@ -761,5 +761,6 @@ "SPORTS": "Sport", "THEATRE": "Teatro", "WORKSHOPS_SKILL_SHARING": "Seminari / condivisione delle competenze", - "Status": "Stato" + "Status": "Stato", + "Warning: Possible dangerous link": "Attenzione: possibile collegamento pericoloso" } diff --git a/translations/ja.json b/translations/ja.json index 23f03bf61..28e9d01f9 100644 --- a/translations/ja.json +++ b/translations/ja.json @@ -761,5 +761,6 @@ "SPORTS": "スポーツ", "THEATRE": "劇場", "WORKSHOPS_SKILL_SHARING": "ワークショップ /スキル共有", - "Status": "状態" + "Status": "状態", + "Warning: Possible dangerous link": "警告: 危険なリンクの可能性があります" } diff --git a/translations/ko.json b/translations/ko.json index 862d7563b..4231acd20 100644 --- a/translations/ko.json +++ b/translations/ko.json @@ -761,5 +761,6 @@ "SPORTS": "스포츠", "THEATRE": "극장", "WORKSHOPS_SKILL_SHARING": "워크샵 / 기술 공유", - "Status": "상태" + "Status": "상태", + "Warning: Possible dangerous link": "경고: 위험한 링크가 있을 수 있습니다" } diff --git a/translations/ku.json b/translations/ku.json index 16fe34fb3..3a0444b8c 100644 --- a/translations/ku.json +++ b/translations/ku.json @@ -761,5 +761,6 @@ "SPORTS": "Beden", "THEATRE": "Şano", "WORKSHOPS_SKILL_SHARING": "Karker / Parvekirina Skill", - "Status": "Cî" + "Status": "Cî", + "Warning: Possible dangerous link": "Hişyarî: Girêdaneke gengaz a xeternak" } diff --git a/translations/nl.json b/translations/nl.json index 2e517f7a0..111b86ef8 100644 --- a/translations/nl.json +++ b/translations/nl.json @@ -761,5 +761,6 @@ "SPORTS": "Sport", "THEATRE": "Theater", "WORKSHOPS_SKILL_SHARING": "Workshops / vaardigheden delen", - "Status": "Status" + "Status": "Status", + "Warning: Possible dangerous link": "Waarschuwing: Mogelijk gevaarlijke link" } diff --git a/translations/oc.json b/translations/oc.json index 3e1411656..2364c76a2 100644 --- a/translations/oc.json +++ b/translations/oc.json @@ -757,5 +757,6 @@ "SPORTS": "Sports", "THEATRE": "Theatre", "WORKSHOPS_SKILL_SHARING": "Workshops / Skill sharing", - "Status": "Status" + "Status": "Status", + "Warning: Possible dangerous link": "Warning: Possible dangerous link" } diff --git a/translations/pl.json b/translations/pl.json index c3e9d2600..3e4d49a43 100644 --- a/translations/pl.json +++ b/translations/pl.json @@ -761,5 +761,6 @@ "SPORTS": "Lekkoatletyka", "THEATRE": "Teatr", "WORKSHOPS_SKILL_SHARING": "Warsztaty / udostępnianie umiejętności", - "Status": "Status" + "Status": "Status", + "Warning: Possible dangerous link": "Ostrzeżenie: Możliwe niebezpieczne łącze" } diff --git a/translations/pt.json b/translations/pt.json index 467b4c753..6117ae201 100644 --- a/translations/pt.json +++ b/translations/pt.json @@ -761,5 +761,6 @@ "SPORTS": "Esportes", "THEATRE": "Teatro", "WORKSHOPS_SKILL_SHARING": "Workshops / compartilhamento de habilidades", - "Status": "Estatuto" + "Status": "Estatuto", + "Warning: Possible dangerous link": "Aviso: possível ligação perigosa" } diff --git a/translations/ru.json b/translations/ru.json index 97b1c1020..25d5bdf7b 100644 --- a/translations/ru.json +++ b/translations/ru.json @@ -761,5 +761,6 @@ "SPORTS": "Спорт", "THEATRE": "Театр", "WORKSHOPS_SKILL_SHARING": "Семинары / обмен навыками", - "Status": "Статус" + "Status": "Статус", + "Warning: Possible dangerous link": "Внимание: возможная опасная ссылка" } diff --git a/translations/sw.json b/translations/sw.json index 3573587b7..cb8db0602 100644 --- a/translations/sw.json +++ b/translations/sw.json @@ -761,5 +761,6 @@ "SPORTS": "Michezo", "THEATRE": "Ukumbi wa michezo", "WORKSHOPS_SKILL_SHARING": "Warsha / Kushiriki kwa Ustadi", - "Status": "Hali" + "Status": "Hali", + "Warning: Possible dangerous link": "Onyo: Kiungo hatari kinachowezekana" } diff --git a/translations/tr.json b/translations/tr.json index 0ba8b0a5f..eae471ed3 100644 --- a/translations/tr.json +++ b/translations/tr.json @@ -761,5 +761,6 @@ "SPORTS": "Spor", "THEATRE": "Tiyatro", "WORKSHOPS_SKILL_SHARING": "Çalıştaylar / Beceri Paylaşımı", - "Status": "Durum" + "Status": "Durum", + "Warning: Possible dangerous link": "Uyarı: Olası tehlikeli bağlantı" } diff --git a/translations/uk.json b/translations/uk.json index 6e7b99743..3a2a21ba9 100644 --- a/translations/uk.json +++ b/translations/uk.json @@ -761,5 +761,6 @@ "SPORTS": "Спорт", "THEATRE": "Театр", "WORKSHOPS_SKILL_SHARING": "Семінари / обмін навичками", - "Status": "Статус" + "Status": "Статус", + "Warning: Possible dangerous link": "Попередження: Можливе небезпечне посилання" } diff --git a/translations/yi.json b/translations/yi.json index 68ce8e8ce..225cbe065 100644 --- a/translations/yi.json +++ b/translations/yi.json @@ -761,5 +761,6 @@ "SPORTS": "ספּאָרט", "THEATRE": "טעאַטער", "WORKSHOPS_SKILL_SHARING": "וואָרקשאָפּ / סקילז ייַנטיילונג", - "Status": "סטאַטוס" + "Status": "סטאַטוס", + "Warning: Possible dangerous link": "ווארענונג: מעגלעכער געפערלעכער פארבינדונג" } diff --git a/translations/zh.json b/translations/zh.json index 236bcb56c..9cc31a542 100644 --- a/translations/zh.json +++ b/translations/zh.json @@ -761,5 +761,6 @@ "SPORTS": "运动的", "THEATRE": "剧院", "WORKSHOPS_SKILL_SHARING": "研讨会 /技能共享", - "Status": "地位" + "Status": "地位", + "Warning: Possible dangerous link": "警告:可能存在危险链接" } diff --git a/utils.py b/utils.py index a0f4bde94..0facb4e73 100644 --- a/utils.py +++ b/utils.py @@ -668,6 +668,15 @@ def remove_html(content: str) -> str: return result +def content_is_single_url(content: str) -> bool: + """Returns true of the content string only contains a web link + """ + if '