diff --git a/lib/eval/bridge/element.dart b/lib/eval/bridge/element.dart index b89a88ff..45f70f07 100644 --- a/lib/eval/bridge/element.dart +++ b/lib/eval/bridge/element.dart @@ -22,7 +22,7 @@ class $MElement implements MElement, $Instance { 'element': BridgeFieldDef(BridgeTypeAnnotation($Element.$type)), }, getters: { - 'outerHTML': BridgeMethodDef(BridgeFunctionDef( + 'outerHtml': BridgeMethodDef(BridgeFunctionDef( returns: BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.string), nullable: true), )), @@ -129,8 +129,8 @@ class $MElement implements MElement, $Instance { @override $Value? $getProperty(Runtime runtime, String identifier) { switch (identifier) { - case 'outerHTML': - final res = $value.outerHTML; + case 'outerHtml': + final res = $value.outerHtml; return res == null ? const $null() : $String(res); case 'innerHtml': final res = $value.innerHtml; @@ -253,7 +253,7 @@ class $MElement implements MElement, $Instance { MElement? get nextElementSibling => $value.nextElementSibling; @override - String? get outerHTML => $value.outerHTML; + String? get outerHtml => $value.outerHtml; @override MElement? get parent => $value.parent; diff --git a/lib/eval/bridge/m_provider.dart b/lib/eval/bridge/m_provider.dart index 8421a339..47fd28c5 100644 --- a/lib/eval/bridge/m_provider.dart +++ b/lib/eval/bridge/m_provider.dart @@ -513,51 +513,6 @@ class $MProvider extends MProvider with $Bridge { false), ]), ), - 'querySelector': BridgeMethodDef( - BridgeFunctionDef( - returns: BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.string)), - params: [ - BridgeParameter( - 'html', - BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.string)), - false), - BridgeParameter( - 'selector', - BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.string)), - false), - BridgeParameter('typeElement', - BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.int)), false), - BridgeParameter( - 'attributes', - BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.string)), - false), - ]), - ), - 'querySelectorAll': BridgeMethodDef( - BridgeFunctionDef( - returns: BridgeTypeAnnotation(BridgeTypeRef( - CoreTypes.list, [BridgeTypeRef(CoreTypes.string)])), - params: [ - BridgeParameter( - 'html', - BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.string)), - false), - ], - namedParams: [ - BridgeParameter( - 'selector', - BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.string)), - false), - BridgeParameter('typeElement', - BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.int)), false), - BridgeParameter( - 'attributes', - BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.string)), - false), - BridgeParameter('typeRegExp', - BridgeTypeAnnotation(BridgeTypeRef(CoreTypes.int)), false), - ]), - ), 'xpath': BridgeMethodDef( BridgeFunctionDef( returns: BridgeTypeAnnotation(BridgeTypeRef( @@ -956,8 +911,6 @@ class $MProvider extends MProvider with $Bridge { .map((e) => $String(e)) .toList()); }), - "querySelector" => MBridge.querySelector, - "querySelectorAll" => MBridge.querySelectorAll, "xpath" => MBridge.xpath, _ => $Function((_, __, List<$Value?> args) { throw UnimplementedError('Unknown property $identifier'); diff --git a/lib/eval/model/element.dart b/lib/eval/model/element.dart index 2fd8bc39..06c96d43 100644 --- a/lib/eval/model/element.dart +++ b/lib/eval/model/element.dart @@ -6,7 +6,7 @@ class MElement { final Element? _element; - String? get outerHTML => _element?.outerHtml; + String? get outerHtml => _element?.outerHtml; String? get innerHtml => _element?.innerHtml; diff --git a/lib/eval/model/m_bridge.dart b/lib/eval/model/m_bridge.dart index ca31b377..f66a429e 100644 --- a/lib/eval/model/m_bridge.dart +++ b/lib/eval/model/m_bridge.dart @@ -41,7 +41,6 @@ import 'package:mangayomi/utils/extensions.dart'; import 'package:mangayomi/utils/reg_exp_matcher.dart'; import 'package:mangayomi/utils/xpath_selector.dart'; import 'package:xpath_selector_html_parser/xpath_selector_html_parser.dart'; -import 'package:html/parser.dart' as parser; import 'package:http/http.dart' as hp; import 'package:encrypt/encrypt.dart' as encrypt; @@ -67,125 +66,6 @@ class WordSet { } class MBridge { - ///Seaches for the first descendant node matching the given selectors, using a preorder traversal. - static const $Function querySelector = $Function(_querySelector); - - static $Value? _querySelector(_, __, List<$Value?> args) { - String html = args[0]!.$reified; - String selector = args[0]!.$reified; - int typeElement = args[0]!.$reified; - String attributes = args[0]!.$reified; - - String res = ""; - try { - var parse = parser.parse(html); - - // return querySelector text - if (typeElement == 0) { - res = parse.querySelector(selector)!.text.trim().trimLeft().trimRight(); - - // return querySelector innerHtml - } else if (typeElement == 1) { - res = parse - .querySelector(selector)! - .innerHtml - .trim() - .trimLeft() - .trimRight(); - - // return querySelector outerHtml - } else if (typeElement == 2) { - res = parse - .querySelector(selector)! - .outerHtml - .trim() - .trimLeft() - .trimRight(); - } - // return querySelector attributes - res = parse - .querySelector(selector)! - .attributes[attributes]! - .trim() - .trimLeft() - .trimRight(); - return $String(res); - } catch (_) { - return $String(""); - } - } - - ///Returns all descendant nodes matching the given selectors, using a preorder traversal. - static const $Function querySelectorAll = $Function(_querySelectorAll); - - static $Value? _querySelectorAll(_, __, List<$Value?> args) { - String html = args[0]!.$value; - String selector = args[1]!.$value; - int typeElement = args[2]!.$value; - String attributes = args[3]!.$value; - int typeRegExp = args[4]!.$value; - try { - var parse = parser.parse(html); - final a = parse.querySelectorAll(selector); - - List res = []; - for (var element in a) { - //text - if (typeElement == 0) { - res.add(element.text.trim().trimLeft().trimRight()); - } - - //innerHtml - else if (typeElement == 1) { - res.add(element.innerHtml.trim().trimLeft().trimRight()); - } - - //outerHtml - else if (typeElement == 2) { - res.add(element.outerHtml.trim().trimLeft().trimRight()); - } - - //attributes - else if (typeElement == 3) { - res.add( - element.attributes[attributes]!.trim().trimLeft().trimRight()); - } - } - // if (typeRegExp == 0) is the default parameter - if (typeRegExp == 0) { - return $List.wrap(res.map((e) => $String(e)).toList()); - } - - List resRegExp = []; - for (var element in res) { - //get first element of href that match - if (typeRegExp == 1) { - resRegExp.add(regHrefMatcher(element.trim().trimLeft().trimRight())); - } - - //get first element of src that match - else if (typeRegExp == 2) { - resRegExp.add(regSrcMatcher(element.trim().trimLeft().trimRight())); - } - - //get first element of datasrc that match - else if (typeRegExp == 3) { - resRegExp - .add(regDataSrcMatcher(element.trim().trimLeft().trimRight())); - } - - //get first element of img that match - else if (typeRegExp == 4) { - resRegExp.add(regImgMatcher(element.trim().trimLeft().trimRight())); - } - } - return $List.wrap(resRegExp.map((e) => $String(e)).toList()); - } catch (_) { - // botToast(e.toString()); - return $List.wrap([]); - } - } - static MDocument parsHtml(String html) { return MDocument(Document.html(html)); }