initial
This commit is contained in:
49
lib/todo/WebConnector.dart
Normal file
49
lib/todo/WebConnector.dart
Normal file
@@ -0,0 +1,49 @@
|
||||
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) {}
|
||||
}
|
||||
Reference in New Issue
Block a user