chore: code clean up

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2024-11-10 09:49:06 +08:00
parent 03d405e197
commit 59910e275e
133 changed files with 597 additions and 816 deletions

View File

@@ -1,16 +1,12 @@
import 'dart:async';
import 'package:PiliPalaX/models/bangumi/info.dart';
import 'package:PiliPalaX/models/common/reply_type.dart';
import 'package:PiliPalaX/pages/video/detail/reply/widgets/reply_item.dart';
import 'package:PiliPalaX/utils/extension.dart';
import 'package:app_links/app_links.dart';
import 'package:flutter/material.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:get/get.dart';
import 'package:path/path.dart';
import '../http/search.dart';
import '../models/common/search_type.dart';
import '../pages/video/detail/reply_reply/view.dart';
import 'id_utils.dart';
import 'url_utils.dart';
@@ -36,7 +32,7 @@ class PiliScheme {
final String path = value.path;
if (scheme == 'bilibili') {
print(value);
debugPrint('$value');
if (host == 'root') {
Navigator.popUntil(
Get.context!, (Route<dynamic> route) => route.isFirst);
@@ -130,15 +126,15 @@ class PiliScheme {
} else if (host == 'comment' && path.startsWith("/detail/")) {
//bilibili://comment/detail/17/832703053858603029/238686570016/?subType=0&anchor=238686628816&showEnter=1&extraIntentId=0&scene=1&enterName=%E6%9F%A5%E7%9C%8B%E5%8A%A8%E6%80%81%E8%AF%A6%E6%83%85&enterUri=bilibili://following/detail/832703053858603029
//fmt.Sprintf("bilibili://comment/detail/%d/%d/%d/?subType=%d&anchor=%d&showEnter=1&extraIntentId=%d", rp.Type, rp.Oid, rootID, subType, rp.RpID, extraIntentID)
print(value.queryParameters);
debugPrint('${value.queryParameters}');
List<String> pathParts = path.split('/');
int type = int.parse(pathParts[2]);
// int type = int.parse(pathParts[2]);
int oid = int.parse(pathParts[3]);
int rootId = int.parse(pathParts[4]);
int subType = int.parse(value.queryParameters['subType'] ?? '0');
int RpID = int.parse(value.queryParameters['anchor'] ?? '0');
int extraIntentId =
int.parse(value.queryParameters['extraIntentId'] ?? '0');
// int rootId = int.parse(pathParts[4]);
// int subType = int.parse(value.queryParameters['subType'] ?? '0');
int rpID = int.parse(value.queryParameters['anchor'] ?? '0');
// int extraIntentId =
// int.parse(value.queryParameters['extraIntentId'] ?? '0');
Get.to(
() => Scaffold(
resizeToAvoidBottomInset: false,
@@ -164,7 +160,7 @@ class PiliScheme {
),
body: VideoReplyReplyPanel(
oid: oid,
rpid: RpID,
rpid: rpID,
source: 'routePush',
replyType: ReplyType.dynamics,
firstFloor: null),
@@ -216,7 +212,7 @@ class PiliScheme {
getToOpusWeb();
}
} else {
print(value);
debugPrint('$value');
SmartDialog.showToast('未知路径:$value,请截图反馈给开发者');
//Utils.toDupNamed(
// '/webviewnew',
@@ -274,7 +270,7 @@ class PiliScheme {
// 番剧跳转
static Future<void> bangumiPush(int? seasonId, int? epId) async {
print('seasonId: $seasonId, epId: $epId');
debugPrint('seasonId: $seasonId, epId: $epId');
// SmartDialog.showLoading<dynamic>(msg: '获取中...');
try {
Utils.viewBangumi(seasonId: seasonId, epId: epId);
@@ -321,10 +317,10 @@ class PiliScheme {
// final String scheme = value.scheme!;
final String host = value.host;
final String? path = value.path;
Map<String, String>? query = value.queryParameters;
Map<String, String> query = value.queryParameters;
RegExp regExp = RegExp(r'^((www\.)|(m\.))?bilibili\.com$');
if (regExp.hasMatch(host)) {
print('bilibili.com');
debugPrint('bilibili.com');
} else if (host.contains('live')) {
int roomId = int.parse(path!.split('/').last);
Utils.toDupNamed(
@@ -383,21 +379,19 @@ class PiliScheme {
final String area = pathPart[1] == 'mobile' ? pathPart[2] : pathPart[1];
switch (area) {
case 'bangumi':
print('番剧');
debugPrint('番剧');
for (var pathSegment in pathPart) {
if (pathSegment.startsWith('ss')) {
print(pathSegment);
bangumiPush(matchNum(pathSegment).first, null);
break;
} else if (pathSegment.startsWith('ep')) {
print(pathSegment);
bangumiPush(null, matchNum(pathSegment).first);
break;
}
}
break;
case 'video':
print('投稿');
debugPrint('投稿');
final Map<String, dynamic> map = IdUtils.matchAvorBv(input: path);
if (map.containsKey('AV')) {
videoPush(map['AV']! as int, null);
@@ -408,9 +402,9 @@ class PiliScheme {
}
break;
case 'read':
print('专栏');
debugPrint('专栏');
late String id;
if (query != null && query['id'] != null) {
if (query['id'] != null) {
id = 'cv${matchNum(query['id']!).first}';
} else {
id = 'cv${matchNum(path).firstOrNull}';
@@ -423,7 +417,7 @@ class PiliScheme {
});
break;
case 'space':
print('个人空间');
debugPrint('个人空间');
Utils.toDupNamed(
'/member?mid=${pathPart[1] == 'mobile' ? pathPart.getOrNull(3) : pathPart.getOrNull(2)}',
arguments: {'face': ''});

View File

@@ -1,6 +1,5 @@
import 'dart:typed_data';
import 'package:PiliPalaX/http/index.dart';
import 'package:device_info_plus/device_info_plus.dart';
import 'package:dio/dio.dart';
import 'package:flutter/material.dart';
@@ -110,7 +109,6 @@ class DownloadUtils {
Uint8List.fromList(response.data),
quality: 100,
fileName: picName,
extension: 'jpg',
// 保存到 PiliPalaX文件夹
androidRelativePath: "Pictures/PiliPalaX",
skipIfExists: false,

View File

@@ -1,10 +1,11 @@
import 'dart:math';
import 'package:flutter/cupertino.dart';
import 'package:flutter/rendering.dart';
import 'storage.dart';
class Grid {
static double maxRowWidth = GStorage.setting.get(SettingBoxKey.maxRowWidth, defaultValue: 240.0) as double;
static double maxRowWidth = GStorage.setting
.get(SettingBoxKey.maxRowWidth, defaultValue: 240.0) as double;
//
// static double calculateActualWidth(BuildContext context, double maxCrossAxisExtent, double crossAxisSpacing, {double? screenWidthOffset}) {
// double screenWidth = MediaQuery.of(context).size.width;
@@ -22,6 +23,7 @@ class Grid {
// return columnWidth;
// }
}
class SliverGridDelegateWithExtentAndRatio extends SliverGridDelegate {
/// Creates a delegate that makes grid layouts with tiles that have a maximum
/// cross-axis extent.
@@ -35,7 +37,7 @@ class SliverGridDelegateWithExtentAndRatio extends SliverGridDelegate {
this.crossAxisSpacing = 0.0,
this.childAspectRatio = 1.0,
this.mainAxisExtent = 0.0,
}) : assert(maxCrossAxisExtent > 0),
}) : assert(maxCrossAxisExtent > 0),
assert(mainAxisSpacing >= 0),
assert(crossAxisSpacing >= 0),
assert(childAspectRatio > 0);
@@ -62,13 +64,10 @@ class SliverGridDelegateWithExtentAndRatio extends SliverGridDelegate {
/// The ratio of the cross-axis to the main-axis extent of each child.
final double childAspectRatio;
/// The extent of each tile in the main axis. If provided, it would add
/// after [childAspectRatio] is used.
final double mainAxisExtent;
bool _debugAssertIsValid(double crossAxisExtent) {
assert(crossAxisExtent > 0.0);
assert(maxCrossAxisExtent > 0.0);
@@ -81,7 +80,9 @@ class SliverGridDelegateWithExtentAndRatio extends SliverGridDelegate {
@override
SliverGridLayout getLayout(SliverConstraints constraints) {
assert(_debugAssertIsValid(constraints.crossAxisExtent));
int crossAxisCount = ((constraints.crossAxisExtent - crossAxisSpacing) / (maxCrossAxisExtent + crossAxisSpacing)).ceil();
int crossAxisCount = ((constraints.crossAxisExtent - crossAxisSpacing) /
(maxCrossAxisExtent + crossAxisSpacing))
.ceil();
// Ensure a minimum count of 1, can be zero and result in an infinite extent
// below when the window size is 0.
crossAxisCount = max(1, crossAxisCount);
@@ -90,7 +91,8 @@ class SliverGridDelegateWithExtentAndRatio extends SliverGridDelegate {
constraints.crossAxisExtent - crossAxisSpacing * (crossAxisCount - 1),
);
final double childCrossAxisExtent = usableCrossAxisExtent / crossAxisCount;
final double childMainAxisExtent = childCrossAxisExtent / childAspectRatio + mainAxisExtent;
final double childMainAxisExtent =
childCrossAxisExtent / childAspectRatio + mainAxisExtent;
return SliverGridRegularTileLayout(
crossAxisCount: crossAxisCount,
mainAxisStride: childMainAxisExtent + mainAxisSpacing,
@@ -103,10 +105,10 @@ class SliverGridDelegateWithExtentAndRatio extends SliverGridDelegate {
@override
bool shouldRelayout(SliverGridDelegateWithExtentAndRatio oldDelegate) {
return oldDelegate.maxCrossAxisExtent != maxCrossAxisExtent
|| oldDelegate.mainAxisSpacing != mainAxisSpacing
|| oldDelegate.crossAxisSpacing != crossAxisSpacing
|| oldDelegate.childAspectRatio != childAspectRatio
|| oldDelegate.mainAxisExtent != mainAxisExtent;
return oldDelegate.maxCrossAxisExtent != maxCrossAxisExtent ||
oldDelegate.mainAxisSpacing != mainAxisSpacing ||
oldDelegate.crossAxisSpacing != crossAxisSpacing ||
oldDelegate.childAspectRatio != childAspectRatio ||
oldDelegate.mainAxisExtent != mainAxisExtent;
}
}
}

View File

@@ -177,6 +177,7 @@ class SettingBoxKey {
allowRotateScreen = 'allowRotateScreen',
horizontalScreen = 'horizontalScreen',
p1080 = 'p1080',
// ignore: constant_identifier_names
CDNService = 'CDNService',
disableAudioCDN = 'disableAudioCDN',
// enableCDN = 'enableCDN',

View File

@@ -775,8 +775,6 @@ class Utils {
WidgetsBinding.instance.platformDispatcher.views.single)
.padding
.top;
print("paddingTop");
print(paddingTop);
paddingTop += width * 9 / 16;
return height - paddingTop;
}

View File

@@ -1,6 +1,7 @@
import 'package:PiliPalaX/models/video/play/CDN.dart';
import 'package:PiliPalaX/models/video/play/url.dart';
import 'package:PiliPalaX/utils/storage.dart';
import 'package:flutter/material.dart';
import '../models/live/room_info.dart';
@@ -42,10 +43,10 @@ class VideoUtils {
if (videoUrl == null) {
return "";
}
print("videoUrl:$videoUrl");
debugPrint("videoUrl:$videoUrl");
String defaultCDNHost = CDNServiceCode.fromCode(defaultCDNService)!.host;
print("defaultCDNHost:$defaultCDNHost");
debugPrint("defaultCDNHost:$defaultCDNHost");
if (videoUrl.contains("szbdyd.com")) {
String hostname =
Uri.parse(videoUrl).queryParameters['xy_usource'] ?? defaultCDNHost;
@@ -62,7 +63,7 @@ class VideoUtils {
.replace(host: defaultCDNHost, port: 443)
.toString();
}
print("videoUrl:$videoUrl");
debugPrint("videoUrl:$videoUrl");
// /// 先获取backupUrl 一般是upgcxcode地址 播放更稳定
// if (item is VideoItem) {