mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
opt: regTitle
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
import 'package:html/parser.dart' show parse;
|
||||
|
||||
class Em {
|
||||
static regCate(String origin) {
|
||||
String str = origin;
|
||||
@@ -12,32 +14,37 @@ class Em {
|
||||
static regTitle(String origin) {
|
||||
RegExp exp = RegExp('<[^>]*>([^<]*)</[^>]*>');
|
||||
List res = [];
|
||||
origin.splitMapJoin(exp, onMatch: (Match match) {
|
||||
String matchStr = match[0]!;
|
||||
Map map = {'type': 'em', 'text': regCate(matchStr)};
|
||||
res.add(map);
|
||||
return regCate(matchStr);
|
||||
}, onNonMatch: (String str) {
|
||||
if (str != '') {
|
||||
str = decodeHtmlEntities(str);
|
||||
Map map = {'type': 'text', 'text': str};
|
||||
origin.splitMapJoin(
|
||||
exp,
|
||||
onMatch: (Match match) {
|
||||
String matchStr = match[0]!;
|
||||
Map map = {'type': 'em', 'text': regCate(matchStr)};
|
||||
res.add(map);
|
||||
}
|
||||
return str;
|
||||
});
|
||||
return regCate(matchStr);
|
||||
},
|
||||
onNonMatch: (String str) {
|
||||
if (str != '') {
|
||||
str = parse(str).body?.text ?? str;
|
||||
Map map = {'type': 'text', 'text': str};
|
||||
res.add(map);
|
||||
}
|
||||
return str;
|
||||
},
|
||||
);
|
||||
return res;
|
||||
}
|
||||
|
||||
static String decodeHtmlEntities(String title) {
|
||||
return title
|
||||
.replaceAll('<', '<')
|
||||
.replaceAll('>', '>')
|
||||
.replaceAll('"', '"')
|
||||
.replaceAll(''', "'")
|
||||
.replaceAll('"', '"')
|
||||
.replaceAll(''', "'")
|
||||
.replaceAll(' ', " ")
|
||||
.replaceAll('&', "&")
|
||||
.replaceAll(''', "'");
|
||||
return parse(title).body?.text ?? title;
|
||||
// return title
|
||||
// .replaceAll('<', '<')
|
||||
// .replaceAll('>', '>')
|
||||
// .replaceAll('"', '"')
|
||||
// .replaceAll(''', "'")
|
||||
// .replaceAll('"', '"')
|
||||
// .replaceAll(''', "'")
|
||||
// .replaceAll(' ', " ")
|
||||
// .replaceAll('&', "&")
|
||||
// .replaceAll(''', "'");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user