fix
This commit is contained in:
parent
9df0fe73e1
commit
170f07e3be
5 changed files with 55 additions and 44 deletions
|
|
@ -40,6 +40,13 @@ class $MProvider extends MProvider with $Bridge<MProvider> {
|
|||
'baseUrl': BridgeMethodDef(BridgeFunctionDef(
|
||||
returns: BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.string),
|
||||
nullable: true))),
|
||||
'headers': BridgeMethodDef(BridgeFunctionDef(
|
||||
returns: BridgeTypeAnnotation(
|
||||
BridgeTypeRef(CoreTypes.map, [
|
||||
BridgeTypeRef(CoreTypes.string),
|
||||
BridgeTypeRef(CoreTypes.string)
|
||||
]),
|
||||
nullable: true))),
|
||||
},
|
||||
methods: {
|
||||
'getLatestUpdates': BridgeMethodDef(BridgeFunctionDef(
|
||||
|
|
@ -91,15 +98,6 @@ class $MProvider extends MProvider with $Bridge<MProvider> {
|
|||
BridgeParameter('url',
|
||||
BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.string)), false),
|
||||
])),
|
||||
'getHeaders': BridgeMethodDef(BridgeFunctionDef(
|
||||
returns: BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.map, [
|
||||
BridgeTypeRef(CoreTypes.string),
|
||||
BridgeTypeRef(CoreTypes.string)
|
||||
])),
|
||||
params: [
|
||||
BridgeParameter('url',
|
||||
BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.string)), false),
|
||||
])),
|
||||
'getFilterList': BridgeMethodDef(BridgeFunctionDef(
|
||||
returns: BridgeTypeAnnotation(BridgeTypeRef(
|
||||
CoreTypes.list, [BridgeTypeRef(CoreTypes.dynamic)])),
|
||||
|
|
@ -1045,13 +1043,12 @@ class $MProvider extends MProvider with $Bridge<MProvider> {
|
|||
}
|
||||
|
||||
@override
|
||||
Map<String, String> getHeaders(String url) {
|
||||
final res = $_invoke('getHeaders', [$String(url)]);
|
||||
Map<String, String> headers = {};
|
||||
if (res is $Map) {
|
||||
headers = res.$reified.toMapStringString!;
|
||||
Map<String, String> get headers {
|
||||
try {
|
||||
return ($_get('headers') as Map).toMapStringString!;
|
||||
} catch (e) {
|
||||
return {};
|
||||
}
|
||||
return headers;
|
||||
}
|
||||
|
||||
$MVideo _toMVideo(Video e) =>
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import 'package:intl/intl.dart';
|
|||
import 'package:js_packer/js_packer.dart';
|
||||
import 'package:json_path/json_path.dart';
|
||||
import 'package:mangayomi/eval/dart/model/document.dart';
|
||||
import 'package:mangayomi/eval/javascript/http.dart';
|
||||
import 'package:mangayomi/models/manga.dart';
|
||||
import 'package:mangayomi/services/anime_extractors/dood_extractor.dart';
|
||||
import 'package:mangayomi/services/anime_extractors/filemoon.dart';
|
||||
|
|
@ -271,19 +272,26 @@ class MBridge {
|
|||
val.add(element);
|
||||
}
|
||||
}
|
||||
|
||||
bool error = false;
|
||||
List<dynamic> valD = [];
|
||||
for (var date in val) {
|
||||
if (date.toString().isNotEmpty) {
|
||||
valD.add(parseChapterDate(
|
||||
date,
|
||||
dateFormat,
|
||||
dateFormatLocale,
|
||||
(val) {
|
||||
dateFormat = val.$1;
|
||||
dateFormatLocale = val.$2;
|
||||
},
|
||||
));
|
||||
String dateStr = "";
|
||||
if (error) {
|
||||
dateStr = DateTime.now().millisecondsSinceEpoch.toString();
|
||||
} else {
|
||||
dateStr = parseChapterDate(
|
||||
date,
|
||||
dateFormat,
|
||||
dateFormatLocale,
|
||||
(val) {
|
||||
dateFormat = val.$1;
|
||||
dateFormatLocale = val.$2;
|
||||
error = val.$3;
|
||||
},
|
||||
);
|
||||
}
|
||||
valD.add(dateStr);
|
||||
}
|
||||
}
|
||||
return valD;
|
||||
|
|
@ -330,8 +338,7 @@ class MBridge {
|
|||
String url, String? headers, String prefix, String suffix) async {
|
||||
Map<String, String> newHeaders = {};
|
||||
if (headers != null) {
|
||||
newHeaders = (jsonDecode(headers) as Map)
|
||||
.map((key, value) => MapEntry(key.toString(), value.toString()));
|
||||
newHeaders = (jsonDecode(headers) as Map).toMapStringString!;
|
||||
}
|
||||
return await Mp4uploadExtractor()
|
||||
.videosFromUrl(url, newHeaders, prefix: prefix, suffix: suffix);
|
||||
|
|
@ -364,7 +371,7 @@ class MBridge {
|
|||
|
||||
//Parse a chapter date to millisecondsSinceEpoch
|
||||
static String parseChapterDate(String date, String dateFormat,
|
||||
String dateFormatLocale, Function((String, String)) newLocale) {
|
||||
String dateFormatLocale, Function((String, String, bool)) newLocale) {
|
||||
int parseRelativeDate(String date) {
|
||||
final number = int.tryParse(RegExp(r"(\d+)").firstMatch(date)!.group(0)!);
|
||||
if (number == null) return 0;
|
||||
|
|
@ -456,7 +463,7 @@ class MBridge {
|
|||
|
||||
for (var locale in supportedLocales) {
|
||||
for (var dateFormat in _dateFormats) {
|
||||
newLocale((dateFormat, locale));
|
||||
newLocale((dateFormat, locale, false));
|
||||
try {
|
||||
initializeDateFormatting(locale);
|
||||
if (WordSet(["yesterday", "يوم واحد"]).startsWith(date)) {
|
||||
|
|
@ -496,8 +503,8 @@ class MBridge {
|
|||
} catch (_) {}
|
||||
}
|
||||
}
|
||||
// botToast(e.toString());
|
||||
throw Exception(e);
|
||||
newLocale((dateFormat, dateFormatLocale, true));
|
||||
return DateTime.now().millisecondsSinceEpoch.toString();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -513,8 +520,7 @@ class MBridge {
|
|||
String url, String? headers, String prefix) async {
|
||||
Map<String, String> newHeaders = {};
|
||||
if (headers != null) {
|
||||
newHeaders = (jsonDecode(headers) as Map)
|
||||
.map((key, value) => MapEntry(key.toString(), value.toString()));
|
||||
newHeaders = (jsonDecode(headers) as Map).toMapStringString!;
|
||||
}
|
||||
|
||||
return await SendvidExtractor(newHeaders)
|
||||
|
|
@ -533,8 +539,7 @@ class MBridge {
|
|||
String url, String? headers, String? name, String prefix) async {
|
||||
Map<String, String> newHeaders = {};
|
||||
if (headers != null) {
|
||||
newHeaders = (jsonDecode(headers) as Map)
|
||||
.map((key, value) => MapEntry(key.toString(), value.toString()));
|
||||
newHeaders = (jsonDecode(headers) as Map).toMapStringString!;
|
||||
}
|
||||
return await YourUploadExtractor().videosFromUrl(url, newHeaders,
|
||||
prefix: prefix, name: name ?? "YourUpload");
|
||||
|
|
@ -566,8 +571,7 @@ class MBridge {
|
|||
String? headers, List<Track>? subtitles, List<Track>? audios) {
|
||||
Map<String, String> newHeaders = {};
|
||||
if (headers != null) {
|
||||
newHeaders = (jsonDecode(headers) as Map)
|
||||
.map((key, value) => MapEntry(key.toString(), value.toString()));
|
||||
newHeaders = (jsonDecode(headers) as Map).toMapStringString!;
|
||||
}
|
||||
return Video(url, quality, originalUrl,
|
||||
headers: newHeaders, subtitles: subtitles ?? [], audios: audios ?? []);
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ abstract class MProvider {
|
|||
|
||||
String? get baseUrl;
|
||||
|
||||
Map<String, String> getHeaders(String url);
|
||||
Map<String, String> get headers;
|
||||
|
||||
Future<MPages> getLatestUpdates(int page);
|
||||
|
||||
|
|
|
|||
|
|
@ -39,16 +39,19 @@ class DartExtensionService {
|
|||
);
|
||||
if (res is $Map) {
|
||||
headers = (res.$reified).toMapStringString!;
|
||||
} else if (res is Map) {
|
||||
headers = res.toMapStringString!;
|
||||
} else {
|
||||
throw "";
|
||||
}
|
||||
return headers;
|
||||
} catch (_) {
|
||||
try {
|
||||
headers = _executeLib().getHeaders(source!.baseUrl!);
|
||||
headers = _executeLib().headers;
|
||||
} catch (_) {
|
||||
return {};
|
||||
}
|
||||
}
|
||||
return {};
|
||||
return headers;
|
||||
}
|
||||
|
||||
String get sourceBaseUrl {
|
||||
|
|
|
|||
|
|
@ -686,8 +686,11 @@ class _MangaChapterPageGalleryState
|
|||
LoadState.completed) {
|
||||
if (_failedToLoadImage.value ==
|
||||
true) {
|
||||
_failedToLoadImage.value =
|
||||
false;
|
||||
Future.delayed(const Duration(
|
||||
milliseconds: 10))
|
||||
.then((value) =>
|
||||
_failedToLoadImage
|
||||
.value = false);
|
||||
}
|
||||
return StreamBuilder(
|
||||
builder: (context, data) {
|
||||
|
|
@ -717,7 +720,11 @@ class _MangaChapterPageGalleryState
|
|||
LoadState.failed) {
|
||||
if (_failedToLoadImage.value ==
|
||||
false) {
|
||||
_failedToLoadImage.value = true;
|
||||
Future.delayed(const Duration(
|
||||
milliseconds: 10))
|
||||
.then((value) =>
|
||||
_failedToLoadImage
|
||||
.value = true);
|
||||
}
|
||||
return Container(
|
||||
color: getBackgroundColor(
|
||||
|
|
|
|||
Loading…
Reference in a new issue