From 36fd6d270976e5015deefe4a4dcd78eeb9605af9 Mon Sep 17 00:00:00 2001 From: kodjomoustapha <107993382+kodjodevf@users.noreply.github.com> Date: Tue, 24 Dec 2024 12:46:12 +0100 Subject: [PATCH] fix getCachedImageFile --- lib/utils/extensions/others.dart | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/lib/utils/extensions/others.dart b/lib/utils/extensions/others.dart index df0fed4..3b8d363 100644 --- a/lib/utils/extensions/others.dart +++ b/lib/utils/extensions/others.dart @@ -10,6 +10,8 @@ import 'package:mangayomi/modules/more/settings/reader/providers/reader_state_pr import 'package:mangayomi/modules/widgets/custom_extended_image_provider.dart'; import 'package:mangayomi/utils/headers.dart'; import 'package:mangayomi/utils/reg_exp_matcher.dart'; +import 'package:path/path.dart'; +import 'package:path_provider/path_provider.dart'; extension LetExtension on T { R let(R Function(T) block) { @@ -48,11 +50,11 @@ extension UChapDataPreloadExtensions on UChapDataPreload { } else { File? cachedImage; if (pageUrl != null) { - cachedImage = await getCachedImageFile(pageUrl!.url); + cachedImage = await _getCachedImageFile(pageUrl!.url); } if (cachedImage == null) { await Future.delayed(const Duration(seconds: 3)); - cachedImage = await getCachedImageFile(pageUrl!.url); + cachedImage = await _getCachedImageFile(pageUrl!.url); } imageBytes = cachedImage?.readAsBytesSync(); } @@ -86,3 +88,21 @@ extension UChapDataPreloadExtensions on UChapDataPreload { })) as ImageProvider; } } + +Future _getCachedImageFile(String url, {String? cacheKey}) async { + try { + final String key = cacheKey ?? keyToMd5(url); + final Directory cacheImagesDirectory = Directory(join( + (await getTemporaryDirectory()).path, 'Mangayomi', 'cacheimagemanga')); + if (cacheImagesDirectory.existsSync()) { + await for (final FileSystemEntity file in cacheImagesDirectory.list()) { + if (file.path.endsWith(key)) { + return File(file.path); + } + } + } + } catch (_) { + return null; + } + return null; +}