feat(playlist): auto-detect import method that parses pasted provider messages

Adds a deterministic parser (detectProviderImportCandidates in
libs/shared/interfaces) that scans a pasted provider message for URLs, MAC
addresses, and labeled credentials/identity fields (username, password,
serial, device IDs, signatures), classifies the source as Xtream, Stalker,
or an M3U link/body, and returns ranked candidates. Every extracted value is
a verbatim substring or a canonical form from an existing shared normalizer;
detection only proposes — the existing forms and their behavioral probes
(portal discovery, connection test) stay authoritative.

The Add playlist dialog gains a sixth "Auto-detect" method with a textarea
that runs the parser on every edit and renders candidate cards; picking one
switches to the matching import form with the fields prefilled.

Detection runs fully locally; pasted text never leaves the app.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JE1De2dfyRZMYh4H2iGXb4
This commit is contained in:
Claude committed 2026-08-11 11:41:47 +00:00
1 parent 5c9411869a
commit 3dee1978f6
35 files changed
+1883 -48

No files matched your search

+15 -2
View File
@@ -144,7 +144,9 @@
"METHOD_STALKER_LABEL": "بوابة Stalker",
"METHOD_STALKER_SUB": "عنوان MAC ورابط البوابة",
"METHOD_TEXT_LABEL": "نص m3u الخام",
"METHOD_TEXT_SUB": "للقوائم العابرة أو عندما يتوفر لديك النص فقط"
"METHOD_TEXT_SUB": "للقوائم العابرة أو عندما يتوفر لديك النص فقط",
"METHOD_AUTO_LABEL": "اكتشاف تلقائي",
"METHOD_AUTO_SUB": "الصق رسالة مزوّد الخدمة"
},
"FILE_UPLOAD": {
"DRAG_DROP": "اسحب وأفلت الملفات هنا",
@@ -228,7 +230,18 @@
"STALKER": "Stalker"
},
"IMPORTED_AS_TEXT": "مستوردة كنص",
"PARSING_ERROR": "خطأ: فشل التحليل، ليست قائمة تشغيل صالحة:"
"PARSING_ERROR": "خطأ: فشل التحليل، ليست قائمة تشغيل صالحة:",
"AUTO_DETECT": {
"LABEL": "رسالة مزوّد الخدمة",
"PLACEHOLDER": "الصق كل ما أرسله مزوّد الخدمة — الروابط واسم المستخدم وكلمة المرور وعنوان MAC…",
"PRIVACY_HINT": "يتم الاكتشاف محليًا داخل التطبيق؛ النص الملصق لا يُرسل إلى أي مكان.",
"NO_MATCHES": "لم يتم التعرف على شيء بعد. الصق الرسالة كاملة مع الرابط أو بيانات الدخول.",
"CONFIDENCE_HIGH": "تطابق مؤكد",
"CONFIDENCE_MEDIUM": "تطابق محتمل",
"CONFIDENCE_LOW": "تخمين",
"USE": "ملء النموذج",
"M3U_TEXT_NOTE": "يبدو أنها قائمة تشغيل M3U — سيتم استيرادها كنص ملصق."
}
},
"SETTINGS": {
"TITLE": "الإعدادات",
+15 -2
View File
@@ -144,7 +144,9 @@
"METHOD_STALKER_LABEL": "بوابة Stalker",
"METHOD_STALKER_SUB": "عنوان MAC ورابط البوابة",
"METHOD_TEXT_LABEL": "نص m3u خام",
"METHOD_TEXT_SUB": "للقوائم المؤقتة ولا إلى عندك غير النص"
"METHOD_TEXT_SUB": "للقوائم المؤقتة ولا إلى عندك غير النص",
"METHOD_AUTO_LABEL": "اكتشاف تلقائي",
"METHOD_AUTO_SUB": "الصق رسالة مزوّد الخدمة"
},
"FILE_UPLOAD": {
"DRAG_DROP": "جر وأفلت الملفات هنا",
@@ -228,7 +230,18 @@
"STALKER": "Stalker"
},
"IMPORTED_AS_TEXT": "استورد كنص",
"PARSING_ERROR": "خطأ: التحليل فشل، ماشي قائمة تشغيل صحيحة:"
"PARSING_ERROR": "خطأ: التحليل فشل، ماشي قائمة تشغيل صحيحة:",
"AUTO_DETECT": {
"LABEL": "رسالة مزوّد الخدمة",
"PLACEHOLDER": "الصق كل ما أرسله مزوّد الخدمة — الروابط واسم المستخدم وكلمة المرور وعنوان MAC…",
"PRIVACY_HINT": "يتم الاكتشاف محليًا داخل التطبيق؛ النص الملصق لا يُرسل إلى أي مكان.",
"NO_MATCHES": "لم يتم التعرف على شيء بعد. الصق الرسالة كاملة مع الرابط أو بيانات الدخول.",
"CONFIDENCE_HIGH": "تطابق مؤكد",
"CONFIDENCE_MEDIUM": "تطابق محتمل",
"CONFIDENCE_LOW": "تخمين",
"USE": "ملء النموذج",
"M3U_TEXT_NOTE": "يبدو أنها قائمة تشغيل M3U — سيتم استيرادها كنص ملصق."
}
},
"SETTINGS": {
"TITLE": "الإعدادات",
+15 -2
View File
@@ -144,7 +144,9 @@
"METHOD_STALKER_LABEL": "Stalker партал",
"METHOD_STALKER_SUB": "MAC-адрас і URL партала",
"METHOD_TEXT_LABEL": "Тэкст M3U",
"METHOD_TEXT_SUB": "Для разавых спісаў або калі ў вас ёсць толькі тэкст"
"METHOD_TEXT_SUB": "Для разавых спісаў або калі ў вас ёсць толькі тэкст",
"METHOD_AUTO_LABEL": "Аўтавызначэнне",
"METHOD_AUTO_SUB": "Устаўце паведамленне ад правайдара"
},
"FILE_UPLOAD": {
"DRAG_DROP": "Перацягніце файл у гэтую вобласць",
@@ -228,7 +230,18 @@
"STALKER": "Stalker"
},
"IMPORTED_AS_TEXT": "Імпартавана як тэкст",
"PARSING_ERROR": "Памылка парсінгу, несапраўдны плэйліст:"
"PARSING_ERROR": "Памылка парсінгу, несапраўдны плэйліст:",
"AUTO_DETECT": {
"LABEL": "Паведамленне ад правайдара",
"PLACEHOLDER": "Устаўце ўсё, што даслаў правайдар — спасылкі, лагін і пароль, MAC-адрас…",
"PRIVACY_HINT": "Распазнаванне выконваецца лакальна ў праграме; устаўлены тэкст нікуды не адпраўляецца.",
"NO_MATCHES": "Пакуль нічога не распазнана. Устаўце паведамленне цалкам — са спасылкай або ўліковымі данымі.",
"CONFIDENCE_HIGH": "Дакладнае супадзенне",
"CONFIDENCE_MEDIUM": "Верагоднае супадзенне",
"CONFIDENCE_LOW": "Здагадка",
"USE": "Запоўніць форму",
"M3U_TEXT_NOTE": "Падобна на плэйліст M3U — ён будзе імпартаваны як устаўлены тэкст."
}
},
"SETTINGS": {
"TITLE": "Налады",
+15 -2
View File
@@ -144,7 +144,9 @@
"METHOD_STALKER_LABEL": "Stalker-Portal",
"METHOD_STALKER_SUB": "MAC-Adresse und Portal-URL",
"METHOD_TEXT_LABEL": "M3U-Text",
"METHOD_TEXT_SUB": "Für einmalige Listen oder wenn Sie nur Text haben"
"METHOD_TEXT_SUB": "Für einmalige Listen oder wenn Sie nur Text haben",
"METHOD_AUTO_LABEL": "Automatisch erkennen",
"METHOD_AUTO_SUB": "Nachricht des Anbieters einfügen"
},
"FILE_UPLOAD": {
"DRAG_DROP": "Ziehen Sie Dateien per Drag & Drop",
@@ -228,7 +230,18 @@
"STALKER": "Stalker"
},
"IMPORTED_AS_TEXT": "Als Text importiert",
"PARSING_ERROR": "Fehler: Parsen fehlgeschlagen, keine gültige Playlist:"
"PARSING_ERROR": "Fehler: Parsen fehlgeschlagen, keine gültige Playlist:",
"AUTO_DETECT": {
"LABEL": "Nachricht Ihres Anbieters",
"PLACEHOLDER": "Fügen Sie alles ein, was Ihr Anbieter geschickt hat — Links, Benutzername und Passwort, MAC-Adresse…",
"PRIVACY_HINT": "Die Erkennung läuft lokal in der App; der eingefügte Text wird nirgendwohin gesendet.",
"NO_MATCHES": "Noch nichts erkannt. Fügen Sie die vollständige Nachricht mit Link oder Zugangsdaten ein.",
"CONFIDENCE_HIGH": "Sichere Übereinstimmung",
"CONFIDENCE_MEDIUM": "Wahrscheinliche Übereinstimmung",
"CONFIDENCE_LOW": "Vermutung",
"USE": "Formular ausfüllen",
"M3U_TEXT_NOTE": "Sieht wie eine M3U-Playlist aus — sie wird als eingefügter Text importiert."
}
},
"SETTINGS": {
"TITLE": "Einstellungen",
+15 -2
View File
@@ -144,7 +144,9 @@
"METHOD_STALKER_LABEL": "Πύλη Stalker",
"METHOD_STALKER_SUB": "MAC address και URL πύλης",
"METHOD_TEXT_LABEL": "Ακατέργαστο κείμενο m3u",
"METHOD_TEXT_SUB": "Για λίστες μίας χρήσης ή όταν έχετε μόνο κείμενο"
"METHOD_TEXT_SUB": "Για λίστες μίας χρήσης ή όταν έχετε μόνο κείμενο",
"METHOD_AUTO_LABEL": "Αυτόματη αναγνώριση",
"METHOD_AUTO_SUB": "Επικολλήστε το μήνυμα του παρόχου σας"
},
"FILE_UPLOAD": {
"DRAG_DROP": "Σύρετε και αποθέστε αρχεία εδώ",
@@ -228,7 +230,18 @@
"STALKER": "Stalker"
},
"IMPORTED_AS_TEXT": "Εισήχθη ως κείμενο",
"PARSING_ERROR": "Σφάλμα: Η ανάλυση απέτυχε, δεν είναι έγκυρη λίστα αναπαραγωγής:"
"PARSING_ERROR": "Σφάλμα: Η ανάλυση απέτυχε, δεν είναι έγκυρη λίστα αναπαραγωγής:",
"AUTO_DETECT": {
"LABEL": "Μήνυμα του παρόχου σας",
"PLACEHOLDER": "Επικολλήστε ό,τι σας έστειλε ο πάροχος — συνδέσμους, όνομα χρήστη και κωδικό, διεύθυνση MAC…",
"PRIVACY_HINT": "Η αναγνώριση γίνεται τοπικά στην εφαρμογή· το κείμενο δεν αποστέλλεται πουθενά.",
"NO_MATCHES": "Δεν αναγνωρίστηκε τίποτα ακόμη. Επικολλήστε ολόκληρο το μήνυμα με τον σύνδεσμο ή τα διαπιστευτήρια.",
"CONFIDENCE_HIGH": "Σίγουρη αντιστοιχία",
"CONFIDENCE_MEDIUM": "Πιθανή αντιστοιχία",
"CONFIDENCE_LOW": "Εικασία",
"USE": "Συμπλήρωση φόρμας",
"M3U_TEXT_NOTE": "Μοιάζει με λίστα M3U — θα εισαχθεί ως επικολλημένο κείμενο."
}
},
"SETTINGS": {
"TITLE": "Ρυθμίσεις",
+15 -2
View File
@@ -144,7 +144,9 @@
"METHOD_STALKER_LABEL": "Stalker portal",
"METHOD_STALKER_SUB": "MAC address and portal URL",
"METHOD_TEXT_LABEL": "Raw m3u text",
"METHOD_TEXT_SUB": "For one-off lists or when you only have text"
"METHOD_TEXT_SUB": "For one-off lists or when you only have text",
"METHOD_AUTO_LABEL": "Auto-detect",
"METHOD_AUTO_SUB": "Paste the message from your provider"
},
"FILE_UPLOAD": {
"DRAG_DROP": "Drop an .m3u or .m3u8 file here",
@@ -228,7 +230,18 @@
"STALKER": "Stalker"
},
"IMPORTED_AS_TEXT": "Imported as text",
"PARSING_ERROR": "Error: Parsing failed, not a valid playlist:"
"PARSING_ERROR": "Error: Parsing failed, not a valid playlist:",
"AUTO_DETECT": {
"LABEL": "Message from your provider",
"PLACEHOLDER": "Paste everything your provider sent — links, username and password, MAC address…",
"PRIVACY_HINT": "Detection runs locally in the app; nothing you paste is sent anywhere.",
"NO_MATCHES": "Nothing recognized yet. Paste the full message including the link or credentials.",
"CONFIDENCE_HIGH": "Confident match",
"CONFIDENCE_MEDIUM": "Likely match",
"CONFIDENCE_LOW": "Guess",
"USE": "Fill the form",
"M3U_TEXT_NOTE": "Looks like a raw M3U playlist — it will be imported as pasted text."
}
},
"SETTINGS": {
"TITLE": "Settings",
+15 -2
View File
@@ -144,7 +144,9 @@
"METHOD_STALKER_LABEL": "Portal Stalker",
"METHOD_STALKER_SUB": "Dirección MAC y URL del portal",
"METHOD_TEXT_LABEL": "Texto m3u sin formato",
"METHOD_TEXT_SUB": "Para listas puntuales o cuando solo tienes texto"
"METHOD_TEXT_SUB": "Para listas puntuales o cuando solo tienes texto",
"METHOD_AUTO_LABEL": "Detección automática",
"METHOD_AUTO_SUB": "Pega el mensaje de tu proveedor"
},
"FILE_UPLOAD": {
"DRAG_DROP": "Arrastre & suelte archivos aquí",
@@ -228,7 +230,18 @@
"STALKER": "Stalker"
},
"IMPORTED_AS_TEXT": "Importado como texto",
"PARSING_ERROR": "Error: Error al analizar, no es una lista de reproducción válida:"
"PARSING_ERROR": "Error: Error al analizar, no es una lista de reproducción válida:",
"AUTO_DETECT": {
"LABEL": "Mensaje de tu proveedor",
"PLACEHOLDER": "Pega todo lo que te envió tu proveedor: enlaces, usuario y contraseña, dirección MAC…",
"PRIVACY_HINT": "La detección se realiza localmente en la aplicación; el texto pegado no se envía a ningún sitio.",
"NO_MATCHES": "Aún no se ha reconocido nada. Pega el mensaje completo con el enlace o las credenciales.",
"CONFIDENCE_HIGH": "Coincidencia segura",
"CONFIDENCE_MEDIUM": "Coincidencia probable",
"CONFIDENCE_LOW": "Suposición",
"USE": "Rellenar el formulario",
"M3U_TEXT_NOTE": "Parece una lista M3U: se importará como texto pegado."
}
},
"SETTINGS": {
"TITLE": "Ajustes",
+15 -2
View File
@@ -144,7 +144,9 @@
"METHOD_STALKER_LABEL": "Portail Stalker",
"METHOD_STALKER_SUB": "Adresse MAC et URL du portail",
"METHOD_TEXT_LABEL": "Texte m3u brut",
"METHOD_TEXT_SUB": "Pour les listes ponctuelles ou quand vous n'avez que du texte"
"METHOD_TEXT_SUB": "Pour les listes ponctuelles ou quand vous n'avez que du texte",
"METHOD_AUTO_LABEL": "Détection automatique",
"METHOD_AUTO_SUB": "Collez le message de votre fournisseur"
},
"FILE_UPLOAD": {
"DRAG_DROP": "Glissez un fichier ici",
@@ -228,7 +230,18 @@
"STALKER": "Stalker"
},
"IMPORTED_AS_TEXT": "Importé sous forme de texte",
"PARSING_ERROR": "Erreur : échec de l'analyse, liste de lecture non valide :"
"PARSING_ERROR": "Erreur : échec de l'analyse, liste de lecture non valide :",
"AUTO_DETECT": {
"LABEL": "Message de votre fournisseur",
"PLACEHOLDER": "Collez tout ce que votre fournisseur a envoyé : liens, identifiant et mot de passe, adresse MAC…",
"PRIVACY_HINT": "La détection s'effectue localement dans l'application ; le texte collé n'est envoyé nulle part.",
"NO_MATCHES": "Rien de reconnu pour l'instant. Collez le message complet avec le lien ou les identifiants.",
"CONFIDENCE_HIGH": "Correspondance sûre",
"CONFIDENCE_MEDIUM": "Correspondance probable",
"CONFIDENCE_LOW": "Supposition",
"USE": "Remplir le formulaire",
"M3U_TEXT_NOTE": "Ressemble à une liste M3U — elle sera importée comme texte collé."
}
},
"SETTINGS": {
"TITLE": "Paramètres",
+15 -2
View File
@@ -144,7 +144,9 @@
"METHOD_STALKER_LABEL": "Stalker-portál",
"METHOD_STALKER_SUB": "MAC-cím és a portál URL-címe",
"METHOD_TEXT_LABEL": "Nyers M3U-szöveg",
"METHOD_TEXT_SUB": "Egyszeri listákhoz, vagy ha csak szöveg áll rendelkezésére"
"METHOD_TEXT_SUB": "Egyszeri listákhoz, vagy ha csak szöveg áll rendelkezésére",
"METHOD_AUTO_LABEL": "Automatikus felismerés",
"METHOD_AUTO_SUB": "Illessze be a szolgáltató üzenetét"
},
"FILE_UPLOAD": {
"DRAG_DROP": "Húzzon ide egy .m3u- vagy .m3u8-fájlt",
@@ -228,7 +230,18 @@
"STALKER": "Stalker"
},
"IMPORTED_AS_TEXT": "Szövegként importálva",
"PARSING_ERROR": "Hiba: a feldolgozás sikertelen; ez nem érvényes lejátszási lista:"
"PARSING_ERROR": "Hiba: a feldolgozás sikertelen; ez nem érvényes lejátszási lista:",
"AUTO_DETECT": {
"LABEL": "A szolgáltató üzenete",
"PLACEHOLDER": "Illesszen be mindent, amit a szolgáltató küldött — linkek, felhasználónév és jelszó, MAC-cím…",
"PRIVACY_HINT": "A felismerés helyben, az alkalmazásban történik; a beillesztett szöveg nem kerül elküldésre.",
"NO_MATCHES": "Még semmi sem felismerhető. Illessze be a teljes üzenetet a linkkel vagy a belépési adatokkal.",
"CONFIDENCE_HIGH": "Biztos találat",
"CONFIDENCE_MEDIUM": "Valószínű találat",
"CONFIDENCE_LOW": "Feltételezés",
"USE": "Űrlap kitöltése",
"M3U_TEXT_NOTE": "M3U-lejátszási listának tűnik — beillesztett szövegként lesz importálva."
}
},
"SETTINGS": {
"TITLE": "Beállítások",
+15 -2
View File
@@ -144,7 +144,9 @@
"METHOD_STALKER_LABEL": "Portale Stalker",
"METHOD_STALKER_SUB": "Indirizzo MAC e URL del portale",
"METHOD_TEXT_LABEL": "Testo m3u grezzo",
"METHOD_TEXT_SUB": "Per liste occasionali o quando hai solo il testo"
"METHOD_TEXT_SUB": "Per liste occasionali o quando hai solo il testo",
"METHOD_AUTO_LABEL": "Rilevamento automatico",
"METHOD_AUTO_SUB": "Incolla il messaggio del tuo provider"
},
"FILE_UPLOAD": {
"DRAG_DROP": "Trascina e rilascia qui i file",
@@ -228,7 +230,18 @@
"STALKER": "Stalker"
},
"IMPORTED_AS_TEXT": "Importato come testo",
"PARSING_ERROR": "Errore: analisi fallita, non è una playlist valida:"
"PARSING_ERROR": "Errore: analisi fallita, non è una playlist valida:",
"AUTO_DETECT": {
"LABEL": "Messaggio del tuo provider",
"PLACEHOLDER": "Incolla tutto ciò che il provider ti ha inviato: link, nome utente e password, indirizzo MAC…",
"PRIVACY_HINT": "Il rilevamento avviene localmente nell'app; il testo incollato non viene inviato da nessuna parte.",
"NO_MATCHES": "Ancora nulla di riconosciuto. Incolla il messaggio completo con il link o le credenziali.",
"CONFIDENCE_HIGH": "Corrispondenza sicura",
"CONFIDENCE_MEDIUM": "Corrispondenza probabile",
"CONFIDENCE_LOW": "Ipotesi",
"USE": "Compila il modulo",
"M3U_TEXT_NOTE": "Sembra una playlist M3U: verrà importata come testo incollato."
}
},
"SETTINGS": {
"TITLE": "Impostazioni IPTVnator",
+15 -2
View File
@@ -144,7 +144,9 @@
"METHOD_STALKER_LABEL": "Stalkerポータル",
"METHOD_STALKER_SUB": "MACアドレスとポータルURL",
"METHOD_TEXT_LABEL": "M3Uテキスト",
"METHOD_TEXT_SUB": "一度限りのリストやテキストしかない場合に"
"METHOD_TEXT_SUB": "一度限りのリストやテキストしかない場合に",
"METHOD_AUTO_LABEL": "自動検出",
"METHOD_AUTO_SUB": "プロバイダーからのメッセージを貼り付け"
},
"FILE_UPLOAD": {
"DRAG_DROP": "ここにファイルをドラッグ&ドロップ",
@@ -228,7 +230,18 @@
"STALKER": "Stalker"
},
"IMPORTED_AS_TEXT": "テキストとしてインポート",
"PARSING_ERROR": "エラー:解析に失敗しました。有効なプレイリストではありません:"
"PARSING_ERROR": "エラー:解析に失敗しました。有効なプレイリストではありません:",
"AUTO_DETECT": {
"LABEL": "プロバイダーからのメッセージ",
"PLACEHOLDER": "プロバイダーから送られた内容をすべて貼り付けてください — リンク、ユーザー名とパスワード、MACアドレスなど…",
"PRIVACY_HINT": "検出はアプリ内でローカルに実行され、貼り付けたテキストはどこにも送信されません。",
"NO_MATCHES": "まだ何も認識されていません。リンクや認証情報を含むメッセージ全体を貼り付けてください。",
"CONFIDENCE_HIGH": "確実な一致",
"CONFIDENCE_MEDIUM": "可能性の高い一致",
"CONFIDENCE_LOW": "推測",
"USE": "フォームに入力",
"M3U_TEXT_NOTE": "M3Uプレイリストのようです — 貼り付けたテキストとしてインポートされます。"
}
},
"SETTINGS": {
"TITLE": "設定",
+15 -2
View File
@@ -144,7 +144,9 @@
"METHOD_STALKER_LABEL": "Stalker 포털",
"METHOD_STALKER_SUB": "MAC 주소와 포털 URL",
"METHOD_TEXT_LABEL": "원본 m3u 텍스트",
"METHOD_TEXT_SUB": "일회성 목록이나 텍스트만 있을 때 사용하세요"
"METHOD_TEXT_SUB": "일회성 목록이나 텍스트만 있을 때 사용하세요",
"METHOD_AUTO_LABEL": "자동 감지",
"METHOD_AUTO_SUB": "제공업체의 메시지를 붙여넣으세요"
},
"FILE_UPLOAD": {
"DRAG_DROP": "파일을 드래그 앤 드롭",
@@ -228,7 +230,18 @@
"STALKER": "Stalker"
},
"IMPORTED_AS_TEXT": "텍스트로 가져옴",
"PARSING_ERROR": "오류: 파싱에 실패했습니다. 유효한 재생목록이 아닙니다:"
"PARSING_ERROR": "오류: 파싱에 실패했습니다. 유효한 재생목록이 아닙니다:",
"AUTO_DETECT": {
"LABEL": "제공업체의 메시지",
"PLACEHOLDER": "제공업체가 보낸 모든 내용을 붙여넣으세요 — 링크, 사용자 이름과 비밀번호, MAC 주소…",
"PRIVACY_HINT": "감지는 앱에서 로컬로 실행되며 붙여넣은 텍스트는 어디에도 전송되지 않습니다.",
"NO_MATCHES": "아직 인식된 내용이 없습니다. 링크나 자격 증명이 포함된 전체 메시지를 붙여넣으세요.",
"CONFIDENCE_HIGH": "확실한 일치",
"CONFIDENCE_MEDIUM": "유력한 일치",
"CONFIDENCE_LOW": "추측",
"USE": "양식 채우기",
"M3U_TEXT_NOTE": "M3U 재생목록으로 보입니다 — 붙여넣은 텍스트로 가져옵니다."
}
},
"SETTINGS": {
"TITLE": "설정",
+15 -2
View File
@@ -144,7 +144,9 @@
"METHOD_STALKER_LABEL": "Stalker-portaal",
"METHOD_STALKER_SUB": "MAC-adres en portal-URL",
"METHOD_TEXT_LABEL": "Ruwe m3u-tekst",
"METHOD_TEXT_SUB": "Voor eenmalige lijsten of als je alleen tekst hebt"
"METHOD_TEXT_SUB": "Voor eenmalige lijsten of als je alleen tekst hebt",
"METHOD_AUTO_LABEL": "Automatisch detecteren",
"METHOD_AUTO_SUB": "Plak het bericht van je provider"
},
"FILE_UPLOAD": {
"DRAG_DROP": "Sleep bestanden hierheen",
@@ -228,7 +230,18 @@
"STALKER": "Stalker"
},
"IMPORTED_AS_TEXT": "Geïmporteerd als tekst",
"PARSING_ERROR": "Fout: parsing mislukt, geen geldige afspeellijst:"
"PARSING_ERROR": "Fout: parsing mislukt, geen geldige afspeellijst:",
"AUTO_DETECT": {
"LABEL": "Bericht van je provider",
"PLACEHOLDER": "Plak alles wat je provider heeft gestuurd — links, gebruikersnaam en wachtwoord, MAC-adres…",
"PRIVACY_HINT": "Detectie gebeurt lokaal in de app; geplakte tekst wordt nergens naartoe gestuurd.",
"NO_MATCHES": "Nog niets herkend. Plak het volledige bericht met de link of inloggegevens.",
"CONFIDENCE_HIGH": "Zekere match",
"CONFIDENCE_MEDIUM": "Waarschijnlijke match",
"CONFIDENCE_LOW": "Gok",
"USE": "Formulier invullen",
"M3U_TEXT_NOTE": "Lijkt op een M3U-afspeellijst — deze wordt als geplakte tekst geïmporteerd."
}
},
"SETTINGS": {
"TITLE": "Instellingen",
+15 -2
View File
@@ -144,7 +144,9 @@
"METHOD_STALKER_LABEL": "Portal Stalker",
"METHOD_STALKER_SUB": "Adres MAC i URL portalu",
"METHOD_TEXT_LABEL": "Surowy tekst m3u",
"METHOD_TEXT_SUB": "Do jednorazowych list lub gdy dostępny jest tylko tekst"
"METHOD_TEXT_SUB": "Do jednorazowych list lub gdy dostępny jest tylko tekst",
"METHOD_AUTO_LABEL": "Automatyczne wykrywanie",
"METHOD_AUTO_SUB": "Wklej wiadomość od dostawcy"
},
"FILE_UPLOAD": {
"DRAG_DROP": "Przeciągnij i upuść pliki tutaj",
@@ -228,7 +230,18 @@
"STALKER": "Stalker"
},
"IMPORTED_AS_TEXT": "Zaimportowano jako tekst",
"PARSING_ERROR": "Błąd: Analiza nie powiodła się, nieprawidłowa lista odtwarzania:"
"PARSING_ERROR": "Błąd: Analiza nie powiodła się, nieprawidłowa lista odtwarzania:",
"AUTO_DETECT": {
"LABEL": "Wiadomość od dostawcy",
"PLACEHOLDER": "Wklej wszystko, co przysłał dostawca — linki, login i hasło, adres MAC…",
"PRIVACY_HINT": "Wykrywanie odbywa się lokalnie w aplikacji; wklejony tekst nigdzie nie jest wysyłany.",
"NO_MATCHES": "Na razie nic nie rozpoznano. Wklej całą wiadomość z linkiem lub danymi logowania.",
"CONFIDENCE_HIGH": "Pewne dopasowanie",
"CONFIDENCE_MEDIUM": "Prawdopodobne dopasowanie",
"CONFIDENCE_LOW": "Przypuszczenie",
"USE": "Wypełnij formularz",
"M3U_TEXT_NOTE": "Wygląda na playlistę M3U — zostanie zaimportowana jako wklejony tekst."
}
},
"SETTINGS": {
"TITLE": "Ustawienia",
+15 -2
View File
@@ -144,7 +144,9 @@
"METHOD_STALKER_LABEL": "Portal Stalker",
"METHOD_STALKER_SUB": "Endereço MAC e URL do portal",
"METHOD_TEXT_LABEL": "Texto m3u bruto",
"METHOD_TEXT_SUB": "Para listas pontuais ou quando você só tem o texto"
"METHOD_TEXT_SUB": "Para listas pontuais ou quando você só tem o texto",
"METHOD_AUTO_LABEL": "Deteção automática",
"METHOD_AUTO_SUB": "Cole a mensagem do seu provedor"
},
"FILE_UPLOAD": {
"DRAG_DROP": "Arraste e solte os arquivos aqui",
@@ -228,7 +230,18 @@
"STALKER": "Stalker"
},
"IMPORTED_AS_TEXT": "Importado como texto",
"PARSING_ERROR": "Erro: Falha na análise, não é uma playlist válida:"
"PARSING_ERROR": "Erro: Falha na análise, não é uma playlist válida:",
"AUTO_DETECT": {
"LABEL": "Mensagem do seu provedor",
"PLACEHOLDER": "Cole tudo o que o provedor enviou — links, utilizador e palavra-passe, endereço MAC…",
"PRIVACY_HINT": "A deteção é feita localmente na aplicação; o texto colado não é enviado para lado nenhum.",
"NO_MATCHES": "Ainda nada reconhecido. Cole a mensagem completa com o link ou as credenciais.",
"CONFIDENCE_HIGH": "Correspondência segura",
"CONFIDENCE_MEDIUM": "Correspondência provável",
"CONFIDENCE_LOW": "Palpite",
"USE": "Preencher o formulário",
"M3U_TEXT_NOTE": "Parece uma playlist M3U — será importada como texto colado."
}
},
"SETTINGS": {
"TITLE": "Configurações",
+15 -2
View File
@@ -144,7 +144,9 @@
"METHOD_STALKER_LABEL": "Stalker портал",
"METHOD_STALKER_SUB": "MAC-адрес и URL портала",
"METHOD_TEXT_LABEL": "M3U текстом",
"METHOD_TEXT_SUB": "Для разовых плейлистов или когда есть только текст"
"METHOD_TEXT_SUB": "Для разовых плейлистов или когда есть только текст",
"METHOD_AUTO_LABEL": "Автоопределение",
"METHOD_AUTO_SUB": "Вставьте сообщение от провайдера"
},
"FILE_UPLOAD": {
"DRAG_DROP": "Перетащите файл в эту область",
@@ -228,7 +230,18 @@
"STALKER": "Stalker"
},
"IMPORTED_AS_TEXT": "Импортировано как текст",
"PARSING_ERROR": "Ошибка парсинга, недействительный плейлист:"
"PARSING_ERROR": "Ошибка парсинга, недействительный плейлист:",
"AUTO_DETECT": {
"LABEL": "Сообщение от провайдера",
"PLACEHOLDER": "Вставьте всё, что прислал провайдер — ссылки, логин и пароль, MAC-адрес…",
"PRIVACY_HINT": "Распознавание выполняется локально в приложении; вставленный текст никуда не отправляется.",
"NO_MATCHES": "Пока ничего не распознано. Вставьте сообщение целиком — со ссылкой или учётными данными.",
"CONFIDENCE_HIGH": "Точное совпадение",
"CONFIDENCE_MEDIUM": "Вероятное совпадение",
"CONFIDENCE_LOW": "Предположение",
"USE": "Заполнить форму",
"M3U_TEXT_NOTE": "Похоже на плейлист M3U — он будет импортирован как вставленный текст."
}
},
"SETTINGS": {
"TITLE": "Настройки",
+15 -2
View File
@@ -144,7 +144,9 @@
"METHOD_STALKER_LABEL": "Stalker portalı",
"METHOD_STALKER_SUB": "MAC adresi ve portal URL'si",
"METHOD_TEXT_LABEL": "Ham m3u metni",
"METHOD_TEXT_SUB": "Tek seferlik listeler veya yalnızca metniniz olduğunda"
"METHOD_TEXT_SUB": "Tek seferlik listeler veya yalnızca metniniz olduğunda",
"METHOD_AUTO_LABEL": "Otomatik algılama",
"METHOD_AUTO_SUB": "Sağlayıcınızın mesajını yapıştırın"
},
"FILE_UPLOAD": {
"DRAG_DROP": "Dosyaları buraya sürükleyip bırakın",
@@ -228,7 +230,18 @@
"STALKER": "Stalker"
},
"IMPORTED_AS_TEXT": "Metin olarak içe aktarıldı",
"PARSING_ERROR": "Hata: Ayrıştırma başarısız, geçerli bir oynatma listesi değil:"
"PARSING_ERROR": "Hata: Ayrıştırma başarısız, geçerli bir oynatma listesi değil:",
"AUTO_DETECT": {
"LABEL": "Sağlayıcınızın mesajı",
"PLACEHOLDER": "Sağlayıcınızın gönderdiği her şeyi yapıştırın — bağlantılar, kullanıcı adı ve şifre, MAC adresi…",
"PRIVACY_HINT": "Algılama uygulama içinde yerel olarak yapılır; yapıştırılan metin hiçbir yere gönderilmez.",
"NO_MATCHES": "Henüz bir şey tanınmadı. Bağlantı veya kimlik bilgileriyle birlikte mesajın tamamını yapıştırın.",
"CONFIDENCE_HIGH": "Kesin eşleşme",
"CONFIDENCE_MEDIUM": "Olası eşleşme",
"CONFIDENCE_LOW": "Tahmin",
"USE": "Formu doldur",
"M3U_TEXT_NOTE": "M3U çalma listesine benziyor — yapıştırılan metin olarak içe aktarılacak."
}
},
"SETTINGS": {
"TITLE": "Ayarlar",
+15 -2
View File
@@ -144,7 +144,9 @@
"METHOD_STALKER_LABEL": "Stalker 门户",
"METHOD_STALKER_SUB": "MAC 地址和门户 URL",
"METHOD_TEXT_LABEL": "原始 m3u 文本",
"METHOD_TEXT_SUB": "用于一次性列表,或仅有文本时"
"METHOD_TEXT_SUB": "用于一次性列表,或仅有文本时",
"METHOD_AUTO_LABEL": "自动识别",
"METHOD_AUTO_SUB": "粘贴服务商发来的消息"
},
"FILE_UPLOAD": {
"DRAG_DROP": "将文件拖放到此处",
@@ -228,7 +230,18 @@
"STALKER": "Stalker"
},
"IMPORTED_AS_TEXT": "以文本形式导入",
"PARSING_ERROR": "错误:解析失败,不是有效的播放列表:"
"PARSING_ERROR": "错误:解析失败,不是有效的播放列表:",
"AUTO_DETECT": {
"LABEL": "服务商发来的消息",
"PLACEHOLDER": "粘贴服务商发送的全部内容——链接、用户名和密码、MAC 地址等…",
"PRIVACY_HINT": "识别在应用内本地完成;粘贴的文本不会被发送到任何地方。",
"NO_MATCHES": "尚未识别出任何内容。请粘贴包含链接或凭据的完整消息。",
"CONFIDENCE_HIGH": "确定匹配",
"CONFIDENCE_MEDIUM": "可能匹配",
"CONFIDENCE_LOW": "推测",
"USE": "填写表单",
"M3U_TEXT_NOTE": "看起来是 M3U 播放列表——将作为粘贴文本导入。"
}
},
"SETTINGS": {
"TITLE": "设置",
+15 -2
View File
@@ -144,7 +144,9 @@
"METHOD_STALKER_LABEL": "Stalker 入口網站",
"METHOD_STALKER_SUB": "MAC 位址與入口網址",
"METHOD_TEXT_LABEL": "M3U 原始文字",
"METHOD_TEXT_SUB": "適合一次性清單,或您只有文字內容時使用"
"METHOD_TEXT_SUB": "適合一次性清單,或您只有文字內容時使用",
"METHOD_AUTO_LABEL": "自動辨識",
"METHOD_AUTO_SUB": "貼上服務商傳來的訊息"
},
"FILE_UPLOAD": {
"DRAG_DROP": "在此處拖放檔案",
@@ -228,7 +230,18 @@
"STALKER": "Stalker"
},
"IMPORTED_AS_TEXT": "以文字方式匯入",
"PARSING_ERROR": "錯誤:解析失敗,不是有效的播放清單:"
"PARSING_ERROR": "錯誤:解析失敗,不是有效的播放清單:",
"AUTO_DETECT": {
"LABEL": "服務商傳來的訊息",
"PLACEHOLDER": "貼上服務商傳送的全部內容——連結、使用者名稱與密碼、MAC 位址等…",
"PRIVACY_HINT": "辨識在應用程式內本機完成;貼上的文字不會傳送到任何地方。",
"NO_MATCHES": "尚未辨識出任何內容。請貼上包含連結或憑證的完整訊息。",
"CONFIDENCE_HIGH": "確定匹配",
"CONFIDENCE_MEDIUM": "可能匹配",
"CONFIDENCE_LOW": "推測",
"USE": "填寫表單",
"M3U_TEXT_NOTE": "看起來是 M3U 播放清單——將作為貼上的文字匯入。"
}
},
"SETTINGS": {
"TITLE": "設定",