* opt: danmaku weight

* opt: cache clean

* opt: level img

* opt: play icon

* opt: svg big-vip

* opt: webview ua

* opt: simple dialog

* feat: export vtt

* tweak

* opt: mapIndexed

* feat: more subtitle

* refa: settings page

* feat: codec list options

* drawPath

Signed-off-by: dom <githubaccount56556@proton.me>

* custom dialog option

Signed-off-by: dom <githubaccount56556@proton.me>

* update

Signed-off-by: dom <githubaccount56556@proton.me>

* Revert "drawPath"

This reverts commit e8a4b19f0f.

* opt: _initStreamIndex

* fix: avoid gap

* fix: scale [skip ci]

* fix: hide repost menu not login

* tweaks

Signed-off-by: dom <githubaccount56556@proton.me>

---------

Co-authored-by: dom <githubaccount56556@proton.me>
This commit is contained in:
My-Responsitories
2026-06-26 02:51:41 +00:00
committed by GitHub
parent 3dee6a85e5
commit 9d94c72e95
96 changed files with 2268 additions and 2143 deletions

View File

@@ -1,6 +1,5 @@
import 'dart:io' show Directory, File;
import 'package:PiliPlus/utils/extension/file_ext.dart';
import 'package:PiliPlus/utils/platform_utils.dart';
import 'package:PiliPlus/utils/storage_pref.dart';
import 'package:cached_network_image_ce/cached_network_image.dart';
@@ -10,18 +9,19 @@ import 'package:path_provider/path_provider.dart';
abstract final class CacheManager {
static late final DefaultCacheManager manager;
static Future<void> ensureInitialized() =>
DefaultCacheManager.init().then((i) => manager = i);
static Future<void> ensureInitialized() => DefaultCacheManager.init(
maxNrOfCacheLength: Pref.maxCacheSize.toInt(),
).then((i) => manager = i);
// 获取缓存目录
@pragma('vm:notify-debugger-on-exception')
static Future<int> loadApplicationCache() async {
try {
final Directory tempDirectory = await getTemporaryDirectory();
if (PlatformUtils.isDesktop) {
return manager.getTotalLength();
}
final Directory tempDirectory = await getTemporaryDirectory();
if (tempDirectory.existsSync()) {
return await getTotalSizeOfFilesInDir(tempDirectory);
}
@@ -81,22 +81,4 @@ abstract final class CacheManager {
}
} catch (_) {}
}
static Future<void> autoClearCache() async {
// TODO: remove
Directory(
'${(await getTemporaryDirectory()).path}/libCachedImageData',
).tryDel(recursive: true);
if (Pref.autoClearCache) {
await clearLibraryCache();
} else {
final maxCacheSize = Pref.maxCacheSize;
if (maxCacheSize != 0) {
final currCache = await loadApplicationCache();
if (currCache >= maxCacheSize) {
await clearLibraryCache();
}
}
}
}
}