Spaces:
Running
Running
Merge guest-hint: DM hint in all 25 langs instead of bare placeholder
Browse files- lumen_lang.py +27 -0
- lumen_tiktok_flow.py +2 -1
- 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 |
-
|
|
|
|
| 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)
|