mirror of
https://gitverse.ru/kpa39l/gotosocial.git
synced 2026-09-29 09:55:10 +00:00
feat(webclient): Phanpy on web.dedinit.ru; clean footer without pride flags
- phanpy service (openengineering/phanpy:latest) :8383->8080, Caddy vps02 → 10.8.0.2:8383 - custom page_footer.tmpl mounted ro: removes 🏳️🌈/🏳️⚧️/🦥 from footer - scripts/check-pride.sh + check-pride.py: detect LGBTQ flags in GtS templates (unicode-normalized), to run on every image upgrade - STATUS.md: procedure for GtS upgrades - openspec: add-webclient-and-clean-footer
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
#!/usr/bin/env python3
|
||||
"""check-pride — поиск ЛГБТ-символики (🏳️🌈, 🏳️⚧️, ⚧, радуга) в шаблонах GtS.
|
||||
|
||||
Надёжная проверка юникода (нормализация NFC/NFD) в отличие от grep-эмодзи.
|
||||
Использование: check_pride.py <каталог_шаблонов>"""
|
||||
import os
|
||||
import sys
|
||||
|
||||
# Символы в NFKD-форме (нормализуем и искомое, и файлы)
|
||||
TARGETS = ["\U0001f3f3\ufe0f\u200d\U0001f308", # 🏳️🌈
|
||||
"\U0001f3f3\ufe0f\u200d\U000026a7\ufe0f", # 🏳️⚧️
|
||||
"\U000026a7\ufe0f", # ⚧️
|
||||
"pride", "rainbow"]
|
||||
TARGETS_NFKD = [t.replace("\ufe0f", "") for t in ["\U0001f3f3\ufe0f\u200d\U0001f308",
|
||||
"\U0001f3f3\ufe0f\u200d\000026a7\ufe0f"]] # без VS
|
||||
|
||||
|
||||
def main():
|
||||
if len(sys.argv) != 2:
|
||||
print("Usage: check_pride.py <dir>", file=sys.stderr)
|
||||
return 2
|
||||
root = sys.argv[1]
|
||||
import unicodedata
|
||||
targets = TARGETS + TARGETS_NFKD
|
||||
found = []
|
||||
for dirpath, _dirnames, filenames in os.walk(root):
|
||||
for fn in filenames:
|
||||
p = os.path.join(dirpath, fn)
|
||||
try:
|
||||
data = open(p, "rb").read().decode("utf-8", errors="ignore")
|
||||
except OSError:
|
||||
continue
|
||||
nfd = unicodedata.normalize("NFD", data)
|
||||
nfkd = unicodedata.normalize("NFKD", data)
|
||||
for t in targets:
|
||||
tnfd = unicodedata.normalize("NFD", t)
|
||||
if tnfd in nfd or t in nfkd or t.lower() in data.lower():
|
||||
found.append((p, t))
|
||||
break
|
||||
if found:
|
||||
print("ОБНАРУЖЕНЫ ЛГБТ-символы:")
|
||||
for p, t in found[:10]:
|
||||
print(f" {p}: {t!r}")
|
||||
return 1
|
||||
print("OK: флагов не найдено")
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
||||
Reference in New Issue
Block a user