diff --git a/assets/translations/bs.json b/assets/translations/bs.json index 90d0737..131db9a 100644 --- a/assets/translations/bs.json +++ b/assets/translations/bs.json @@ -287,6 +287,7 @@ "shizuku": "Shizuku", "root": "Root", "shizukuBinderNotFound": "Shizuku is not running", + "requestHeader": "Request header", "removeAppQuestion": { "one": "Želite li ukloniti aplikaciju?", "other": "Želite li ukloniti aplikacije?" diff --git a/assets/translations/cs.json b/assets/translations/cs.json index 13bf6d7..e1ea6e2 100644 --- a/assets/translations/cs.json +++ b/assets/translations/cs.json @@ -287,6 +287,7 @@ "shizuku": "Shizuku", "root": "Správce", "shizukuBinderNotFound": "Shizuku neběží", + "requestHeader": "Request header", "removeAppQuestion": { "one": "Odstranit Apku?", "other": "Odstranit Apky?" diff --git a/assets/translations/de.json b/assets/translations/de.json index 28ef8fb..7b87707 100644 --- a/assets/translations/de.json +++ b/assets/translations/de.json @@ -287,6 +287,7 @@ "shizuku": "Shizuku", "root": "Root", "shizukuBinderNotFound": "Shizuku läuft nicht", + "requestHeader": "Request header", "removeAppQuestion": { "one": "App entfernen?", "other": "Apps entfernen?" diff --git a/assets/translations/en.json b/assets/translations/en.json index ed5a898..5e04c93 100644 --- a/assets/translations/en.json +++ b/assets/translations/en.json @@ -289,6 +289,7 @@ "shizukuBinderNotFound": "Сompatible Shizuku service wasn't found", "useSystemFont": "Use the system font", "systemFontError": "Error loading the system font: {}", + "requestHeader": "Request header", "removeAppQuestion": { "one": "Remove App?", "other": "Remove Apps?" diff --git a/assets/translations/es.json b/assets/translations/es.json index 82c00a4..c7b579c 100644 --- a/assets/translations/es.json +++ b/assets/translations/es.json @@ -287,6 +287,7 @@ "shizuku": "Shizuku", "root": "Root", "shizukuBinderNotFound": "Shizuku no está operativo", + "requestHeader": "Request header", "removeAppQuestion": { "one": "¿Eliminar Aplicación?", "other": "¿Eliminar Aplicaciones?" diff --git a/assets/translations/fa.json b/assets/translations/fa.json index 9cf7264..1dd914f 100644 --- a/assets/translations/fa.json +++ b/assets/translations/fa.json @@ -287,6 +287,7 @@ "shizuku": "Shizuku", "root": "Root", "shizukuBinderNotFound": "Shizuku is not running", + "requestHeader": "Request header", "removeAppQuestion": { "one": "برنامه حذف شود؟", "other": "برنامه ها حذف شوند؟" diff --git a/assets/translations/fr.json b/assets/translations/fr.json index 70aac00..d0e69c8 100644 --- a/assets/translations/fr.json +++ b/assets/translations/fr.json @@ -287,6 +287,7 @@ "shizuku": "Shizuku", "root": "Root", "shizukuBinderNotFound": "Shizuku is not running", + "requestHeader": "Request header", "removeAppQuestion": { "one": "Supprimer l'application ?", "other": "Supprimer les applications ?" diff --git a/assets/translations/hu.json b/assets/translations/hu.json index 61ebca0..4284c75 100644 --- a/assets/translations/hu.json +++ b/assets/translations/hu.json @@ -287,6 +287,7 @@ "shizuku": "Shizuku", "root": "Root", "shizukuBinderNotFound": "Shizuku is not running", + "requestHeader": "Request header", "removeAppQuestion": { "one": "Eltávolítja az alkalmazást?", "other": "Eltávolítja az alkalmazást?" diff --git a/assets/translations/it.json b/assets/translations/it.json index 55cecc8..deebe35 100644 --- a/assets/translations/it.json +++ b/assets/translations/it.json @@ -287,6 +287,7 @@ "shizuku": "Shizuku", "root": "Root", "shizukuBinderNotFound": "Shizuku non è in esecuzione", + "requestHeader": "Request header", "removeAppQuestion": { "one": "Rimuovere l'app?", "other": "Rimuovere le app?" diff --git a/assets/translations/ja.json b/assets/translations/ja.json index 4a0494f..7c0b45e 100644 --- a/assets/translations/ja.json +++ b/assets/translations/ja.json @@ -287,6 +287,7 @@ "shizuku": "Shizuku", "root": "Root", "shizukuBinderNotFound": "Shizukuが起動していません", + "requestHeader": "Request header", "removeAppQuestion": { "one": "アプリを削除しますか?", "other": "アプリを削除しますか?" diff --git a/assets/translations/nl.json b/assets/translations/nl.json index cb5f434..08dd069 100644 --- a/assets/translations/nl.json +++ b/assets/translations/nl.json @@ -287,6 +287,7 @@ "shizuku": "Shizuku", "root": "Root", "shizukuBinderNotFound": "Shizuku is not running", + "requestHeader": "Request header", "removeAppQuestion": { "one": "App verwijderen?", "other": "Apps verwijderen?" diff --git a/assets/translations/pl.json b/assets/translations/pl.json index 23b1c1a..86f9f62 100644 --- a/assets/translations/pl.json +++ b/assets/translations/pl.json @@ -287,6 +287,7 @@ "shizuku": "Shizuku", "root": "Root", "shizukuBinderNotFound": "Shizuku is not running", + "requestHeader": "Request header", "removeAppQuestion": { "one": "Usunąć aplikację?", "few": "Usunąć aplikacje?", diff --git a/assets/translations/pt.json b/assets/translations/pt.json index 809a850..2d697cb 100644 --- a/assets/translations/pt.json +++ b/assets/translations/pt.json @@ -287,6 +287,7 @@ "shizuku": "Shizuku", "root": "Root", "shizukuBinderNotFound": "Shizuku não está rodando", + "requestHeader": "Request header", "removeAppQuestion": { "one": "Remover aplicativo?", "other": "Remover aplicativos?" diff --git a/assets/translations/ru.json b/assets/translations/ru.json index 67c424d..f3b6a61 100644 --- a/assets/translations/ru.json +++ b/assets/translations/ru.json @@ -289,6 +289,7 @@ "shizukuBinderNotFound": "Совместимый сервис Shizuku не найден", "useSystemFont": "Использовать системный шрифт", "systemFontError": "Ошибка загрузки системного шрифта: {}", + "requestHeader": "Request header", "removeAppQuestion": { "one": "Удалить приложение?", "other": "Удалить приложения?" diff --git a/assets/translations/sv.json b/assets/translations/sv.json index 73fd8ea..2d914ef 100644 --- a/assets/translations/sv.json +++ b/assets/translations/sv.json @@ -273,6 +273,7 @@ "shizuku": "Shizuku", "root": "Root", "shizukuBinderNotFound": "Shizuku is not running", + "requestHeader": "Request header", "removeAppQuestion": { "one": "Ta Bort App?", "other": "Ta Bort Appar?" diff --git a/assets/translations/tr.json b/assets/translations/tr.json index c3a96f1..b56ae94 100644 --- a/assets/translations/tr.json +++ b/assets/translations/tr.json @@ -287,6 +287,7 @@ "shizuku": "Shizuku", "root": "Root", "shizukuBinderNotFound": "Shizuku is not running", + "requestHeader": "Request header", "removeAppQuestion": { "one": "Uygulamayı Kaldır?", "other": "Uygulamaları Kaldır?" diff --git a/assets/translations/zh.json b/assets/translations/zh.json index 3a92d78..7cbb40a 100644 --- a/assets/translations/zh.json +++ b/assets/translations/zh.json @@ -289,6 +289,7 @@ "shizukuBinderNotFound": "未发现兼容的 Shizuku 服务", "useSystemFont": "使用系统字体", "systemFontError": "加载系统字体出错:{}", + "requestHeader": "Request header", "removeAppQuestion": { "one": "是否删除应用?", "other": "是否删除应用?" diff --git a/lib/app_sources/html.dart b/lib/app_sources/html.dart index cd48bbc..ffe8095 100644 --- a/lib/app_sources/html.dart +++ b/lib/app_sources/html.dart @@ -141,7 +141,37 @@ class HTML extends AppSource { ], finalStepFormitems[0], ...commonFormItems, - ...finalStepFormitems.sublist(1) + ...finalStepFormitems.sublist(1), + [ + GeneratedFormSubForm( + 'requestHeader', + [ + [ + GeneratedFormTextField('requestHeader', + label: tr('requestHeader'), + additionalValidators: [ + (value) { + if ((value ?? 'empty:valid') + .split(':') + .map((e) => e.trim()) + .where((e) => e.isNotEmpty) + .length < + 2) { + return tr('invalidInput'); + } + return null; + } + ]) + ] + ], + label: tr('requestHeader'), + defaultValue: [ + { + 'requestHeader': + 'User-Agent: Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36' + } + ]) + ] ]; overrideVersionDetectionFormDefault('noVersionDetection', disableStandard: false, disableRelDate: true); @@ -151,10 +181,23 @@ class HTML extends AppSource { Future?> getRequestHeaders( {Map additionalSettings = const {}, bool forAPKDownload = false}) async { - return { - "User-Agent": - "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36" - }; + if (additionalSettings.isNotEmpty) { + if (additionalSettings['requestHeader']?.isNotEmpty != true) { + additionalSettings['requestHeader'] = []; + } + additionalSettings['requestHeader'] = additionalSettings['requestHeader'] + .where((l) => l['requestHeader'].isNotEmpty == true) + .toList(); + Map requestHeaders = {}; + for (int i = 0; i < (additionalSettings['requestHeader'].length); i++) { + var temp = + (additionalSettings['requestHeader'][i]['requestHeader'] as String) + .split(':'); + requestHeaders[temp[0].trim()] = temp.sublist(1).join(':').trim(); + } + return requestHeaders; + } + return null; } @override diff --git a/lib/app_sources/vlc.dart b/lib/app_sources/vlc.dart index 40a42ec..be77bf6 100644 --- a/lib/app_sources/vlc.dart +++ b/lib/app_sources/vlc.dart @@ -1,7 +1,6 @@ import 'package:easy_localization/easy_localization.dart'; import 'package:html/parser.dart'; import 'package:http/http.dart'; -import 'package:obtainium/app_sources/html.dart'; import 'package:obtainium/custom_errors.dart'; import 'package:obtainium/providers/source_provider.dart'; @@ -13,11 +12,13 @@ class VLC extends AppSource { @override Future?> getRequestHeaders( - {Map additionalSettings = const {}, - bool forAPKDownload = false}) => - HTML().getRequestHeaders( - additionalSettings: additionalSettings, - forAPKDownload: forAPKDownload); + {Map additionalSettings = const {}, + bool forAPKDownload = false}) async { + return { + "User-Agent": + "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36" + }; + } @override String sourceSpecificStandardizeURL(String url) {