Warn about follow requests from disinformation instances

main
bashrc 2026-05-29 17:09:12 +01:00
parent 72d1ec247d
commit a273defb49
29 changed files with 75 additions and 28 deletions

View File

@ -770,5 +770,6 @@
"Group": "مجموعة", "Group": "مجموعة",
"minutes": "دقائق", "minutes": "دقائق",
"Availability": "التوافر", "Availability": "التوافر",
"Loops Instances": "حلقات التكرار" "Loops Instances": "حلقات التكرار",
"Disinformation Instances": "أمثلة على التضليل الإعلامي"
} }

View File

@ -770,5 +770,6 @@
"Group": "গ্রুপ", "Group": "গ্রুপ",
"minutes": "মিনিট", "minutes": "মিনিট",
"Availability": "প্রাপ্যতা", "Availability": "প্রাপ্যতা",
"Loops Instances": "লুপ ইনস্ট্যান্স" "Loops Instances": "লুপ ইনস্ট্যান্স",
"Disinformation Instances": "ভুল তথ্যের উদাহরণ"
} }

View File

@ -770,5 +770,6 @@
"Group": "Grup", "Group": "Grup",
"minutes": "minuts", "minutes": "minuts",
"Availability": "Disponibilitat", "Availability": "Disponibilitat",
"Loops Instances": "Instàncies de bucles" "Loops Instances": "Instàncies de bucles",
"Disinformation Instances": "Instàncies de desinformació"
} }

View File

@ -770,5 +770,6 @@
"Group": "Grŵp", "Group": "Grŵp",
"minutes": "munudau", "minutes": "munudau",
"Availability": "Argaeledd", "Availability": "Argaeledd",
"Loops Instances": "Achosion Dolenni" "Loops Instances": "Achosion Dolenni",
"Disinformation Instances": "Achosion o Ddadwybodaeth"
} }

View File

@ -770,5 +770,6 @@
"Group": "Gruppe", "Group": "Gruppe",
"minutes": "minuten", "minutes": "minuten",
"Availability": "Verfügbarkeit", "Availability": "Verfügbarkeit",
"Loops Instances": "Schleifeninstanzen" "Loops Instances": "Schleifeninstanzen",
"Disinformation Instances": "Fälle von Desinformation"
} }

View File

@ -770,5 +770,6 @@
"Group": "Ομάδα", "Group": "Ομάδα",
"minutes": "πρακτικά", "minutes": "πρακτικά",
"Availability": "Διαθεσιμότητα", "Availability": "Διαθεσιμότητα",
"Loops Instances": "Παρουσίες βρόχων" "Loops Instances": "Παρουσίες βρόχων",
"Disinformation Instances": "Περιπτώσεις παραπληροφόρησης"
} }

View File

@ -770,5 +770,6 @@
"Group": "Group", "Group": "Group",
"minutes": "minutes", "minutes": "minutes",
"Availability": "Availability", "Availability": "Availability",
"Loops Instances": "Loops Instances" "Loops Instances": "Loops Instances",
"Disinformation Instances": "Disinformation Instances"
} }

View File

@ -770,5 +770,6 @@
"Group": "Grupo", "Group": "Grupo",
"minutes": "minutos", "minutes": "minutos",
"Availability": "Disponibilidad", "Availability": "Disponibilidad",
"Loops Instances": "Instancias de bucles" "Loops Instances": "Instancias de bucles",
"Disinformation Instances": "Casos de desinformación"
} }

View File

@ -770,5 +770,6 @@
"Group": "گروه", "Group": "گروه",
"minutes": "دقیقه", "minutes": "دقیقه",
"Availability": "در دسترس بودن", "Availability": "در دسترس بودن",
"Loops Instances": "نمونه‌های حلقه‌ها" "Loops Instances": "نمونه‌های حلقه‌ها",
"Disinformation Instances": "موارد انتشار اطلاعات نادرست"
} }

View File

@ -770,5 +770,6 @@
"Group": "Ryhmä", "Group": "Ryhmä",
"minutes": "minuuttia", "minutes": "minuuttia",
"Availability": "Saatavuus", "Availability": "Saatavuus",
"Loops Instances": "Silmukat-instanssit" "Loops Instances": "Silmukat-instanssit",
"Disinformation Instances": "Disinformaatiotapaukset"
} }

