fix(downloads): Facebook files get their upload date, non-Latin names their letters
Since 2026-10-28 the signed-in Facebook read gives no upload date, so every Facebook file since was named 0000-00-00 in Season_0 (31 on prod, none before). The signed-out read that already titles these downloads carries the date, so it now lends that too when the signed-in read has none (backfill.public_title_info is now public_page_info). On-disk names dropped every letter outside the Latin script, so a Hebrew, Cyrillic, Greek or CJK uploader went to one shared "untitled" folder (prod asset 503). anyascii now writes them in Latin letters (Сергей Иванов -> Sergei_Ivanov); Latin and accented names are unchanged.
This commit is contained in:
@@ -26,9 +26,21 @@ def test_sanitize_output_is_pure_ascii_without_spaces():
|
||||
assert _is_ascii_slug(out), out
|
||||
|
||||
|
||||
def test_sanitize_non_latin_falls_back_not_crashes():
|
||||
# A title with no ASCII base collapses to the untitled fallback rather than an empty name.
|
||||
assert storage.sanitize("日本語") == "untitled"
|
||||
def test_sanitize_writes_a_non_latin_name_in_latin_letters():
|
||||
# Prod asset 503: a Hebrew uploader name was dropped whole, so the file went to "untitled/", the
|
||||
# folder every Hebrew, Cyrillic, Greek or CJK name would share — one show in Plex for all of them.
|
||||
names = ("מַלכָּה אָדוֹם", "Сергей Иванов", "Ελληνικά Νέα", "日本語", "محمد علي")
|
||||
slugs = [storage.sanitize(n) for n in names]
|
||||
for name, slug in zip(names, slugs, strict=True):
|
||||
assert _is_ascii_slug(slug) and slug != "untitled", (name, slug)
|
||||
assert len(set(slugs)) == len(slugs), slugs # two names, two folders
|
||||
# The measured spellings (anyascii 0.3.3, the locked one).
|
||||
assert slugs == ["mlkhh_dvm", "Sergei_Ivanov", "Ellinika_Nea", "RiBenYu", "mhmd_ly"]
|
||||
|
||||
|
||||
def test_sanitize_falls_back_when_nothing_is_left():
|
||||
# Emoji and symbols are dropped, and a name of nothing else still gets a folder.
|
||||
assert storage.sanitize("🎉🎉") == "untitled"
|
||||
|
||||
|
||||
def test_display_filename_uses_underscores_and_ascii():
|
||||
|
||||
Reference in New Issue
Block a user