Files
HiddingselAppOriginal/lib/todo/WebConnector.dart
2026-02-13 15:53:22 +01:00

49 lines
1.6 KiB
Dart

import 'package:html/parser.dart' show parse;
class WebViewHelper {
static String getHtmlContentWithoutMedia(String htmlContent) {
final doc = parse(addHead(htmlContent));
doc.getElementsByClassName('post_title').forEach((element) {
element.remove();
});
doc.getElementsByClassName('g-breadcrumbs').forEach((element) {
element.remove();
});
doc.getElementsByClassName('post_navigation').forEach((element) {
element.remove();
});
doc.getElementsByTagName('img').forEach((element) {
element.remove();
});
doc.getElementsByTagName('video').forEach((element) {
element.remove();
});
doc.getElementsByTagName('iframe').forEach((element) {
element.remove();
});
return doc.documentElement!.innerHtml;
}
static String addHead(String htmlContent) =>
'<!DOCTYPE html><html><head><meta name="viewport" content="width=device-width, initial-scale=1.0"><style> * { font-family: Segoe UI, Frutiger, Frutiger Linotype, Dejavu Sans, Helvetica Neue, Arial, sans-serif; } </style></head><body>$htmlContent</body></html>';
static List<String> getImageMedia(String htmlContent) {
final doc = parse(htmlContent);
return doc
.getElementsByClassName('w-grid-item-anchor')
.map((e) => e.attributes['href']!)
.toList();
}
static List<String> getWebVideoMedia(String htmlContent) => [];
static List<String> getVideoMedia(String htmlContent) {
final doc = parse(htmlContent);
return doc
.getElementsByTagName('source')
.map((element) => element.attributes['src']!)
.toList();
}
static getContent(String htmlContent) {}
}