View File

@ -770,5 +770,6 @@
"Group": "Groupe", "Group": "Groupe",
"minutes": "minutes", "minutes": "minutes",
"Availability": "Disponibilité", "Availability": "Disponibilité",
"Loops Instances": "Instances de boucles" "Loops Instances": "Instances de boucles",
"Disinformation Instances": "Cas de désinformation"
} }

View File

@ -770,5 +770,6 @@
"Group": "Grúpa", "Group": "Grúpa",
"minutes": "nóiméad", "minutes": "nóiméad",
"Availability": "Infhaighteacht", "Availability": "Infhaighteacht",
"Loops Instances": "Cásanna Lúb" "Loops Instances": "Cásanna Lúb",
"Disinformation Instances": "Cásanna Mífhaisnéise"
} }

View File

@ -770,5 +770,6 @@
"Group": "קְבוּצָה", "Group": "קְבוּצָה",
"minutes": "פּרוֹטוֹקוֹל", "minutes": "פּרוֹטוֹקוֹל",
"Availability": "זְמִינוּת", "Availability": "זְמִינוּת",
"Loops Instances": "מופעי לולאות" "Loops Instances": "מופעי לולאות",
"Disinformation Instances": "מקרים של דיסאינפורמציה"
} }

View File

@ -770,5 +770,6 @@
"Group": "समूह", "Group": "समूह",
"minutes": "मिनट", "minutes": "मिनट",
"Availability": "उपलब्धता", "Availability": "उपलब्धता",
"Loops Instances": "लूप इंस्टेंस" "Loops Instances": "लूप इंस्टेंस",
"Disinformation Instances": "गलत सूचना के उदाहरण"
} }

View File

@ -770,5 +770,6 @@
"Group": "Gruppo", "Group": "Gruppo",
"minutes": "minuti", "minutes": "minuti",
"Availability": "Disponibilità", "Availability": "Disponibilità",
"Loops Instances": "Istanze di cicli" "Loops Instances": "Istanze di cicli",
"Disinformation Instances": "Esempi di disinformazione"
} }

View File

@ -770,5 +770,6 @@
"Group": "グループ", "Group": "グループ",
"minutes": "分", "minutes": "分",
"Availability": "可用性", "Availability": "可用性",
"Loops Instances": "ループインスタンス" "Loops Instances": "ループインスタンス",
"Disinformation Instances": "偽情報事例"
} }

View File

@ -770,5 +770,6 @@
"Group": "그룹", "Group": "그룹",
"minutes": "분", "minutes": "분",
"Availability": "유효성", "Availability": "유효성",
"Loops Instances": "루프 인스턴스" "Loops Instances": "루프 인스턴스",
"Disinformation Instances": "허위 정보 사례"
} }

View File

@ -770,5 +770,6 @@
"Group": "Kom", "Group": "Kom",
"minutes": "deqîqe", "minutes": "deqîqe",
"Availability": "Berdestbûnî", "Availability": "Berdestbûnî",
"Loops Instances": "Nimûneyên Loopan" "Loops Instances": "Nimûneyên Loopan",
"Disinformation Instances": "Nimûneyên Dezînformasyonê"
} }

View File

@ -770,5 +770,6 @@
"Group": "Groep", "Group": "Groep",
"minutes": "notulen", "minutes": "notulen",
"Availability": "Beschikbaarheid", "Availability": "Beschikbaarheid",
"Loops Instances": "Lusinstanties" "Loops Instances": "Lusinstanties",
"Disinformation Instances": "Voorbeelden van desinformatie"
} }

View File

@ -766,5 +766,6 @@
"Group": "Group", "Group": "Group",
"minutes": "minutes", "minutes": "minutes",
"Availability": "Availability", "Availability": "Availability",
"Loops Instances": "Loops Instances" "Loops Instances": "Loops Instances",
"Disinformation Instances": "Disinformation Instances"
} }

View File

@ -770,5 +770,6 @@
"Group": "Grupa", "Group": "Grupa",
"minutes": "protokół", "minutes": "protokół",
"Availability": "Dostępność", "Availability": "Dostępność",
"Loops Instances": "Instancje pętli" "Loops Instances": "Instancje pętli",
"Disinformation Instances": "Przypadki dezinformacji"
} }

