mirror of
https://github.com/kodjodevf/mangayomi.git
synced 2026-04-14 09:10:21 +00:00
56 lines
2.4 KiB
Dart
56 lines
2.4 KiB
Dart
import 'package:d4rt/d4rt.dart';
|
|
import 'package:html/dom.dart';
|
|
import 'package:mangayomi/eval/model/document.dart';
|
|
|
|
class MDocumentBridge {
|
|
final documentBridgedClass = BridgedClassDefinition(
|
|
nativeType: MDocument,
|
|
name: 'MDocument',
|
|
constructors: {
|
|
'': (visitor, positionalArgs, namedArgs) {
|
|
return MDocument(positionalArgs[0] as Document);
|
|
},
|
|
},
|
|
getters: {
|
|
'body': (visitor, target) => (target as MDocument).body,
|
|
'documentElement': (visitor, target) =>
|
|
(target as MDocument).documentElement,
|
|
'head': (visitor, target) => (target as MDocument).head,
|
|
'parent': (visitor, target) => (target as MDocument).parent,
|
|
'outerHtml': (visitor, target) => (target as MDocument).outerHtml,
|
|
'text': (visitor, target) => (target as MDocument).text,
|
|
'children': (visitor, target) => (target as MDocument).children,
|
|
},
|
|
methods: {
|
|
'select': (visitor, target, positionalArgs, namedArgs) =>
|
|
(target as MDocument).select(positionalArgs[0] as String),
|
|
'selectFirst': (visitor, target, positionalArgs, namedArgs) =>
|
|
(target as MDocument).selectFirst(positionalArgs[0] as String),
|
|
'getElementsByClassName': (visitor, target, positionalArgs, namedArgs) =>
|
|
(target as MDocument).getElementsByClassName(
|
|
positionalArgs[0] as String,
|
|
),
|
|
'getElementsByTagName': (visitor, target, positionalArgs, namedArgs) =>
|
|
(target as MDocument).getElementsByTagName(
|
|
positionalArgs[0] as String,
|
|
),
|
|
'getElementById': (visitor, target, positionalArgs, namedArgs) =>
|
|
(target as MDocument).getElementById(positionalArgs[0] as String),
|
|
'attr': (visitor, target, positionalArgs, namedArgs) =>
|
|
(target as MDocument).attr(positionalArgs[0] as String),
|
|
'hasAttr': (visitor, target, positionalArgs, namedArgs) =>
|
|
(target as MDocument).hasAttr(positionalArgs[0] as String),
|
|
'xpath': (visitor, target, positionalArgs, namedArgs) =>
|
|
(target as MDocument).xpath(positionalArgs[0] as String),
|
|
'xpathFirst': (visitor, target, positionalArgs, namedArgs) =>
|
|
(target as MDocument).xpathFirst(positionalArgs[0] as String),
|
|
},
|
|
);
|
|
|
|
void registerBridgedClasses(D4rt interpreter) {
|
|
interpreter.registerBridgedClass(
|
|
documentBridgedClass,
|
|
'package:mangayomi/bridge_lib.dart',
|
|
);
|
|
}
|
|
}
|