Merge remote-tracking branch 'upstream/main'

This commit is contained in:
orz12
2024-02-24 10:46:18 +08:00
13 changed files with 187 additions and 50 deletions

View File

@@ -141,6 +141,7 @@ class SettingBoxKey {
tabbarSort = 'tabbarSort', // 首页tabbar
dynamicBadgeMode = 'dynamicBadgeMode',
hiddenSettingUnlocked = 'hiddenSettingUnlocked';
enableGradientBg = 'enableGradientBg';
}
class LocalCacheKey {

View File

@@ -17,6 +17,8 @@ import '../http/index.dart';
import '../models/github/latest.dart';
class Utils {
static final Random random = Random();
static Future<String> getCookiePath() async {
final Directory tempDir = await getApplicationSupportDirectory();
final String tempPath = "${tempDir.path}/.plpl/";
@@ -181,7 +183,7 @@ class Utils {
}
static String makeHeroTag(v) {
return v.toString() + Random().nextInt(9999).toString();
return v.toString() + random.nextInt(9999).toString();
}
static int duration(String duration) {
@@ -340,18 +342,14 @@ class Utils {
return md5String;
}
static String generateRandomString(int minLength, int maxLength) {
const String printable =
'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#\$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ ';
var random = Random();
int length = minLength + random.nextInt(maxLength - minLength + 1);
return List<String>.generate(
length, (index) => printable[random.nextInt(printable.length)]).join();
static List<int> generateRandomBytes(int minLength, int maxLength) {
return List<int>.generate(
random.nextInt(maxLength-minLength+1), (_) => random.nextInt(0x60) + 0x20
);
}
static String base64EncodeRandomString(int minLength, int maxLength) {
String randomString = generateRandomString(minLength, maxLength);
return base64.encode(utf8.encode(randomString));
List<int> randomBytes = generateRandomBytes(minLength, maxLength);
return base64.encode(randomBytes);
}
}

View File

@@ -1,5 +1,7 @@
import 'package:PiliPalaX/models/video/play/url.dart';
import '../models/live/room_info.dart';
class VideoUtils {
static String getCdnUrl(dynamic item) {
var backupUrl = "";
@@ -12,13 +14,20 @@ class VideoUtils {
} else if (item is AudioItem) {
backupUrl = item.backupUrl ?? "";
videoUrl = backupUrl.contains("http") ? backupUrl : (item.baseUrl ?? "");
} else if (item is CodecItem) {
backupUrl = (item.urlInfo?.first.host)! +
item.baseUrl! +
item.urlInfo!.first.extra!;
videoUrl = backupUrl.contains("http") ? backupUrl : (item.baseUrl ?? "");
} else {
return "";
}
/// issues #70
if (videoUrl.contains(".mcdn.bilivideo") ||
videoUrl.contains("/upgcxcode/")) {
if (videoUrl.contains(".mcdn.bilivideo")) {
videoUrl =
'https://proxy-tf-all-ws.bilivideo.com/?url=${Uri.encodeComponent(videoUrl)}';
} else if (videoUrl.contains("/upgcxcode/")) {
//CDN列表
var cdnList = {
'ali': 'upos-sz-mirrorali.bilivideo.com',