mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
skip mcdn on parsing (#281)
This commit is contained in:
committed by
GitHub
parent
415c68a570
commit
cfb6c674ea
@@ -129,6 +129,14 @@ class Durl {
|
||||
}
|
||||
}
|
||||
|
||||
final _ipRegExp = RegExp(r'^https?://\d{1,3}\.\d{1,3}');
|
||||
|
||||
bool _isMCDNorPCDN(String url) {
|
||||
return url.contains("szbdyd.com") ||
|
||||
url.contains(".mcdn.bilivideo") ||
|
||||
_ipRegExp.hasMatch(url);
|
||||
}
|
||||
|
||||
class VideoItem {
|
||||
VideoItem({
|
||||
this.id,
|
||||
@@ -165,8 +173,10 @@ class VideoItem {
|
||||
VideoItem.fromJson(Map<String, dynamic> json) {
|
||||
id = json['id'];
|
||||
baseUrl = json['baseUrl'];
|
||||
backupUrl =
|
||||
json['backupUrl'] != null ? json['backupUrl'].toList().first : '';
|
||||
var backupUrls = json['backupUrl']?.toList() ?? [];
|
||||
backupUrl = backupUrls.isNotEmpty
|
||||
? backupUrls.firstWhere((i) => !_isMCDNorPCDN(i), orElse: () => backupUrls.first)
|
||||
: '';
|
||||
bandWidth = json['bandWidth'];
|
||||
mimeType = json['mime_type'];
|
||||
codecs = json['codecs'];
|
||||
@@ -236,8 +246,10 @@ class AudioItem {
|
||||
AudioItem.fromJson(Map<String, dynamic> json) {
|
||||
id = json['id'];
|
||||
baseUrl = json['baseUrl'];
|
||||
backupUrl =
|
||||
json['backupUrl'] != null ? json['backupUrl'].toList().first : '';
|
||||
var backupUrls = json['backupUrl']?.toList() ?? [];
|
||||
backupUrl = backupUrls.isNotEmpty
|
||||
? backupUrls.firstWhere((i) => !_isMCDNorPCDN(i), orElse: () => backupUrls.first)
|
||||
: '';
|
||||
bandWidth = json['bandWidth'];
|
||||
mimeType = json['mime_type'];
|
||||
codecs = json['codecs'];
|
||||
|
||||
@@ -7,12 +7,6 @@ import 'package:flutter/material.dart';
|
||||
import '../models/live/room_info.dart';
|
||||
|
||||
class VideoUtils {
|
||||
static bool isMCDNorPCDN(String url) {
|
||||
return url.contains("szbdyd.com") ||
|
||||
url.contains(".mcdn.bilivideo") ||
|
||||
RegExp(r'^https?://\d{1,3}\.\d{1,3}').hasMatch(url);
|
||||
}
|
||||
|
||||
static String getCdnUrl(dynamic item, [defaultCDNService]) {
|
||||
String? backupUrl;
|
||||
String? videoUrl;
|
||||
@@ -41,9 +35,7 @@ class VideoUtils {
|
||||
if (defaultCDNService == CDNService.backupUrl.code) {
|
||||
return backupUrl.isNullOrEmpty.not ? backupUrl : item.baseUrl ?? "";
|
||||
}
|
||||
videoUrl = (backupUrl.isNullOrEmpty || isMCDNorPCDN(backupUrl!))
|
||||
? item.baseUrl
|
||||
: backupUrl;
|
||||
videoUrl = backupUrl.isNullOrEmpty ? item.baseUrl : backupUrl;
|
||||
|
||||
if (videoUrl.isNullOrEmpty) {
|
||||
return "";
|
||||
|
||||
Reference in New Issue
Block a user