SilverElixir commited on
Commit
6b895d8
·
2 Parent(s): ca451cb1798337

Merge guest-hint: DM hint in all 25 langs instead of bare placeholder

Browse files
Files changed (3) hide show
  1. lumen_lang.py +27 -0
  2. lumen_tiktok_flow.py +2 -1
  3. tests/test_bot_tiktok.py +22 -0
lumen_lang.py CHANGED
@@ -599,6 +599,14 @@ STRINGS: dict[str, dict[str, str]] = {
599
  "ru": "Слайдшоу TikTok: {shown}/{total}",
600
  "uk": "Слайдшоу TikTok: {shown}/{total}",
601
  },
 
 
 
 
 
 
 
 
602
  # ── Статусы ──
603
  "status_generating_image": {
604
  "be": "Генерую малюнак",
@@ -748,6 +756,7 @@ PACK_PT: dict[str, str] = {
748
  "tiktok_author": "Autor do TikTok",
749
  "tiktok_music": "Música do TikTok",
750
  "tiktok_dl_slideshow": "Apresentação de slides do TikTok: {shown}/{total}",
 
751
  "status_generating_image": "Gerando imagem",
752
  "status_voicing": "Convertendo texto em voz",
753
  "status_taking_longer": "Isso vai demorar um pouco mais…",
@@ -829,6 +838,7 @@ PACK_AR: dict[str, str] = {
829
  "tiktok_author": "مؤلف TikTok",
830
  "tiktok_music": "موسيقى من TikTok",
831
  "tiktok_dl_slideshow": "عرض شرائح TikTok: {shown}/{total}",
 
832
  "status_generating_image": "جارٍ توليد الصورة",
833
  "status_voicing": "جارٍ تحويل النص إلى صوت",
834
  "status_taking_longer": "سيستغرق هذا وقتًا أطول قليلًا…",
@@ -910,6 +920,7 @@ PACK_TR: dict[str, str] = {
910
  "tiktok_author": "TikTok yazarı",
911
  "tiktok_music": "TikTok müziği",
912
  "tiktok_dl_slideshow": "TikTok slayt gösterisi: {shown}/{total}",
 
913
  "status_generating_image": "Görsel oluşturuluyor",
914
  "status_voicing": "Metin seslendiriliyor",
915
  "status_taking_longer": "Bu biraz daha uzun sürecek…",
@@ -991,6 +1002,7 @@ PACK_DE: dict[str, str] = {
991
  "tiktok_author": "TikTok-Autor",
992
  "tiktok_music": "Musik von TikTok",
993
  "tiktok_dl_slideshow": "TikTok-Diashow: {shown}/{total}",
 
994
  "status_generating_image": "Bild wird erzeugt",
995
  "status_voicing": "Text wird vertont",
996
  "status_taking_longer": "Das dauert etwas länger…",
@@ -1072,6 +1084,7 @@ PACK_FR: dict[str, str] = {
1072
  "tiktok_author": "Auteur TikTok",
1073
  "tiktok_music": "Musique de TikTok",
1074
  "tiktok_dl_slideshow": "Diaporama TikTok : {shown}/{total}",
 
1075
  "status_generating_image": "Génération de l'image",
1076
  "status_voicing": "Conversion du texte en voix",
1077
  "status_taking_longer": "Ça va prendre un peu plus de temps…",
@@ -1153,6 +1166,7 @@ PACK_IT: dict[str, str] = {
1153
  "tiktok_author": "Autore TikTok",
1154
  "tiktok_music": "Musica di TikTok",
1155
  "tiktok_dl_slideshow": "Presentazione TikTok: {shown}/{total}",
 
1156
  "status_generating_image": "Generazione dell'immagine",
1157
  "status_voicing": "Conversione del testo in voce",
1158
  "status_taking_longer": "Ci vorrà un po' più di tempo…",
@@ -1234,6 +1248,7 @@ PACK_HI: dict[str, str] = {
1234
  "tiktok_author": "TikTok लेखक",
1235
  "tiktok_music": "TikTok संगीत",
1236
  "tiktok_dl_slideshow": "TikTok स्लाइडशो: {shown}/{total}",
 
1237
  "status_generating_image": "चित्र बनाया जा रहा है",
1238
  "status_voicing": "टेक्स्ट को आवाज़ दी जा रही है",
1239
  "status_taking_longer": "इसमें थोड़ा और समय लगेगा…",
@@ -1315,6 +1330,7 @@ PACK_ID: dict[str, str] = {
1315
  "tiktok_author": "Penulis TikTok",
1316
  "tiktok_music": "Musik dari TikTok",
1317
  "tiktok_dl_slideshow": "Tayangan slide TikTok: {shown}/{total}",
 
1318
  "status_generating_image": "Membuat gambar",
1319
  "status_voicing": "Mengucapkan teks",
1320
  "status_taking_longer": "Ini akan memakan waktu sedikit lebih lama…",
@@ -1396,6 +1412,7 @@ PACK_MS: dict[str, str] = {
1396
  "tiktok_author": "Pengarang TikTok",
1397
  "tiktok_music": "Muzik dari TikTok",
1398
  "tiktok_dl_slideshow": "Tayangan slaid TikTok: {shown}/{total}",
 
1399
  "status_generating_image": "Menjana gambar",
1400
  "status_voicing": "Mengucapkan teks",
1401
  "status_taking_longer": "Ini akan mengambil masa sedikit lebih lama…",
@@ -1477,6 +1494,7 @@ PACK_VI: dict[str, str] = {
1477
  "tiktok_author": "Tác giả TikTok",
1478
  "tiktok_music": "Nhạc từ TikTok",
1479
  "tiktok_dl_slideshow": "Trình chiếu TikTok: {shown}/{total}",
 
1480
  "status_generating_image": "Đang tạo ảnh",
1481
  "status_voicing": "Đang đọc văn bản",
1482
  "status_taking_longer": "Việc này sẽ mất lâu hơn một chút…",
@@ -1558,6 +1576,7 @@ PACK_TH: dict[str, str] = {
1558
  "tiktok_author": "ผู้เขียน TikTok",
1559
  "tiktok_music": "เพลงจาก TikTok",
1560
  "tiktok_dl_slideshow": "สไลด์โชว์ TikTok: {shown}/{total}",
 
1561
  "status_generating_image": "กำลังสร้างรูปภาพ",
1562
  "status_voicing": "กำลังอ่านข้อความ",
1563
  "status_taking_longer": "อันนี้จะใช้เวลานานกว่านิดหน่อย…",
@@ -1639,6 +1658,7 @@ PACK_FA: dict[str, str] = {
1639
  "tiktok_author": "نویسنده TikTok",
1640
  "tiktok_music": "موسیقی از TikTok",
1641
  "tiktok_dl_slideshow": "اسلایدشوی TikTok: {shown}/{total}",
 
1642
  "status_generating_image": "در حال تولید تصویر",
1643
  "status_voicing": "در حال تبدیل متن به گفتار",
1644
  "status_taking_longer": "این کمی بیشتر طول می‌کشد…",
@@ -1720,6 +1740,7 @@ PACK_UR: dict[str, str] = {
1720
  "tiktok_author": "TikTok مصنف",
1721
  "tiktok_music": "TikTok موسیقی",
1722
  "tiktok_dl_slideshow": "TikTok سلائیڈ شو: {shown}/{total}",
 
1723
  "status_generating_image": "تصویر بنائی جا رہی ہے",
1724
  "status_voicing": "متن کو آواز دی جا رہی ہے",
1725
  "status_taking_longer": "اس میں تھوڑا اور وقت لگے گا…",
@@ -1801,6 +1822,7 @@ PACK_UZ: dict[str, str] = {
1801
  "tiktok_author": "TikTok muallifi",
1802
  "tiktok_music": "TikTok musiqasi",
1803
  "tiktok_dl_slideshow": "TikTok slayd-shousi: {shown}/{total}",
 
1804
  "status_generating_image": "Rasm yaratilmoqda",
1805
  "status_voicing": "Matn ovozlanmoqda",
1806
  "status_taking_longer": "Bu biroz ko'proq vaqt oladi…",
@@ -1882,6 +1904,7 @@ PACK_BN: dict[str, str] = {
1882
  "tiktok_author": "TikTok লেখক",
1883
  "tiktok_music": "TikTok সঙ্গীত",
1884
  "tiktok_dl_slideshow": "TikTok স্লাইডশো: {shown}/{total}",
 
1885
  "status_generating_image": "ছবি ���ৈরি হচ্ছে",
1886
  "status_voicing": "টেক্সটে কণ্ঠ দেওয়া হচ্ছে",
1887
  "status_taking_longer": "এতে আরও একটু সময় লাগবে…",
@@ -1963,6 +1986,7 @@ PACK_FIL: dict[str, str] = {
1963
  "tiktok_author": "May-akda ng TikTok",
1964
  "tiktok_music": "Musika mula sa TikTok",
1965
  "tiktok_dl_slideshow": "Slideshow ng TikTok: {shown}/{total}",
 
1966
  "status_generating_image": "Gumuguhit ng larawan",
1967
  "status_voicing": "Binabasa ang text",
1968
  "status_taking_longer": "Medyo matatagalan ito…",
@@ -2044,6 +2068,7 @@ PACK_PL: dict[str, str] = {
2044
  "tiktok_author": "Autor TikToka",
2045
  "tiktok_music": "Muzyka z TikToka",
2046
  "tiktok_dl_slideshow": "Pokaz slajdów TikTok: {shown}/{total}",
 
2047
  "status_generating_image": "Generuję obraz",
2048
  "status_voicing": "Odczytuję tekst",
2049
  "status_taking_longer": "To zajmie trochę więcej czasu…",
@@ -2125,6 +2150,7 @@ PACK_NL: dict[str, str] = {
2125
  "tiktok_author": "TikTok-auteur",
2126
  "tiktok_music": "Muziek van TikTok",
2127
  "tiktok_dl_slideshow": "Diavoorstelling TikTok: {shown}/{total}",
 
2128
  "status_generating_image": "Afbeelding genereren",
2129
  "status_voicing": "Tekst uitspreken",
2130
  "status_taking_longer": "Dit duurt iets langer…",
@@ -2206,6 +2232,7 @@ PACK_ZU: dict[str, str] = {
2206
  "tiktok_author": "Umbhali we-TikTok",
2207
  "tiktok_music": "Umculo ovela ku-TikTok",
2208
  "tiktok_dl_slideshow": "Isilayidi se-TikTok: {shown}/{total}",
 
2209
  "status_generating_image": "Kudweba isithombe",
2210
  "status_voicing": "Kufundwa umbiko",
2211
  "status_taking_longer": "Lokhu kuzothatha isikhathi eside…",
 
599
  "ru": "Слайдшоу TikTok: {shown}/{total}",
600
  "uk": "Слайдшоу TikTok: {shown}/{total}",
601
  },
602
+ "tiktok_guest_dm_hint": {
603
+ "be": "Відэа і слайдшоў спампоўваю толькі ў асабістых паведамленнях — перашлі туды спасылку, і я ўсё зраблю.",
604
+ "en": "I download videos and slideshows only in direct messages — forward the link there and I'll take care of it.",
605
+ "es": "Descargo videos y presentaciones solo en mensajes directos — reenvía el enlace allí y me encargo.",
606
+ "kk": "Видео мен слайдшоуды тек жеке хабарламаларда жүктеймін — сілтемені сонда жібер, қалғанын өзім жасаймын.",
607
+ "ru": "Видео и слайдшоу качаю только в личных сообщениях — перешли туда ссылку, и я всё скачаю.",
608
+ "uk": "Відео та слайдшоу завантажую лише в особистих — перешли туди посилання, і я все зроблю.",
609
+ },
610
  # ── Статусы ──
611
  "status_generating_image": {
612
  "be": "Генерую малюнак",
 
756
  "tiktok_author": "Autor do TikTok",
757
  "tiktok_music": "Música do TikTok",
758
  "tiktok_dl_slideshow": "Apresentação de slides do TikTok: {shown}/{total}",
759
+ "tiktok_guest_dm_hint": "Baixo vídeos e apresentações só em mensagens diretas — encaminhe o link para lá e eu cuido do resto.",
760
  "status_generating_image": "Gerando imagem",
761
  "status_voicing": "Convertendo texto em voz",
762
  "status_taking_longer": "Isso vai demorar um pouco mais…",
 
838
  "tiktok_author": "مؤلف TikTok",
839
  "tiktok_music": "موسيقى من TikTok",
840
  "tiktok_dl_slideshow": "عرض شرائح TikTok: {shown}/{total}",
841
+ "tiktok_guest_dm_hint": "أحمّل الفيديو وعرض الشرائح في الرسائل الخاصة فقط — أعد توجيه الرابط هناك وسأتكفل بالباقي.",
842
  "status_generating_image": "جارٍ توليد الصورة",
843
  "status_voicing": "جارٍ تحويل النص إلى صوت",
844
  "status_taking_longer": "سيستغرق هذا وقتًا أطول قليلًا…",
 
920
  "tiktok_author": "TikTok yazarı",
921
  "tiktok_music": "TikTok müziği",
922
  "tiktok_dl_slideshow": "TikTok slayt gösterisi: {shown}/{total}",
923
+ "tiktok_guest_dm_hint": "Video ve slaytları yalnızca direkt mesajlarda indiriyorum — bağlantıyı oraya ilet, gerisini ben hallederim.",
924
  "status_generating_image": "Görsel oluşturuluyor",
925
  "status_voicing": "Metin seslendiriliyor",
926
  "status_taking_longer": "Bu biraz daha uzun sürecek…",
 
1002
  "tiktok_author": "TikTok-Autor",
1003
  "tiktok_music": "Musik von TikTok",
1004
  "tiktok_dl_slideshow": "TikTok-Diashow: {shown}/{total}",
1005
+ "tiktok_guest_dm_hint": "Videos und Diashows lade ich nur in Direktnachrichten herunter — leite den Link dorthin weiter, um den Rest kümmere ich mich.",
1006
  "status_generating_image": "Bild wird erzeugt",
1007
  "status_voicing": "Text wird vertont",
1008
  "status_taking_longer": "Das dauert etwas länger…",
 
1084
  "tiktok_author": "Auteur TikTok",
1085
  "tiktok_music": "Musique de TikTok",
1086
  "tiktok_dl_slideshow": "Diaporama TikTok : {shown}/{total}",
1087
+ "tiktok_guest_dm_hint": "Je télécharge vidéos et diaporamas uniquement en messages privés — transfère le lien là-bas, je m'occupe du reste.",
1088
  "status_generating_image": "Génération de l'image",
1089
  "status_voicing": "Conversion du texte en voix",
1090
  "status_taking_longer": "Ça va prendre un peu plus de temps…",
 
1166
  "tiktok_author": "Autore TikTok",
1167
  "tiktok_music": "Musica di TikTok",
1168
  "tiktok_dl_slideshow": "Presentazione TikTok: {shown}/{total}",
1169
+ "tiktok_guest_dm_hint": "Scarico video e presentazioni solo nei messaggi diretti — inoltra il link lì e penso io al resto.",
1170
  "status_generating_image": "Generazione dell'immagine",
1171
  "status_voicing": "Conversione del testo in voce",
1172
  "status_taking_longer": "Ci vorrà un po' più di tempo…",
 
1248
  "tiktok_author": "TikTok लेखक",
1249
  "tiktok_music": "TikTok संगीत",
1250
  "tiktok_dl_slideshow": "TikTok स्लाइडशो: {shown}/{total}",
1251
+ "tiktok_guest_dm_hint": "वीडियो और स्लाइडशो सिर्फ डायरेक्ट मैसेज में डाउनलोड करता हूँ — लिंक वहाँ भेज दो, बाकी मैं संभाल लूँगा।",
1252
  "status_generating_image": "चित्र बनाया जा रहा है",
1253
  "status_voicing": "टेक्स्ट को आवाज़ दी जा रही है",
1254
  "status_taking_longer": "इसमें थोड़ा और समय लगेगा…",
 
1330
  "tiktok_author": "Penulis TikTok",
1331
  "tiktok_music": "Musik dari TikTok",
1332
  "tiktok_dl_slideshow": "Tayangan slide TikTok: {shown}/{total}",
1333
+ "tiktok_guest_dm_hint": "Saya mengunduh video dan slideshow hanya di pesan langsung — teruskan tautannya ke sana, sisanya biar saya yang urus.",
1334
  "status_generating_image": "Membuat gambar",
1335
  "status_voicing": "Mengucapkan teks",
1336
  "status_taking_longer": "Ini akan memakan waktu sedikit lebih lama…",
 
1412
  "tiktok_author": "Pengarang TikTok",
1413
  "tiktok_music": "Muzik dari TikTok",
1414
  "tiktok_dl_slideshow": "Tayangan slaid TikTok: {shown}/{total}",
1415
+ "tiktok_guest_dm_hint": "Saya memuat turun video dan tayangan slaid hanya dalam mesej langsung — majukan pautan ke sana, selebihnya saya uruskan.",
1416
  "status_generating_image": "Menjana gambar",
1417
  "status_voicing": "Mengucapkan teks",
1418
  "status_taking_longer": "Ini akan mengambil masa sedikit lebih lama…",
 
1494
  "tiktok_author": "Tác giả TikTok",
1495
  "tiktok_music": "Nhạc từ TikTok",
1496
  "tiktok_dl_slideshow": "Trình chiếu TikTok: {shown}/{total}",
1497
+ "tiktok_guest_dm_hint": "Tôi chỉ tải video và trình chiếu trong tin nhắn trực tiếp — chuyển tiếp liên kết vào đó, phần còn lại để tôi lo.",
1498
  "status_generating_image": "Đang tạo ảnh",
1499
  "status_voicing": "Đang đọc văn bản",
1500
  "status_taking_longer": "Việc này sẽ mất lâu hơn một chút…",
 
1576
  "tiktok_author": "ผู้เขียน TikTok",
1577
  "tiktok_music": "เพลงจาก TikTok",
1578
  "tiktok_dl_slideshow": "สไลด์โชว์ TikTok: {shown}/{total}",
1579
+ "tiktok_guest_dm_hint": "ฉันดาวน์โหลดวิดีโอและสไลด์โชว์เฉพาะในข้อความส่วนตัว — ส่งลิงก์ไปที่นั่น ที่เหลือฉันจัดการเอง",
1580
  "status_generating_image": "กำลังสร้างรูปภาพ",
1581
  "status_voicing": "กำลังอ่านข้อความ",
1582
  "status_taking_longer": "อันนี้จะใช้เวลานานกว่านิดหน่อย…",
 
1658
  "tiktok_author": "نویسنده TikTok",
1659
  "tiktok_music": "موسیقی از TikTok",
1660
  "tiktok_dl_slideshow": "اسلایدشوی TikTok: {shown}/{total}",
1661
+ "tiktok_guest_dm_hint": "ویدیو و اسلایدشو را فقط در پیام‌های خصوصی دانلود می‌کنم — لینک را آنجا بفرست، بقیه‌اش با من.",
1662
  "status_generating_image": "در حال تولید تصویر",
1663
  "status_voicing": "در حال تبدیل متن به گفتار",
1664
  "status_taking_longer": "این کمی بیشتر طول می‌کشد…",
 
1740
  "tiktok_author": "TikTok مصنف",
1741
  "tiktok_music": "TikTok موسیقی",
1742
  "tiktok_dl_slideshow": "TikTok سلائیڈ شو: {shown}/{total}",
1743
+ "tiktok_guest_dm_hint": "ویڈیو اور سلائیڈ شو صرف ڈائریکٹ پیغامات میں ڈاؤن لوڈ کرتا ہوں — لنک وہاں بھیج دو، باقی میں سنبھال لوں گا۔",
1744
  "status_generating_image": "تصویر بنائی جا رہی ہے",
1745
  "status_voicing": "متن کو آواز دی جا رہی ہے",
1746
  "status_taking_longer": "اس میں تھوڑا اور وقت لگے گا…",
 
1822
  "tiktok_author": "TikTok muallifi",
1823
  "tiktok_music": "TikTok musiqasi",
1824
  "tiktok_dl_slideshow": "TikTok slayd-shousi: {shown}/{total}",
1825
+ "tiktok_guest_dm_hint": "Video va slayd-shoularni faqat shaxsiy xabarlarda yuklayman — havolani o‘sha yerga yubor, qolganini o‘zim qilaman.",
1826
  "status_generating_image": "Rasm yaratilmoqda",
1827
  "status_voicing": "Matn ovozlanmoqda",
1828
  "status_taking_longer": "Bu biroz ko'proq vaqt oladi…",
 
1904
  "tiktok_author": "TikTok লেখক",
1905
  "tiktok_music": "TikTok সঙ্গীত",
1906
  "tiktok_dl_slideshow": "TikTok স্লাইডশো: {shown}/{total}",
1907
+ "tiktok_guest_dm_hint": "ভিডিও আর স্লাইডশো শুধু ডাইরেক্ট মেসেজে ডাউনলোড করি — লিংকটা ওখানে পাঠিয়ে দাও, বাকিটা আমি দেখছি।",
1908
  "status_generating_image": "ছবি ���ৈরি হচ্ছে",
1909
  "status_voicing": "টেক্সটে কণ্ঠ দেওয়া হচ্ছে",
1910
  "status_taking_longer": "এতে আরও একটু সময় লাগবে…",
 
1986
  "tiktok_author": "May-akda ng TikTok",
1987
  "tiktok_music": "Musika mula sa TikTok",
1988
  "tiktok_dl_slideshow": "Slideshow ng TikTok: {shown}/{total}",
1989
+ "tiktok_guest_dm_hint": "Nagda-download lang ako ng video at slideshow sa direct messages — i-forward ang link doon, ako nang bahala sa iba.",
1990
  "status_generating_image": "Gumuguhit ng larawan",
1991
  "status_voicing": "Binabasa ang text",
1992
  "status_taking_longer": "Medyo matatagalan ito…",
 
2068
  "tiktok_author": "Autor TikToka",
2069
  "tiktok_music": "Muzyka z TikToka",
2070
  "tiktok_dl_slideshow": "Pokaz slajdów TikTok: {shown}/{total}",
2071
+ "tiktok_guest_dm_hint": "Filmy i pokazy slajdów pobieram tylko w wiadomościach prywatnych — prześlij tam link, resztą się zajmę.",
2072
  "status_generating_image": "Generuję obraz",
2073
  "status_voicing": "Odczytuję tekst",
2074
  "status_taking_longer": "To zajmie trochę więcej czasu…",
 
2150
  "tiktok_author": "TikTok-auteur",
2151
  "tiktok_music": "Muziek van TikTok",
2152
  "tiktok_dl_slideshow": "Diavoorstelling TikTok: {shown}/{total}",
2153
+ "tiktok_guest_dm_hint": "Ik download video's en diavoorstellingen alleen in privéberichten — stuur de link daarheen, dan regel ik de rest.",
2154
  "status_generating_image": "Afbeelding genereren",
2155
  "status_voicing": "Tekst uitspreken",
2156
  "status_taking_longer": "Dit duurt iets langer…",
 
2232
  "tiktok_author": "Umbhali we-TikTok",
2233
  "tiktok_music": "Umculo ovela ku-TikTok",
2234
  "tiktok_dl_slideshow": "Isilayidi se-TikTok: {shown}/{total}",
2235
+ "tiktok_guest_dm_hint": "Ngilanda amavidiyo nama-slideshow kuma-DM kuphela — dlulisa isixhumanisi lapho, okunye ngizokunakekela.",
2236
  "status_generating_image": "Kudweba isithombe",
2237
  "status_voicing": "Kufundwa umbiko",
2238
  "status_taking_longer": "Lokhu kuzothatha isikhathi eside…",
lumen_tiktok_flow.py CHANGED
@@ -375,7 +375,8 @@ async def _send_tiktok_single_video(
375
  async def handle_tiktok(message: Message, url: str) -> None:
376
  import bot
377
  if bot.is_guest_message(message):
378
- await bot._answer_guest_text(message, f"Ссылка на TikTok распознана: {url}")
 
379
  return
380
  status = await bot._tg_call(message.reply, bot._t(message.chat.id, "tiktok_processing"))
381
  try:
 
375
  async def handle_tiktok(message: Message, url: str) -> None:
376
  import bot
377
  if bot.is_guest_message(message):
378
+ # Гостю файл не отдать (answerGuestQuery — только текст): зовём в личку вместо заглушки.
379
+ await bot._answer_guest_text(message, bot._t(message.chat.id, "tiktok_guest_dm_hint"))
380
  return
381
  status = await bot._tg_call(message.reply, bot._t(message.chat.id, "tiktok_processing"))
382
  try:
tests/test_bot_tiktok.py CHANGED
@@ -340,6 +340,28 @@ def test_handle_tiktok_sound_answers_guest_without_raising():
340
  bot._answer_guest_text = original
341
 
342
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
343
  def test_send_tiktok_music_filename_sanitizes_slashes_and_control_chars():
344
  # Регрессия AUD-E-005: слэш/контролы из чужого названия в multipart-имени.
345
  incoming = _FakeIncomingMessage(999602)
 
340
  bot._answer_guest_text = original
341
 
342
 
343
+ def test_handle_tiktok_guest_gets_dm_hint_not_placeholder():
344
+ # Гостю файл не отдать — вместо сухой "ссылка распознана" зовём в личку (ключ, все 25 языков).
345
+ incoming = _FakeIncomingMessage(999503)
346
+ incoming.guest_query_id = "guest456"
347
+ answered = []
348
+
349
+ async def fake_answer_guest_text(message, text):
350
+ answered.append(text)
351
+
352
+ original = bot._answer_guest_text
353
+ bot._answer_guest_text = fake_answer_guest_text
354
+ try:
355
+ asyncio.run(bot.handle_tiktok(incoming, "https://vt.tiktok.com/xxxxx/"))
356
+ assert len(answered) == 1
357
+ assert "распознана" not in answered[0]
358
+ # Дефолтный язык чата — английский: сверяем с ключом дословно.
359
+ assert answered[0] == bot._t(999503, "tiktok_guest_dm_hint")
360
+ finally:
361
+ bot._answer_guest_text = original
362
+ bot.chat_state.pop(999503, None)
363
+
364
+
365
  def test_send_tiktok_music_filename_sanitizes_slashes_and_control_chars():
366
  # Регрессия AUD-E-005: слэш/контролы из чужого названия в multipart-имени.
367
  incoming = _FakeIncomingMessage(999602)