diff --git a/data/locale/ar.json b/data/locale/ar.json
index c63610e..120bfbb 100644
--- a/data/locale/ar.json
+++ b/data/locale/ar.json
@@ -1,7 +1,10 @@
{
"lang_name": "العربية🇸🇦",
- "error": "حدث خطأ ما🥲\nهل يمكنك المحاولة مرة أخرى؟…",
- "link_error": "ربما يوجد خطأ في الرابط الذي أرسلته🥲",
+ "error": "عفوًا! حدث خطأ ما 😅\nيرجى المحاولة مرة أخرى بعد قليل.",
+ "link_error": "هممم، لم أتمكن من التعرف على هذا الرابط 🤔\nتأكد من أنه رابط فيديو TikTok صالح!",
+ "video_upload_hint": "يمكنني فقط إزالة العلامات المائية من روابط TikTok، وليس من الفيديوهات المرفوعة 🎬\n\nيرجى إرسال رابط فيديو TikTok بدلاً من ذلك!",
+ "non_tiktok_link": "هذا البوت يعمل فقط مع روابط TikTok 🔗\n\nيرجى إرسال رابط من TikTok (tiktok.com أو vm.tiktok.com)",
+ "send_link_prompt": "أرسل لي رابط فيديو TikTok لتنزيله بدون علامة مائية! 🎥",
"lang_start": "تم تعيين اللغة إلى العربية🇸🇦.\nيمكن تغييرها باستخدام الأمر /lang",
"lang": "تم تعيين اللغة إلى العربية🇸🇦",
"start": "لقد قمت بتشغيل No Watermark TikTok🤖\n\nيدعم هذا البوت تنزيل:\n📹الفيديو، 🖼الصور و 🔈الصوت\nمن TikTok بدون علامة مائية\n\nيمكنك أيضًا الاشتراك في قناتنا للحصول على آخر الأخبار حول حالة البوت والتحديثات والإعلانات!\n@ttgrab\n\nأرسل رابط الفيديو للبدء",
@@ -38,10 +41,11 @@
"error_deleted": "تم حذف هذا الفيديو من قبل المنشئ.",
"error_private": "هذا الفيديو خاص ولا يمكن الوصول إليه.",
"error_region": "هذا الفيديو غير متوفر في منطقتك.",
- "error_network": "حدث خطأ في الشبكة.\nيرجى المحاولة مرة أخرى.",
- "error_rate_limit": "طلبات كثيرة جدًا.\nيرجى الانتظار قليلاً والمحاولة مرة أخرى.",
+ "error_network": "مشكلة في الاتصال 📡\nيرجى المحاولة مرة أخرى بعد قليل.",
+ "error_rate_limit": "تمهل قليلاً! 🐢\nيرجى الانتظار قليلاً والمحاولة مرة أخرى.",
"error_too_long": "هذا الفيديو طويل جدًا.\nالحد الأقصى المسموح به هو 30 دقيقة.",
"error_queue_full": "يرجى الانتظار!\nلديك بالفعل {0} فيديوهات قيد المعالجة. حاول مرة أخرى بعد قليل.",
"try_again_button": "حاول مرة أخرى",
- "inline_retry_attempt": "🔄 المحاولة {0} من {1}..."
+ "inline_retry_attempt": "🔄 المحاولة {0} من {1}...",
+ "tiktok_links_only": "هذا البوت يدعم فقط روابط TikTok 🔗\n\nيرجى إرسال رابط فيديو TikTok لتنزيله بدون علامة مائية!"
}
diff --git a/data/locale/en.json b/data/locale/en.json
index ec370c4..cdc3f2c 100644
--- a/data/locale/en.json
+++ b/data/locale/en.json
@@ -1,7 +1,10 @@
{
"lang_name": "English🇺🇸",
- "error": "Something went wrong🥲\nCould you please try again?…",
- "link_error": "Probably something wrong with your link🥲",
+ "error": "Oops! Something went wrong 😅\nPlease try again in a moment.",
+ "link_error": "Hmm, I couldn't recognize this link 🤔\nMake sure it's a valid TikTok video link!",
+ "video_upload_hint": "I can only remove watermarks from TikTok links, not from uploaded videos 🎬\n\nPlease send me a TikTok video link instead!",
+ "non_tiktok_link": "This bot only works with TikTok links 🔗\n\nPlease send a link from TikTok (tiktok.com or vm.tiktok.com)",
+ "send_link_prompt": "Send me a TikTok video link to download it without watermark! 🎥",
"lang_start": "The language is set to English🇺🇸.\nIt can be changed with the /lang command",
"lang": "The language is set to English🇺🇸",
"start": "You have launched No Watermark TikTok🤖\n\nThis bot supports download of:\n📹Video, 🖼Images and 🔈Audio\nfrom TikTok without watermark\n\nYou can also subscribe to our channel to get the latest news about bot status, updates and news!\n@ttgrab\n\nSend video link to get started",
@@ -38,10 +41,11 @@
"error_deleted": "This video has been deleted by the creator.",
"error_private": "This video is private and cannot be accessed.",
"error_region": "This video is not available in your region.",
- "error_network": "Network error occurred.\nPlease try again.",
- "error_rate_limit": "Too many requests.\nPlease wait a moment and try again.",
+ "error_network": "Connection issue 📡\nPlease try again in a moment.",
+ "error_rate_limit": "Whoa, slow down! 🐢\nPlease wait a moment and try again.",
"error_too_long": "This video is too long.\nMaximum allowed duration is 30 minutes.",
"error_queue_full": "Please wait!\nYou already have {0} videos processing. Try again in a moment.",
"try_again_button": "Try Again",
- "inline_retry_attempt": "🔄 Attempt {0} of {1}..."
+ "inline_retry_attempt": "🔄 Attempt {0} of {1}...",
+ "tiktok_links_only": "This bot only supports TikTok links 🔗\n\nPlease send a TikTok video link to download it without watermark!"
}
diff --git a/data/locale/hi.json b/data/locale/hi.json
index d9c8729..720bf7b 100644
--- a/data/locale/hi.json
+++ b/data/locale/hi.json
@@ -1,7 +1,10 @@
{
"lang_name": "हिन्दी🇮🇳",
- "error": "कुछ गलत हो गया🥲\nक्या आप फिर से कोशिश कर सकते हैं?…",
- "link_error": "शायद आपकी लिंक में कुछ गड़बड़ है🥲",
+ "error": "उफ़! कुछ गलत हो गया 😅\nकृपया थोड़ी देर बाद फिर से प्रयास करें।",
+ "link_error": "हम्म, मैं इस लिंक को नहीं पहचान पा रहा 🤔\nसुनिश्चित करें कि यह एक वैध TikTok वीडियो लिंक है!",
+ "video_upload_hint": "मैं केवल TikTok लिंक से वॉटरमार्क हटा सकता हूं, अपलोड किए गए वीडियो से नहीं 🎬\n\nकृपया मुझे TikTok वीडियो लिंक भेजें!",
+ "non_tiktok_link": "यह बॉट केवल TikTok लिंक के साथ काम करता है 🔗\n\nकृपया TikTok (tiktok.com या vm.tiktok.com) से लिंक भेजें",
+ "send_link_prompt": "मुझे TikTok वीडियो लिंक भेजें ताकि इसे बिना वॉटरमार्क के डाउनलोड किया जा सके! 🎥",
"lang_start": "भाषा हिन्दी🇮🇳 पर सेट कर दी गई है।\nइसे /lang कमांड से बदला जा सकता है",
"lang": "भाषा हिन्दी🇮🇳 पर सेट है",
"start": "आपने No Watermark TikTok🤖 शुरू किया है\n\nयह बॉट TikTok से बिना वॉटरमार्क:\n📹वीडियो, 🖼छवियाँ और 🔈ऑडियो\nडाउनलोड करने का समर्थन करता है\n\nआप बॉट की स्थिति, अपडेट और खबरों के लिए हमारे चैनल को भी सब्सक्राइब कर सकते हैं!\n@ttgrab\n\nशुरू करने के लिए वीडियो लिंक भेजें",
@@ -38,10 +41,11 @@
"error_deleted": "यह वीडियो निर्माता द्वारा हटा दिया गया है।",
"error_private": "यह वीडियो निजी है और एक्सेस नहीं किया जा सकता।",
"error_region": "यह वीडियो आपके क्षेत्र में उपलब्ध नहीं है।",
- "error_network": "नेटवर्क त्रुटि हुई।\nकृपया फिर से प्रयास करें।",
- "error_rate_limit": "बहुत अधिक अनुरोध।\nकृपया कुछ देर प्रतीक्षा करें और फिर से प्रयास करें।",
+ "error_network": "कनेक्शन समस्या 📡\nकृपया थोड़ी देर बाद फिर से प्रयास करें।",
+ "error_rate_limit": "अरे, धीरे चलो! 🐢\nकृपया कुछ देर प्रतीक्षा करें और फिर से प्रयास करें।",
"error_too_long": "यह वीडियो बहुत लंबा है।\nअधिकतम अनुमत अवधि 30 मिनट है।",
"error_queue_full": "कृपया प्रतीक्षा करें!\nआपके पास पहले से {0} वीडियो प्रोसेस हो रहे हैं। कुछ देर बाद फिर से प्रयास करें।",
"try_again_button": "फिर से प्रयास करें",
- "inline_retry_attempt": "🔄 प्रयास {0} में से {1}..."
+ "inline_retry_attempt": "🔄 प्रयास {0} में से {1}...",
+ "tiktok_links_only": "यह बॉट केवल TikTok लिंक का समर्थन करता है 🔗\n\nकृपया वॉटरमार्क के बिना डाउनलोड करने के लिए TikTok वीडियो लिंक भेजें!"
}
diff --git a/data/locale/id.json b/data/locale/id.json
index 6097c29..20113e3 100644
--- a/data/locale/id.json
+++ b/data/locale/id.json
@@ -1,7 +1,10 @@
{
"lang_name": "Bahasa Indonesia🇮🇩",
- "error": "Terjadi kesalahan🥲\nBisa coba lagi?…",
- "link_error": "Mungkin ada yang salah dengan tautanmu🥲",
+ "error": "Ups! Terjadi kesalahan 😅\nSilakan coba lagi sebentar.",
+ "link_error": "Hmm, saya tidak bisa mengenali tautan ini 🤔\nPastikan ini adalah tautan video TikTok yang valid!",
+ "video_upload_hint": "Saya hanya bisa menghapus watermark dari tautan TikTok, bukan dari video yang diunggah 🎬\n\nSilakan kirim tautan video TikTok!",
+ "non_tiktok_link": "Bot ini hanya bekerja dengan tautan TikTok 🔗\n\nSilakan kirim tautan dari TikTok (tiktok.com atau vm.tiktok.com)",
+ "send_link_prompt": "Kirim tautan video TikTok untuk mengunduhnya tanpa watermark! 🎥",
"lang_start": "Bahasa disetel ke Bahasa Indonesia🇮🇩.\nBisa diubah dengan perintah /lang",
"lang": "Bahasa disetel ke Bahasa Indonesia🇮🇩",
"start": "Kamu telah menjalankan No Watermark TikTok🤖\n\nBot ini mendukung unduhan:\n📹Video, 🖼Gambar, dan 🔈Audio\ndari TikTok tanpa watermark\n\nKamu juga bisa berlangganan channel kami untuk mendapatkan kabar terbaru tentang status bot, pembaruan, dan berita!\n@ttgrab\n\nKirim tautan video untuk memulai",
@@ -38,10 +41,11 @@
"error_deleted": "Video ini sudah dihapus oleh pembuatnya.",
"error_private": "Video ini privat dan tidak bisa diakses.",
"error_region": "Video ini tidak tersedia di wilayahmu.",
- "error_network": "Terjadi kesalahan jaringan.\nSilakan coba lagi.",
- "error_rate_limit": "Terlalu banyak permintaan.\nSilakan tunggu sebentar dan coba lagi.",
+ "error_network": "Masalah koneksi 📡\nSilakan coba lagi sebentar.",
+ "error_rate_limit": "Pelan-pelan! 🐢\nSilakan tunggu sebentar dan coba lagi.",
"error_too_long": "Video ini terlalu panjang.\nDurasi maksimum yang diizinkan adalah 30 menit.",
"error_queue_full": "Mohon tunggu!\nKamu sudah memiliki {0} video yang sedang diproses. Coba lagi sebentar.",
"try_again_button": "Coba Lagi",
- "inline_retry_attempt": "🔄 Percobaan {0} dari {1}..."
+ "inline_retry_attempt": "🔄 Percobaan {0} dari {1}...",
+ "tiktok_links_only": "Bot ini hanya mendukung tautan TikTok 🔗\n\nSilakan kirim tautan video TikTok untuk mengunduhnya tanpa watermark!"
}
diff --git a/data/locale/ru.json b/data/locale/ru.json
index 3c27903..64c192d 100644
--- a/data/locale/ru.json
+++ b/data/locale/ru.json
@@ -1,7 +1,10 @@
{
"lang_name": "Русский🇷🇺",
- "error": "Что-то пошло не так🥲\nНе могли бы вы попробовать еще раз?…",
- "link_error": "Возможно что-то не так с вашей ссылкой🥲",
+ "error": "Упс! Что-то пошло не так 😅\nПожалуйста, попробуйте через мгновение.",
+ "link_error": "Хм, не могу распознать эту ссылку 🤔\nУбедитесь, что это действительная ссылка на видео TikTok!",
+ "video_upload_hint": "Я могу удалять водяные знаки только по ссылкам TikTok, а не из загруженных видео 🎬\n\nПожалуйста, отправьте мне ссылку на видео TikTok!",
+ "non_tiktok_link": "Этот бот работает только со ссылками TikTok 🔗\n\nПожалуйста, отправьте ссылку с TikTok (tiktok.com или vm.tiktok.com)",
+ "send_link_prompt": "Отправьте мне ссылку на видео TikTok, чтобы скачать его без водяного знака! 🎥",
"lang_start": "Установлен язык Русский🇷🇺.\nЕго можно изменить командой /lang",
"lang": "Установлен язык Русский🇷🇺",
"start": "Вы запустили No Watermark TikTok🤖\n\nЭтот бот поддерживает загрузку:\n📹Видео, 🖼Изображений и 🔈Аудио\nс TikTok без водяного знака\n\nВы также можете подписаться на наш канал, чтобы получать последние новости о статусе бота, обновлениях и новостях!\n@ttgrab\n\nОтправьте ссылку на видео, чтобы начать",
@@ -38,10 +41,11 @@
"error_deleted": "Это видео было удалено автором.",
"error_private": "Это видео приватное и недоступно.",
"error_region": "Это видео недоступно в вашем регионе.",
- "error_network": "Произошла сетевая ошибка.\nПожалуйста, попробуйте снова.",
- "error_rate_limit": "Слишком много запросов.\nПожалуйста, подождите немного и попробуйте снова.",
+ "error_network": "Проблемы с соединением 📡\nПожалуйста, попробуйте через мгновение.",
+ "error_rate_limit": "Полегче! 🐢\nПожалуйста, подождите немного и попробуйте снова.",
"error_too_long": "Это видео слишком длинное.\nМаксимальная продолжительность — 30 минут.",
"error_queue_full": "Пожалуйста, подождите!\nУ вас уже {0} видео в обработке. Попробуйте через мгновение.",
"try_again_button": "Попробовать снова",
- "inline_retry_attempt": "🔄 Попытка {0} из {1}..."
+ "inline_retry_attempt": "🔄 Попытка {0} из {1}...",
+ "tiktok_links_only": "Этот бот поддерживает только ссылки TikTok 🔗\n\nПожалуйста, отправьте ссылку на видео TikTok, чтобы скачать его без водяного знака!"
}
diff --git a/data/locale/so.json b/data/locale/so.json
index 5c2e242..4a2aa72 100644
--- a/data/locale/so.json
+++ b/data/locale/so.json
@@ -1,7 +1,10 @@
{
"lang_name": "Soomaali🇸🇴",
- "error": "Waxbaa qaldamay🥲\nFadlan mar kale isku day?…",
- "link_error": "Malaha waxbaa ka qaldan link-gaaga🥲",
+ "error": "Waxyaabaa qaldamay 😅\nFadlan isku day mar kale.",
+ "link_error": "Hmm, ma garan karo link-kan 🤔\nHubi in ay tahay link fiidiyow TikTok oo sax ah!",
+ "video_upload_hint": "Waxaan kaliya ka saari karaa watermark-a link-yada TikTok, ma aha fiidiyowyada la soo dhigay 🎬\n\nFadlan ii soo dir link fiidiyow TikTok!",
+ "non_tiktok_link": "Bot-kan waxa uu la shaqeeyaa oo keliya link-yada TikTok 🔗\n\nFadlan soo dir link ka TikTok (tiktok.com ama vm.tiktok.com)",
+ "send_link_prompt": "Ii soo dir link fiidiyow TikTok si aad u soo dejiso isagoon watermark lahayn! 🎥",
"lang_start": "Luqadda waxaa loo dejiyey Soomaali🇸🇴.\nWaxaad ku beddeli kartaa amarka /lang",
"lang": "Luqadda waxaa loo dejiyey Soomaali🇸🇴",
"start": "Waxaad bilowday No Watermark TikTok🤖\n\nBot-kan wuxuu taageeraa soo dejinta:\n📹Fiidiyow, 🖼Sawirro iyo 🔈Cod\nTikTok aan watermark lahayn\n\nWaxaad sidoo kale raaci kartaa kanaalkeenna si aad u hesho wararkii ugu dambeeyay ee xaaladda bot-ka, cusboonaysiinta iyo wararka!\n@ttgrab\n\nDir link-ga fiidiyowga si aad u bilowdo",
@@ -38,10 +41,11 @@
"error_deleted": "Fiidiyowgan waxaa tirtiray abuurahiisa.",
"error_private": "Fiidiyowgan waa qarsoon yahay mana la heli karo.",
"error_region": "Fiidiyowgan laguma heli karo aagaaga.",
- "error_network": "Khalad shabakad ayaa dhacay.\nFadlan isku day mar kale.",
- "error_rate_limit": "Codsiyo badan ayaa la sameeyay.\nFadlan sug wakhti yar oo isku day mar kale.",
+ "error_network": "Dhibaato isku xirka 📡\nFadlan isku day mar kale.",
+ "error_rate_limit": "Hoos u dhig! 🐢\nFadlan sug wakhti yar oo isku day mar kale.",
"error_too_long": "Fiidiyowgan waa dheer yahay.\nMudda ugu badan ee la ogol yahay waa 30 daqiiqo.",
"error_queue_full": "Fadlan sug!\nWaxaad horeba u leedahay {0} fiidiyow oo la hawlgalayo. Isku day mar kale.",
"try_again_button": "Isku day mar kale",
- "inline_retry_attempt": "🔄 Isku day {0} ee {1}..."
+ "inline_retry_attempt": "🔄 Isku day {0} ee {1}...",
+ "tiktok_links_only": "Bot-kan waxa uu taageeraa oo keliya link-yada TikTok 🔗\n\nFadlan soo dir link fiidiyow TikTok si aad u soo dejiso isagoon watermark lahayn!"
}
diff --git a/data/locale/uk.json b/data/locale/uk.json
index c68e610..3940e4e 100644
--- a/data/locale/uk.json
+++ b/data/locale/uk.json
@@ -1,7 +1,10 @@
{
"lang_name": "Українська🇺🇦",
- "error": "Щось пішло не так 🥲\nНе могли б ви спробувати ще раз?…",
- "link_error": "Можливо, щось не так з вашим посиланням🥲",
+ "error": "Ой! Щось пішло не так 😅\nБудь ласка, спробуйте через мить.",
+ "link_error": "Хм, не можу розпізнати це посилання 🤔\nПереконайтеся, що це дійсне посилання на відео TikTok!",
+ "video_upload_hint": "Я можу видаляти водяні знаки лише з посилань TikTok, а не із завантажених відео 🎬\n\nБудь ласка, надішліть мені посилання на відео TikTok!",
+ "non_tiktok_link": "Цей бот працює лише з посиланнями TikTok 🔗\n\nБудь ласка, надішліть посилання з TikTok (tiktok.com або vm.tiktok.com)",
+ "send_link_prompt": "Надішліть мені посилання на відео TikTok, щоб завантажити його без водяного знака! 🎥",
"lang_start": "Встановлено мову Українська🇺🇦.\nЇї можна змінити командою /lang",
"lang": "Встановлено мову Українська🇺🇦",
"start": "Ви запустили No Watermark TikTok🤖\n\nЦей бот підтримує завантаження:\n📹Відео, 🖼Зображень та 🔈Аудіо\nз TikTok без водяного знака\n\nВи також можете підписатися на наш канал, щоб отримувати останні новини про статус бота, оновлення та новини!\n@ttgrab\n\nНадішліть посилання на відео, щоб почати",
@@ -38,10 +41,11 @@
"error_deleted": "Це відео було видалено автором.",
"error_private": "Це відео приватне і недоступне.",
"error_region": "Це відео недоступне у вашому регіоні.",
- "error_network": "Сталася мережева помилка.\nБудь ласка, спробуйте ще раз.",
- "error_rate_limit": "Занадто багато запитів.\nБудь ласка, зачекайте трохи і спробуйте знову.",
+ "error_network": "Проблеми з з'єднанням 📡\nБудь ласка, спробуйте через мить.",
+ "error_rate_limit": "Полегше! 🐢\nБудь ласка, зачекайте трохи і спробуйте знову.",
"error_too_long": "Це відео занадто довге.\nМаксимальна тривалість — 30 хвилин.",
"error_queue_full": "Будь ласка, зачекайте!\nУ вас вже {0} відео в обробці. Спробуйте через мить.",
"try_again_button": "Спробувати знову",
- "inline_retry_attempt": "🔄 Спроба {0} з {1}..."
+ "inline_retry_attempt": "🔄 Спроба {0} з {1}...",
+ "tiktok_links_only": "Цей бот підтримує лише посилання TikTok 🔗\n\nБудь ласка, надішліть посилання на відео TikTok, щоб завантажити його без водяного знака!"
}
diff --git a/data/locale/vi.json b/data/locale/vi.json
index dfc3864..fa5f3b3 100644
--- a/data/locale/vi.json
+++ b/data/locale/vi.json
@@ -1,7 +1,10 @@
{
"lang_name": "Tiếng Việt🇻🇳",
- "error": "Có lỗi xảy ra🥲\nBạn có thể thử lại không?…",
- "link_error": "Có lẽ liên kết của bạn có vấn đề🥲",
+ "error": "Ôi! Có lỗi xảy ra 😅\nVui lòng thử lại sau một chút.",
+ "link_error": "Hmm, tôi không thể nhận diện liên kết này 🤔\nHãy chắc chắn đây là liên kết video TikTok hợp lệ!",
+ "video_upload_hint": "Tôi chỉ có thể xóa watermark từ liên kết TikTok, không phải từ video đã tải lên 🎬\n\nVui lòng gửi cho tôi liên kết video TikTok!",
+ "non_tiktok_link": "Bot này chỉ hoạt động với liên kết TikTok 🔗\n\nVui lòng gửi liên kết từ TikTok (tiktok.com hoặc vm.tiktok.com)",
+ "send_link_prompt": "Gửi cho tôi liên kết video TikTok để tải xuống không có watermark! 🎥",
"lang_start": "Đã đặt ngôn ngữ là Tiếng Việt🇻🇳.\nBạn có thể đổi bằng lệnh /lang",
"lang": "Ngôn ngữ hiện tại: Tiếng Việt🇻🇳",
"start": "Bạn đã khởi chạy No Watermark TikTok🤖\n\nBot này hỗ trợ tải:\n📹Video, 🖼Hình ảnh và 🔈Âm thanh\ntừ TikTok không có watermark\n\nBạn cũng có thể theo dõi kênh của chúng tôi để nhận tin mới nhất về trạng thái bot, cập nhật và thông báo!\n@ttgrab\n\nGửi liên kết video để bắt đầu",
@@ -38,10 +41,11 @@
"error_deleted": "Video này đã bị người tạo xóa.",
"error_private": "Video này ở chế độ riêng tư và không thể truy cập.",
"error_region": "Video này không khả dụng ở khu vực của bạn.",
- "error_network": "Đã xảy ra lỗi mạng.\nVui lòng thử lại.",
- "error_rate_limit": "Quá nhiều yêu cầu.\nVui lòng đợi một chút và thử lại.",
+ "error_network": "Vấn đề kết nối 📡\nVui lòng thử lại sau một chút.",
+ "error_rate_limit": "Từ từ thôi! 🐢\nVui lòng đợi một chút và thử lại.",
"error_too_long": "Video này quá dài.\nThời lượng tối đa cho phép là 30 phút.",
"error_queue_full": "Vui lòng đợi!\nBạn đang có {0} video đang xử lý. Hãy thử lại sau một chút.",
"try_again_button": "Thử lại",
- "inline_retry_attempt": "🔄 Lần thử {0} trên {1}..."
+ "inline_retry_attempt": "🔄 Lần thử {0} trên {1}...",
+ "tiktok_links_only": "Bot này chỉ hỗ trợ liên kết TikTok 🔗\n\nVui lòng gửi liên kết video TikTok để tải xuống không có watermark!"
}
diff --git a/handlers/get_video.py b/handlers/get_video.py
index 47cb205..749e6b2 100644
--- a/handlers/get_video.py
+++ b/handlers/get_video.py
@@ -39,6 +39,51 @@ def try_again_button(lang: str):
return keyb.as_markup()
+@video_router.message(F.video | F.video_note)
+async def handle_video_upload(message: Message):
+ """Inform users that we need links, not video uploads (private chats only)."""
+ if message.chat.type != "private":
+ return
+
+ settings = await get_user_settings(message.chat.id)
+ if settings:
+ lang = settings[0]
+ else:
+ lang = await lang_func(message.chat.id, message.from_user.language_code, True)
+
+ await message.reply(locale[lang]["video_upload_hint"])
+
+
+@video_router.message(F.photo)
+async def handle_image_upload(message: Message):
+ """Inform users that we only support TikTok links, not images (private chats only)."""
+ if message.chat.type != "private":
+ return
+
+ settings = await get_user_settings(message.chat.id)
+ if settings:
+ lang = settings[0]
+ else:
+ lang = await lang_func(message.chat.id, message.from_user.language_code, True)
+
+ await message.reply(locale[lang]["tiktok_links_only"])
+
+
+@video_router.message(F.voice | F.audio)
+async def handle_voice_upload(message: Message):
+ """Inform users that we only support TikTok links, not voice messages (private chats only)."""
+ if message.chat.type != "private":
+ return
+
+ settings = await get_user_settings(message.chat.id)
+ if settings:
+ lang = settings[0]
+ else:
+ lang = await lang_func(message.chat.id, message.from_user.language_code, True)
+
+ await message.reply(locale[lang]["tiktok_links_only"])
+
+
@video_router.message(F.text)
async def send_tiktok_video(message: Message):
# Api init with proxy support
@@ -70,9 +115,16 @@ async def send_tiktok_video(message: Message):
video_link, is_mobile = await api.regex_check(message.text)
# If not valid
if video_link is None:
- # Send error message, if not in group chat
+ # Send appropriate error message in private chats only
if not group_chat:
- await message.reply(locale[lang]["link_error"])
+ # Check if message contains URL entities (non-TikTok link)
+ has_url = message.entities and any(
+ e.type in ("url", "text_link") for e in message.entities
+ )
+ if has_url:
+ await message.reply(locale[lang]["non_tiktok_link"])
+ else:
+ await message.reply(locale[lang]["send_link_prompt"])
return
# Check per-user queue limit before proceeding (0 = no limit)
@@ -183,7 +235,7 @@ async def send_tiktok_video(message: Message):
else:
if not status_message:
try:
- await message.react([])
+ await message.react([ReactionTypeEmoji(emoji="😢")])
except TelegramBadRequest:
pass
except Exception as e:
@@ -198,7 +250,7 @@ async def send_tiktok_video(message: Message):
else:
if not status_message:
try:
- await message.react([])
+ await message.react([ReactionTypeEmoji(emoji="😢")])
except TelegramBadRequest:
pass
was_processed = False # Videos are not processed
@@ -260,7 +312,7 @@ async def send_tiktok_video(message: Message):
await message.react([ReactionTypeEmoji(emoji="😢")])
else:
if not status_message:
- await message.react([])
+ await message.react([ReactionTypeEmoji(emoji="😢")])
except TelegramBadRequest:
logging.debug("Failed to update UI during error cleanup")
except Exception as cleanup_err:
@@ -294,3 +346,18 @@ async def handle_retry_callback(callback: CallbackQuery):
# Re-process the original message
await send_tiktok_video(original_message)
+
+
+@video_router.message()
+async def handle_unsupported_content(message: Message):
+ """Catch-all for any unsupported content types (private chats only)."""
+ if message.chat.type != "private":
+ return
+
+ settings = await get_user_settings(message.chat.id)
+ if settings:
+ lang = settings[0]
+ else:
+ lang = await lang_func(message.chat.id, message.from_user.language_code, True)
+
+ await message.reply(locale[lang]["tiktok_links_only"])