49 lines
1.6 KiB
Dart
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) {}
|
|
} |