fix
This commit is contained in:
parent
33410544f0
commit
1d9150b3bb
8 changed files with 77 additions and 32 deletions
|
|
@ -1,6 +1,7 @@
|
|||
import 'dart:convert';
|
||||
import 'package:flutter_qjs/flutter_qjs.dart';
|
||||
import 'package:mangayomi/eval/dart/model/m_bridge.dart';
|
||||
import 'package:mangayomi/eval/javascript/http.dart';
|
||||
import 'package:mangayomi/models/video.dart';
|
||||
|
||||
class JsVideosExtractors {
|
||||
|
|
@ -25,16 +26,27 @@ class JsVideosExtractors {
|
|||
return (await MBridge.vidBomExtractor(args[0])).encodeToJson();
|
||||
});
|
||||
runtime.onMessage('streamlareExtractor', (dynamic args) async {
|
||||
return (await MBridge.streamlareExtractor(args[0], args[1], args[2]))
|
||||
return (await MBridge.streamlareExtractor(
|
||||
args[0], args[1] ?? "", args[2] ?? ""))
|
||||
.encodeToJson();
|
||||
});
|
||||
runtime.onMessage('sendVidExtractor', (dynamic args) async {
|
||||
return (await MBridge.sendVidExtractor(args[0], args[1], args[2] ?? ""))
|
||||
return (await MBridge.sendVidExtractor(
|
||||
args[0],
|
||||
args[1] != null
|
||||
? jsonEncode((args[1] as Map?).toMapStringString)
|
||||
: null,
|
||||
args[2] ?? ""))
|
||||
.encodeToJson();
|
||||
});
|
||||
runtime.onMessage('yourUploadExtractor', (dynamic args) async {
|
||||
return (await MBridge.yourUploadExtractor(
|
||||
args[0], args[1], args[2], args[3] ?? ""))
|
||||
args[0],
|
||||
args[1] != null
|
||||
? jsonEncode((args[1] as Map?).toMapStringString)
|
||||
: null,
|
||||
args[2],
|
||||
args[3] ?? ""))
|
||||
.encodeToJson();
|
||||
});
|
||||
runtime.onMessage('gogoCdnExtractor', (dynamic args) async {
|
||||
|
|
@ -49,7 +61,12 @@ class JsVideosExtractors {
|
|||
});
|
||||
runtime.onMessage('mp4UploadExtractor', (dynamic args) async {
|
||||
return (await MBridge.mp4UploadExtractor(
|
||||
args[0], args[1], args[2], args[3] ?? ""))
|
||||
args[0],
|
||||
args[1] != null
|
||||
? jsonEncode((args[1] as Map?).toMapStringString)
|
||||
: null,
|
||||
args[2] ?? "",
|
||||
args[3] ?? ""))
|
||||
.encodeToJson();
|
||||
});
|
||||
runtime.onMessage('streamWishExtractor', (dynamic args) async {
|
||||
|
|
|
|||
|
|
@ -21,7 +21,8 @@ class JsHttpClient {
|
|||
source: null,
|
||||
reqcopyWith: (args[1] as Map?)?.toMapStringDynamic)
|
||||
.post(Uri.parse(args[2]),
|
||||
headers: (args[3] as Map?)?.toMapStringString, body: args[4]))
|
||||
headers: (args[3] as Map?)?.toMapStringString,
|
||||
body: jsonEncode((args[4] as Map?)?.toMapStringDynamic)))
|
||||
.toJson());
|
||||
});
|
||||
runtime.onMessage('http_put', (dynamic args) async {
|
||||
|
|
@ -40,7 +41,7 @@ class JsHttpClient {
|
|||
Uri.parse(args[0]),
|
||||
headers: (args[1] as Map?)?.map(
|
||||
(key, value) => MapEntry(key.toString(), value.toString())),
|
||||
body: args[2]))
|
||||
body: jsonEncode((args[2] as Map?)?.toMapStringDynamic)))
|
||||
.toJson());
|
||||
});
|
||||
runtime.onMessage('http_patch', (dynamic args) async {
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@ var extention = new DefaultExtension();
|
|||
Future<MManga> getDetail(String url) async {
|
||||
_init();
|
||||
final res = (await runtime.handlePromise(await runtime
|
||||
.evaluateAsync('jsonStringify(() => extention.getDetail("$url"))')))
|
||||
.evaluateAsync('jsonStringify(() => extention.getDetail(`$url`))')))
|
||||
.stringResult;
|
||||
return MManga.fromJson(jsonDecode(res));
|
||||
}
|
||||
|
|
@ -102,7 +102,7 @@ var extention = new DefaultExtension();
|
|||
Future<List<String>> getPageList(String url) async {
|
||||
_init();
|
||||
final res = (await runtime.handlePromise(await runtime.evaluateAsync(
|
||||
'jsonStringify(() => extention.getPageList("$url"))')))
|
||||
'jsonStringify(() => extention.getPageList(`$url`))')))
|
||||
.stringResult;
|
||||
|
||||
return jsonDecode(res);
|
||||
|
|
@ -111,10 +111,16 @@ var extention = new DefaultExtension();
|
|||
Future<List<Video>> getVideoList(String url) async {
|
||||
_init();
|
||||
final res = (await runtime.handlePromise(await runtime.evaluateAsync(
|
||||
'jsonStringify(() => extention.getVideoList("$url"))')))
|
||||
'jsonStringify(() => extention.getVideoList(`$url`))')))
|
||||
.stringResult;
|
||||
|
||||
return (jsonDecode(res) as List).map((e) => Video.fromJson(e)).toList();
|
||||
return (jsonDecode(res) as List)
|
||||
.where((element) =>
|
||||
element['url'] != null && element['originalUrl'] != null)
|
||||
.map((e) => Video.fromJson(e))
|
||||
.toList()
|
||||
.toSet()
|
||||
.toList();
|
||||
}
|
||||
|
||||
dynamic getFilterList() {
|
||||
|
|
|
|||
|
|
@ -39,28 +39,42 @@ console.log = function (message) {
|
|||
}
|
||||
sendMessage("log", JSON.stringify([message.toString()]));
|
||||
};
|
||||
function substringAfter(text, pattern) {
|
||||
const startIndex = text.indexOf(pattern);
|
||||
if (startIndex === -1) return text.substring(0);
|
||||
String.prototype.substringAfter = function(pattern) {
|
||||
const startIndex = this.indexOf(pattern);
|
||||
if (startIndex === -1) return this.substring(0);
|
||||
|
||||
const start = startIndex + pattern.length;
|
||||
return text.substring(start);
|
||||
return this.substring(start);
|
||||
}
|
||||
function substringBefore(text, pattern) {
|
||||
const endIndex = text.indexOf(pattern);
|
||||
if (endIndex === -1) return text.substring(0);
|
||||
|
||||
return text.substring(0, endIndex);
|
||||
String.prototype.substringAfterLast = function(pattern) {
|
||||
return this.split(pattern).pop();
|
||||
}
|
||||
function substringBeforeLast(text, pattern) {
|
||||
const endIndex = text.lastIndexOf(pattern);
|
||||
if (endIndex === -1) return text.substring(0);
|
||||
|
||||
return text.substring(0, endIndex);
|
||||
String.prototype.substringBefore = function(pattern) {
|
||||
const endIndex = this.indexOf(pattern);
|
||||
if (endIndex === -1) return this.substring(0);
|
||||
|
||||
return this.substring(0, endIndex);
|
||||
}
|
||||
function substringAfterLast(text, pattern) {
|
||||
return text.split(pattern).pop();
|
||||
|
||||
String.prototype.substringBeforeLast = function(pattern) {
|
||||
const endIndex = this.lastIndexOf(pattern);
|
||||
if (endIndex === -1) return this.substring(0);
|
||||
return this.substring(0, endIndex);
|
||||
}
|
||||
|
||||
String.prototype.substringBetween = function(left, right) {
|
||||
let startIndex = 0;
|
||||
let index = this.indexOf(left, startIndex);
|
||||
if (index === -1) return "";
|
||||
let leftIndex = index + left.length;
|
||||
let rightIndex = this.indexOf(right, leftIndex);
|
||||
if (rightIndex === -1) return "";
|
||||
startIndex = rightIndex + right.length;
|
||||
return this.substring(leftIndex, rightIndex);
|
||||
}
|
||||
|
||||
function cryptoHandler(text, iv, secretKeyString, encrypt) {
|
||||
return sendMessage(
|
||||
"cryptoHandler",
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ class Video {
|
|||
{this.headers, this.subtitles, this.audios});
|
||||
factory Video.fromJson(Map<String, dynamic> json) {
|
||||
return Video(json['url'], json['quality'], json['originalUrl'],
|
||||
headers: (json['headers'] as Map?).toMapStringString,
|
||||
headers: (json['headers'] as Map?)?.toMapStringString,
|
||||
subtitles: json['subtitles'] != null
|
||||
? (json['subtitles'] as List).map((e) => Track.fromJson(e)).toList()
|
||||
: [],
|
||||
|
|
|
|||
|
|
@ -224,10 +224,16 @@ class _ExtensionDetailState extends ConsumerState<ExtensionDetail> {
|
|||
.toList();
|
||||
isar.writeTxnSync(() {
|
||||
if (!useTestSourceCode) {
|
||||
isar.sources.putSync(widget.source
|
||||
..sourceCode = ""
|
||||
..isAdded = false
|
||||
..isPinned = false);
|
||||
if (source.isObsolete ?? false) {
|
||||
isar.sources.deleteSync(
|
||||
widget.source.id!);
|
||||
} else {
|
||||
isar.sources
|
||||
.putSync(widget.source
|
||||
..sourceCode = ""
|
||||
..isAdded = false
|
||||
..isPinned = false);
|
||||
}
|
||||
}
|
||||
isar.sourcePreferences
|
||||
.deleteAllSync(sourcePrefsIds);
|
||||
|
|
|
|||
|
|
@ -174,6 +174,7 @@ class _CreateExtensionState extends State<CreateExtension> {
|
|||
isNsfw: _isNsfw)
|
||||
..sourceCodeLanguage = _sourceCodeLanguage;
|
||||
source = source
|
||||
..isLocal = true
|
||||
..sourceCode = _sourceCodeLanguage ==
|
||||
SourceCodeLanguage.dart
|
||||
? _dartTemplate
|
||||
|
|
@ -284,7 +285,7 @@ TestSource main(MSource source) {
|
|||
}''';
|
||||
|
||||
String _jsSample(Source source) => '''
|
||||
const sources = [{
|
||||
const mangayomiSources = [{
|
||||
"name": "${source.name}",
|
||||
"lang": "${source.lang}",
|
||||
"baseUrl": "${source.baseUrl}",
|
||||
|
|
@ -297,7 +298,7 @@ const sources = [{
|
|||
"apiUrl": "",
|
||||
"dateFormat": "",
|
||||
"dateFormatLocale": "",
|
||||
"pkgName": "en/madara"
|
||||
"pkgName": ""
|
||||
}];
|
||||
|
||||
class DefaultExtension extends MProvider {
|
||||
|
|
|
|||
|
|
@ -144,8 +144,8 @@ Future<void> fetchSourcesList(
|
|||
}
|
||||
}
|
||||
}
|
||||
checkIfSourceIsObsolete(sourceList, isManga);
|
||||
});
|
||||
checkIfSourceIsObsolete(sourceList, isManga);
|
||||
}
|
||||
|
||||
void checkIfSourceIsObsolete(List<Source> sourceList, bool isManga) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue