自定义线路与线路优化
This commit is contained in:
@@ -2,6 +2,7 @@ import 'api_service.dart';
|
||||
import '../core/utils/app_logger.dart';
|
||||
import '../core/utils/file_utils.dart';
|
||||
import '../core/utils/time_flow_decoder.dart';
|
||||
import 'custom_line_service.dart';
|
||||
|
||||
/// 缩略图缓存条目
|
||||
class _ThumbCacheEntry {
|
||||
@@ -41,6 +42,9 @@ class ThumbnailService {
|
||||
// 1. 检查内存缓存
|
||||
final cached = _urlCache[cacheKey];
|
||||
if (cached != null && !cached.isExpired) {
|
||||
await CustomLineService.instance.activateSelectedNodeForUrl(
|
||||
cached.imageUrl,
|
||||
);
|
||||
return cached.imageUrl;
|
||||
}
|
||||
if (cached != null) {
|
||||
@@ -64,7 +68,10 @@ class ThumbnailService {
|
||||
}
|
||||
}
|
||||
|
||||
Future<String?> _fetchThumbnailUrl(String fileUri, String? contextHint) async {
|
||||
Future<String?> _fetchThumbnailUrl(
|
||||
String fileUri,
|
||||
String? contextHint,
|
||||
) async {
|
||||
try {
|
||||
final uri = FileUtils.toCloudreveUri(fileUri);
|
||||
final headers = contextHint != null
|
||||
@@ -97,12 +104,15 @@ class ThumbnailService {
|
||||
if (url.isEmpty) return null;
|
||||
|
||||
AppLogger.d('ThumbnailService: resolved URL for $fileUri = $url');
|
||||
await CustomLineService.instance.activateSelectedNodeForUrl(url);
|
||||
|
||||
// 解析过期时间,缓存提前 30 秒过期
|
||||
DateTime expiresAt;
|
||||
if (expiresStr != null) {
|
||||
try {
|
||||
expiresAt = DateTime.parse(expiresStr).subtract(const Duration(seconds: 30));
|
||||
expiresAt = DateTime.parse(
|
||||
expiresStr,
|
||||
).subtract(const Duration(seconds: 30));
|
||||
} catch (_) {
|
||||
expiresAt = DateTime.now().add(const Duration(minutes: 5));
|
||||
}
|
||||
@@ -118,7 +128,9 @@ class ThumbnailService {
|
||||
|
||||
return url;
|
||||
} catch (e) {
|
||||
AppLogger.d('ThumbnailService: failed to get thumbnail URL for $fileUri: $e');
|
||||
AppLogger.d(
|
||||
'ThumbnailService: failed to get thumbnail URL for $fileUri: $e',
|
||||
);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user