View File

@ -770,5 +770,6 @@
"Group": "Grupo", "Group": "Grupo",
"minutes": "minutos", "minutes": "minutos",
"Availability": "Disponibilidade", "Availability": "Disponibilidade",
"Loops Instances": "Instâncias de Loops" "Loops Instances": "Instâncias de Loops",
"Disinformation Instances": "Casos de desinformação"
} }

View File

@ -770,5 +770,6 @@
"Group": "Группа", "Group": "Группа",
"minutes": "минут", "minutes": "минут",
"Availability": "Доступность", "Availability": "Доступность",
"Loops Instances": "Экземпляры циклов" "Loops Instances": "Экземпляры циклов",
"Disinformation Instances": "Случаи дезинформации"
} }

View File

@ -770,5 +770,6 @@
"Group": "Kundi", "Group": "Kundi",
"minutes": "dakika", "minutes": "dakika",
"Availability": "Upatikanaji", "Availability": "Upatikanaji",
"Loops Instances": "Matukio ya Mizunguko" "Loops Instances": "Matukio ya Mizunguko",
"Disinformation Instances": "Matukio ya Taarifa Potofu"
} }

View File

@ -770,5 +770,6 @@
"Group": "Grup", "Group": "Grup",
"minutes": "dakika", "minutes": "dakika",
"Availability": "Müsaitlik", "Availability": "Müsaitlik",
"Loops Instances": "Döngü Örnekleri" "Loops Instances": "Döngü Örnekleri",
"Disinformation Instances": "Dezenformasyon Vakaları"
} }

View File

@ -770,5 +770,6 @@
"Group": "Група", "Group": "Група",
"minutes": "хвилин", "minutes": "хвилин",
"Availability": "Наявність", "Availability": "Наявність",
"Loops Instances": "Екземпляри циклів" "Loops Instances": "Екземпляри циклів",
"Disinformation Instances": "Випадки дезінформації"
} }

View File

@ -770,5 +770,6 @@
"Group": "גרופּע", "Group": "גרופּע",
"minutes": "מינוטן", "minutes": "מינוטן",
"Availability": "פאַראַנען", "Availability": "פאַראַנען",
"Loops Instances": "לופּס אינסטאַנסן" "Loops Instances": "לופּס אינסטאַנסן",
"Disinformation Instances": "דיסאינפארמאציע אינסטאַנצן"
} }

View File

@ -770,5 +770,6 @@
"Group": "团体", "Group": "团体",
"minutes": "分钟", "minutes": "分钟",
"Availability": "可用性", "Availability": "可用性",
"Loops Instances": "循环实例" "Loops Instances": "循环实例",
"Disinformation Instances": "虚假信息实例"
} }

View File

@ -1540,6 +1540,19 @@ def html_profile(signing_priv_key_pem: str,
'EX: html_profile unable to read 2 ' + 'EX: html_profile unable to read 2 ' +
follow_requests_filename + ' [ex]') follow_requests_filename + ' [ex]')
if follow_requests_list is not None: if follow_requests_list is not None:
# custom disinformation domains file
disinfo_filename = \
data_dir(base_dir) + '/disinfo.json'
if not is_a_file(disinfo_filename):
# default disinformation domains file
disinfo_filename = base_dir + '/cwlists/iftas.json'
# load disinformation domains file
disinfo_domains = load_json(disinfo_filename)
# string which gets appended if follower domain is in
# the disinformation domains list
disinfo_str = \
' (' + translate['Disinformation Instances'] + ')'
# for each follow request pending
for follower_handle in follow_requests_list: for follower_handle in follow_requests_list:
if not follower_handle: if not follower_handle:
continue continue
@ -1560,6 +1573,12 @@ def html_profile(signing_priv_key_pem: str,
if follower_domain not in curr_follower_domains: if follower_domain not in curr_follower_domains:
new_follower_domain = '' new_follower_domain = ''
# check disinformation domains list
if disinfo_domains:
if disinfo_domains.get('domains'):
if follower_domain in disinfo_domains:
new_follower_domain += disinfo_str
# Show the handle of the potential follower # Show the handle of the potential follower
# being approved, linking to search on that handle # being approved, linking to search on that handle
base_path: str = '/users/' + nickname base_path: str = '/users/' + nickname