Merge branch 'fix' into alpha

This commit is contained in:
guozhigq
2023-09-29 23:14:10 +08:00
4 changed files with 43 additions and 11 deletions

View File

@ -70,6 +70,7 @@ class _SeasonPanelState extends State<SeasonPanel> {
currentIndex = i;
setState(() {});
Get.back();
setState(() {});
}
@override

View File

@ -11,6 +11,7 @@ import 'package:pilipala/pages/preview/index.dart';
import 'package:pilipala/pages/video/detail/index.dart';
import 'package:pilipala/pages/video/detail/replyNew/index.dart';
import 'package:pilipala/utils/feed_back.dart';
import 'package:pilipala/utils/id_utils.dart';
import 'package:pilipala/utils/storage.dart';
import 'package:pilipala/utils/utils.dart';
@ -667,10 +668,11 @@ InlineSpan buildContent(
// 匹配 jumpUrl
String matchUrl = matchMember;
if (content.jumpUrl.isNotEmpty && hasMatchMember) {
List urlKeys = content.jumpUrl.keys.toList();
List urlKeys = content.jumpUrl.keys.toList().reversed.toList();
matchUrl = matchMember.splitMapJoin(
/// RegExp.escape() 转义特殊字符
RegExp(RegExp.escape(urlKeys.join("|"))),
RegExp(urlKeys.map((key) => key).join("|")),
// RegExp(RegExp.escape(urlKeys.join("|"))),
onMatch: (Match match) {
String matchStr = match[0]!;
String appUrlSchema = content.jumpUrl[matchStr]['app_url_schema'];
@ -688,6 +690,17 @@ InlineSpan buildContent(
recognizer: TapGestureRecognizer()
..onTap = () {
if (appUrlSchema == '') {
String str = Uri.parse(matchStr).pathSegments[0];
Map matchRes = IdUtils.matchAvorBv(input: str);
List matchKeys = matchRes.keys.toList();
if (matchKeys.isNotEmpty) {
if (matchKeys.first == 'BV') {
Get.toNamed(
'/searchResult',
parameters: {'keyword': matchRes['BV']},
);
}
} else {
Get.toNamed(
'/webview',
parameters: {
@ -696,6 +709,7 @@ InlineSpan buildContent(
'pageTitle': ''
},
);
}
} else {
if (appUrlSchema.startsWith('bilibili://search') &&
enableWordRe) {

View File

@ -11,6 +11,7 @@ import 'package:pilipala/pages/home/index.dart';
import 'package:pilipala/pages/media/index.dart';
import 'package:pilipala/utils/cookie.dart';
import 'package:pilipala/utils/event_bus.dart';
import 'package:pilipala/utils/id_utils.dart';
import 'package:pilipala/utils/login.dart';
import 'package:pilipala/utils/storage.dart';
import 'package:webview_flutter/webview_flutter.dart';
@ -50,7 +51,19 @@ class WebviewController extends GetxController {
// Update loading bar.
loadProgress.value = progress;
},
onPageStarted: (String url) {},
onPageStarted: (String url) {
String str = Uri.parse(url).pathSegments[0];
Map matchRes = IdUtils.matchAvorBv(input: str);
List matchKeys = matchRes.keys.toList();
if (matchKeys.isNotEmpty) {
if (matchKeys.first == 'BV') {
Get.offAndToNamed(
'/searchResult',
parameters: {'keyword': matchRes['BV']},
);
}
}
},
// 加载完成
onUrlChange: (UrlChange urlChange) async {
loadShow.value = false;

View File

@ -19,6 +19,10 @@ class Em {
return regCate(matchStr);
}, onNonMatch: (String str) {
if (str != '') {
str = str
.replaceAll('&gt;', '>')
.replaceAll('&#34;', '"')
.replaceAll('&#39;', "'");
Map map = {'type': 'text', 'text': str};
res.add(map);
}