fix
This commit is contained in:
parent
00841d98b6
commit
c2c18af20b
7 changed files with 40 additions and 7 deletions
|
|
@ -655,6 +655,16 @@ class $MProvider extends MProvider with $Bridge<MProvider> {
|
|||
false),
|
||||
]),
|
||||
),
|
||||
'unpackJsAndCombine': BridgeMethodDef(
|
||||
BridgeFunctionDef(
|
||||
returns: BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.string)),
|
||||
params: [
|
||||
BridgeParameter(
|
||||
'code',
|
||||
BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.string)),
|
||||
false),
|
||||
]),
|
||||
),
|
||||
'evalJs': BridgeMethodDef(
|
||||
BridgeFunctionDef(
|
||||
returns: BridgeTypeAnnotation(BridgeTypeRef(
|
||||
|
|
@ -880,7 +890,7 @@ class $MProvider extends MProvider with $Bridge<MProvider> {
|
|||
}),
|
||||
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
|
||||
"unpackJsAndCombine" => MBridge.unpackJsAndCombine,
|
||||
"unpackJs" => MBridge.unpackJs,
|
||||
"regExp" => $Function((_, __, List<$Value?> args) {
|
||||
return $String(MBridge.regExp(args[0]!.$value, args[1]!.$value,
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import 'package:flutter/material.dart';
|
|||
import 'package:html/dom.dart';
|
||||
import 'package:intl/date_symbol_data_local.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:js_packer/js_packer.dart';
|
||||
import 'package:json_path/json_path.dart';
|
||||
import 'package:mangayomi/eval/model/document.dart';
|
||||
import 'package:mangayomi/models/manga.dart';
|
||||
|
|
@ -122,6 +123,19 @@ class MBridge {
|
|||
static const $Function unpackJs = $Function(_unpackJs);
|
||||
|
||||
static $Value? _unpackJs(_, __, List<$Value?> args) {
|
||||
String code = args[0]!.$reified;
|
||||
try {
|
||||
final jsPacker = JSPacker(code);
|
||||
return $String(jsPacker.unpack() ?? "");
|
||||
} catch (_) {
|
||||
return $String("");
|
||||
}
|
||||
}
|
||||
|
||||
///Unpack a JS code
|
||||
static const $Function unpackJsAndCombine = $Function(_unpackJsAndCombine);
|
||||
|
||||
static $Value? _unpackJsAndCombine(_, __, List<$Value?> args) {
|
||||
String code = args[0]!.$reified;
|
||||
try {
|
||||
return $String(JsUnpacker.unpackAndCombine(code) ?? "");
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import 'package:http_interceptor/http_interceptor.dart';
|
||||
import 'package:js_packer/js_packer.dart';
|
||||
import 'package:mangayomi/models/video.dart';
|
||||
import 'package:mangayomi/services/http/interceptor.dart';
|
||||
import 'package:mangayomi/utils/cryptoaes/js_unpacker.dart';
|
||||
import 'package:mangayomi/utils/extensions/string_extensions.dart';
|
||||
import 'package:mangayomi/utils/xpath_selector.dart';
|
||||
|
||||
|
|
@ -18,7 +18,7 @@ class FilemoonExtractor {
|
|||
.queryXPath('//script[contains(text(), "eval")]/text()')
|
||||
.attr;
|
||||
|
||||
final unpacked = JsUnpacker.unpackAndCombine(jsEval!) ?? "";
|
||||
final unpacked = JSPacker(jsEval!).unpack() ?? "";
|
||||
|
||||
final masterUrl = unpacked.isNotEmpty
|
||||
? unpacked.substringAfter('{file:"').substringBefore('"}')
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import 'package:http_interceptor/http_interceptor.dart';
|
||||
import 'package:js_packer/js_packer.dart';
|
||||
import 'package:mangayomi/models/video.dart';
|
||||
import 'package:mangayomi/services/http/interceptor.dart';
|
||||
import 'package:mangayomi/utils/cryptoaes/js_unpacker.dart';
|
||||
import 'package:mangayomi/utils/extensions/string_extensions.dart';
|
||||
import 'package:mangayomi/utils/xpath_selector.dart';
|
||||
|
||||
|
|
@ -23,7 +23,7 @@ class Mp4uploadExtractor {
|
|||
.attrs;
|
||||
|
||||
if (scriptElementWithEval.isNotEmpty) {
|
||||
script = JsUnpacker.unpackAndCombine(script) ?? "";
|
||||
script = JSPacker(script).unpack() ?? "";
|
||||
} else {
|
||||
final scriptElementWithSrc = xpathSelector(response.body)
|
||||
.queryXPath('//script[contains(text(), "player.src")]/text()')
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import 'package:http_interceptor/http_interceptor.dart';
|
||||
import 'package:js_packer/js_packer.dart';
|
||||
import 'package:mangayomi/models/video.dart';
|
||||
import 'package:mangayomi/services/http/interceptor.dart';
|
||||
import 'package:mangayomi/utils/cryptoaes/js_unpacker.dart';
|
||||
import 'package:mangayomi/utils/extensions/others.dart';
|
||||
import 'package:mangayomi/utils/extensions/string_extensions.dart';
|
||||
import 'package:mangayomi/utils/xpath_selector.dart';
|
||||
|
|
@ -26,7 +26,7 @@ class StreamWishExtractor {
|
|||
.let(
|
||||
(script) {
|
||||
if (script.contains("function(p,a,c")) {
|
||||
return JsUnpacker.unpackAndCombine(script) ?? "";
|
||||
return JSPacker(script).unpack() ?? "";
|
||||
}
|
||||
return script;
|
||||
},
|
||||
|
|
|
|||
|
|
@ -734,6 +734,14 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.6.7"
|
||||
js_packer:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: js_packer
|
||||
sha256: f45ffa90165a810d7134f0b96b54068e4aac9d80a8b181eafa3978ec6dbc66a3
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.0.5"
|
||||
json_annotation:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
|
|
|||
|
|
@ -66,6 +66,7 @@ dependencies:
|
|||
ffi: ^2.1.0
|
||||
ffigen: ^11.0.0
|
||||
http_interceptor: ^2.0.0-beta.8
|
||||
js_packer: ^0.0.5
|
||||
flutter_windows_webview:
|
||||
git:
|
||||
url: https://github.com/wgh136/flutter_windows_webview
|
||||
|
|
|
|||
Loading…
Reference in a new issue