mirror of
https://github.com/kodjodevf/mangayomi.git
synced 2026-04-21 03:32:06 +00:00
commit
29b8845869
19 changed files with 114 additions and 153 deletions
|
|
@ -58,7 +58,7 @@ class _MangaDetailsViewState extends ConsumerState<MangaDetailsView> {
|
|||
builder: (context, ref, child) {
|
||||
final chaptersList = ref.watch(chaptersListttStateProvider);
|
||||
final isExtended = ref.watch(isExtendedStateProvider);
|
||||
return ref.watch(isLongPressedStateProvider) == true
|
||||
return ref.watch(isLongPressedStateProvider)
|
||||
? Container()
|
||||
: chaptersList.isNotEmpty &&
|
||||
chaptersList
|
||||
|
|
|
|||
|
|
@ -298,15 +298,15 @@ class ChapterSetIsBookmarkState extends _$ChapterSetIsBookmarkState {
|
|||
void build({required Manga manga}) {}
|
||||
|
||||
set() {
|
||||
final allChapters = <Chapter>[];
|
||||
final chapters = ref.watch(chaptersListStateProvider);
|
||||
isar.writeTxnSync(() {
|
||||
for (var chapter in chapters) {
|
||||
chapter.isBookmarked = !chapter.isBookmarked!;
|
||||
chapter.updatedAt = DateTime.now().millisecondsSinceEpoch;
|
||||
isar.chapters.putSync(chapter..manga.value = manga);
|
||||
chapter.manga.saveSync();
|
||||
}
|
||||
});
|
||||
for (var chapter in chapters) {
|
||||
chapter.isBookmarked = !chapter.isBookmarked!;
|
||||
chapter.updatedAt = DateTime.now().millisecondsSinceEpoch;
|
||||
chapter.manga.value = manga;
|
||||
allChapters.add(chapter);
|
||||
}
|
||||
isar.writeTxnSync(() => isar.chapters.putAllSync(allChapters));
|
||||
ref.read(isLongPressedStateProvider.notifier).update(false);
|
||||
ref.read(chaptersListStateProvider.notifier).clear();
|
||||
}
|
||||
|
|
@ -318,15 +318,15 @@ class ChapterSetIsReadState extends _$ChapterSetIsReadState {
|
|||
void build({required Manga manga}) {}
|
||||
|
||||
set() {
|
||||
final allChapters = <Chapter>[];
|
||||
final chapters = ref.watch(chaptersListStateProvider);
|
||||
isar.writeTxnSync(() {
|
||||
for (var chapter in chapters) {
|
||||
chapter.isRead = !chapter.isRead!;
|
||||
chapter.updatedAt = DateTime.now().millisecondsSinceEpoch;
|
||||
isar.chapters.putSync(chapter..manga.value = manga);
|
||||
chapter.manga.saveSync();
|
||||
}
|
||||
});
|
||||
for (var chapter in chapters) {
|
||||
chapter.isRead = !chapter.isRead!;
|
||||
chapter.updatedAt = DateTime.now().millisecondsSinceEpoch;
|
||||
chapter.manga.value = manga;
|
||||
allChapters.add(chapter);
|
||||
}
|
||||
isar.writeTxnSync(() => isar.chapters.putAllSync(allChapters));
|
||||
ref.read(isLongPressedStateProvider.notifier).update(false);
|
||||
ref.read(chaptersListStateProvider.notifier).clear();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -816,7 +816,7 @@ class _ChapterFilterResultStateProviderElement
|
|||
}
|
||||
|
||||
String _$chapterSetIsBookmarkStateHash() =>
|
||||
r'7879f0a8052b1e46d32d5aaad43d1efa14bcb19d';
|
||||
r'091d86aebaef46d2e9f35ae9f98c12c3e423f5b3';
|
||||
|
||||
abstract class _$ChapterSetIsBookmarkState
|
||||
extends BuildlessAutoDisposeNotifier<void> {
|
||||
|
|
@ -963,7 +963,7 @@ class _ChapterSetIsBookmarkStateProviderElement
|
|||
}
|
||||
|
||||
String _$chapterSetIsReadStateHash() =>
|
||||
r'80eae3d196cf0932c1e61bae37aebe563d66d6de';
|
||||
r'f5af852964964170905278d563fdb03eabed53b9';
|
||||
|
||||
abstract class _$ChapterSetIsReadState
|
||||
extends BuildlessAutoDisposeNotifier<void> {
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ class _MigrationScreenScreenState extends ConsumerState<MigrationScreen> {
|
|||
String _query = "";
|
||||
final _textEditingController = TextEditingController();
|
||||
late final List<Source> sourceList =
|
||||
ref.watch(onlyIncludePinnedSourceStateProvider)
|
||||
ref.read(onlyIncludePinnedSourceStateProvider)
|
||||
? isar.sources
|
||||
.filter()
|
||||
.isPinnedEqualTo(true)
|
||||
|
|
|
|||
|
|
@ -22,22 +22,42 @@ List<String> _convertToCBZ((String, String, String, List<String>) datas) {
|
|||
final imagesPaths = pageList.where((path) => path.endsWith('.jpg')).toList()
|
||||
..sort();
|
||||
|
||||
if (imagesPaths.isNotEmpty) {
|
||||
final archive = Archive();
|
||||
final cbzPath = path.join(mangaDir, "$chapterName.cbz");
|
||||
if (imagesPaths.isEmpty) return imagesPaths;
|
||||
|
||||
for (var imagePath in imagesPaths) {
|
||||
final file = File(imagePath);
|
||||
if (file.existsSync()) {
|
||||
final bytes = file.readAsBytesSync();
|
||||
final fileName = path.basename(imagePath);
|
||||
archive.add(ArchiveFile.bytes(fileName, bytes));
|
||||
}
|
||||
final archive = Archive();
|
||||
final cbzPath = path.join(mangaDir, "$chapterName.cbz");
|
||||
final List<String> missingFiles = [];
|
||||
final List<String> includedFiles = [];
|
||||
|
||||
for (var imagePath in imagesPaths) {
|
||||
final file = File(imagePath);
|
||||
if (!file.existsSync()) {
|
||||
missingFiles.add(imagePath);
|
||||
continue;
|
||||
}
|
||||
final bytes = file.readAsBytesSync();
|
||||
final fileName = path.basename(imagePath);
|
||||
archive.add(ArchiveFile.bytes(fileName, bytes));
|
||||
includedFiles.add(imagePath);
|
||||
}
|
||||
try {
|
||||
final cbzData = ZipEncoder().encode(archive);
|
||||
File(cbzPath).writeAsBytesSync(cbzData);
|
||||
} catch (e) {
|
||||
if (File(cbzPath).existsSync()) File(cbzPath).deleteSync();
|
||||
throw FileSystemException("Failed to create/write CBZ file: $e", cbzPath);
|
||||
}
|
||||
try {
|
||||
Directory(chapterDir).deleteSync(recursive: true);
|
||||
} catch (e) {
|
||||
throw FileSystemException("Failed to delete chapter directory", chapterDir);
|
||||
}
|
||||
if (missingFiles.isNotEmpty) {
|
||||
final missingListStr = missingFiles.join(", ");
|
||||
throw Exception(
|
||||
"CBZ created, but the following pages were missing and not included: $missingListStr",
|
||||
);
|
||||
}
|
||||
|
||||
return imagesPaths;
|
||||
return includedFiles;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ Future<void> downloadChapter(
|
|||
bool? useWifi,
|
||||
VoidCallback? callback,
|
||||
}) async {
|
||||
bool onlyOnWifi = useWifi ?? ref.watch(onlyOnWifiStateProvider);
|
||||
bool onlyOnWifi = useWifi ?? ref.read(onlyOnWifiStateProvider);
|
||||
final connectivity = await Connectivity().checkConnectivity();
|
||||
final isOnWifi =
|
||||
connectivity.contains(ConnectivityResult.wifi) ||
|
||||
|
|
@ -96,8 +96,9 @@ Future<void> downloadChapter(
|
|||
M3u8Downloader? m3u8Downloader;
|
||||
|
||||
Future<void> processConvert() async {
|
||||
if (ref.watch(saveAsCBZArchiveStateProvider)) {
|
||||
await ref.watch(
|
||||
if (!ref.read(saveAsCBZArchiveStateProvider)) return;
|
||||
try {
|
||||
await ref.read(
|
||||
convertToCBZProvider(
|
||||
chapterDirectory.path,
|
||||
mangaMainDirectory!.path,
|
||||
|
|
@ -105,6 +106,8 @@ Future<void> downloadChapter(
|
|||
pages.map((e) => e.fileName!).toList(),
|
||||
).future,
|
||||
);
|
||||
} catch (error) {
|
||||
botToast("Failed to create CBZ: $error");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -213,11 +216,7 @@ Future<void> downloadChapter(
|
|||
});
|
||||
} else if (itemType == ItemType.novel && chapter.url != null) {
|
||||
final cookie = MClient.getCookiesPref(chapter.url!);
|
||||
final headers = itemType == ItemType.manga
|
||||
? ref.watch(headersProvider(source: manga.source!, lang: manga.lang!))
|
||||
: itemType == ItemType.anime
|
||||
? videoHeader
|
||||
: htmlHeader;
|
||||
final headers = htmlHeader;
|
||||
if (cookie.isNotEmpty) {
|
||||
final userAgent = isar.settings.getSync(227)!.userAgent!;
|
||||
headers.addAll(cookie);
|
||||
|
|
@ -245,7 +244,7 @@ Future<void> downloadChapter(
|
|||
await File(
|
||||
p.join(mangaMainDirectory!.path, "${chapter.name}.cbz"),
|
||||
).exists() &&
|
||||
ref.watch(saveAsCBZArchiveStateProvider);
|
||||
ref.read(saveAsCBZArchiveStateProvider);
|
||||
bool mp4FileExist = await File(
|
||||
p.join(mangaMainDirectory.path, "$chapterName.mp4"),
|
||||
).exists();
|
||||
|
|
@ -265,7 +264,7 @@ Future<void> downloadChapter(
|
|||
final page = pageUrls[index];
|
||||
final cookie = MClient.getCookiesPref(page.url);
|
||||
final headers = itemType == ItemType.manga
|
||||
? ref.watch(
|
||||
? ref.read(
|
||||
headersProvider(source: manga.source!, lang: manga.lang!),
|
||||
)
|
||||
: itemType == ItemType.anime
|
||||
|
|
|
|||
|
|
@ -158,7 +158,7 @@ class _AddDownloadToQueueProviderElement
|
|||
Chapter get chapter => (origin as AddDownloadToQueueProvider).chapter;
|
||||
}
|
||||
|
||||
String _$downloadChapterHash() => r'199d0cba47ae8839c23def9c0b012f92472193e9';
|
||||
String _$downloadChapterHash() => r'e712508a81c414f66b12adeae23c3dc70380a920';
|
||||
|
||||
/// See also [downloadChapter].
|
||||
@ProviderFor(downloadChapter)
|
||||
|
|
|
|||
|
|
@ -205,7 +205,7 @@ class _MangaChapterPageGalleryState
|
|||
|
||||
final double _horizontalScaleValue = 1.0;
|
||||
|
||||
late int pagePreloadAmount = ref.watch(pagePreloadAmountStateProvider);
|
||||
late int pagePreloadAmount = ref.read(pagePreloadAmountStateProvider);
|
||||
late bool _isBookmarked = _readerController.getChapterBookmarked();
|
||||
|
||||
final _currentReaderMode = StateProvider<ReaderMode?>((ref) => null);
|
||||
|
|
|
|||
|
|
@ -233,16 +233,10 @@ void restoreBackup(Ref ref, Map<String, dynamic> backup, {bool full = true}) {
|
|||
isar.trackPreferences.clearSync();
|
||||
isar.trackPreferences.putAllSync(trackPreferences);
|
||||
}
|
||||
}
|
||||
|
||||
if (full) {
|
||||
isar.sources.clearSync();
|
||||
if (extensions != null) {
|
||||
isar.sources.putAllSync(extensions);
|
||||
}
|
||||
}
|
||||
|
||||
if (full) {
|
||||
isar.sourcePreferences.clearSync();
|
||||
if (sourcesPrefs != null) {
|
||||
isar.sourcePreferences.putAllSync(sourcesPrefs);
|
||||
|
|
@ -251,22 +245,7 @@ void restoreBackup(Ref ref, Map<String, dynamic> backup, {bool full = true}) {
|
|||
if (settings != null) {
|
||||
isar.settings.putAllSync(settings);
|
||||
}
|
||||
}
|
||||
if (full) {
|
||||
ref
|
||||
.read(synchingProvider(syncId: 1).notifier)
|
||||
.clearAllChangedParts(false);
|
||||
ref.invalidate(followSystemThemeStateProvider);
|
||||
ref.invalidate(themeModeStateProvider);
|
||||
ref.invalidate(blendLevelStateProvider);
|
||||
ref.invalidate(flexSchemeColorStateProvider);
|
||||
ref.invalidate(pureBlackDarkModeStateProvider);
|
||||
ref.invalidate(l10nLocaleStateProvider);
|
||||
ref.invalidate(navigationOrderStateProvider);
|
||||
ref.invalidate(hideItemsStateProvider);
|
||||
ref.invalidate(extensionsRepoStateProvider(ItemType.manga));
|
||||
ref.invalidate(extensionsRepoStateProvider(ItemType.anime));
|
||||
ref.invalidate(extensionsRepoStateProvider(ItemType.novel));
|
||||
_invalidateCommonState(ref);
|
||||
ref.read(routerCurrentLocationStateProvider.notifier).refresh();
|
||||
}
|
||||
});
|
||||
|
|
@ -361,19 +340,7 @@ void restoreKotatsuBackup(Ref ref, Archive archive) {
|
|||
isar.updates.clearSync();
|
||||
isar.tracks.clearSync();
|
||||
isar.trackPreferences.clearSync();
|
||||
ref
|
||||
.read(synchingProvider(syncId: 1).notifier)
|
||||
.clearAllChangedParts(false);
|
||||
ref.invalidate(themeModeStateProvider);
|
||||
ref.invalidate(blendLevelStateProvider);
|
||||
ref.invalidate(flexSchemeColorStateProvider);
|
||||
ref.invalidate(pureBlackDarkModeStateProvider);
|
||||
ref.invalidate(l10nLocaleStateProvider);
|
||||
ref.invalidate(navigationOrderStateProvider);
|
||||
ref.invalidate(hideItemsStateProvider);
|
||||
ref.invalidate(extensionsRepoStateProvider(ItemType.manga));
|
||||
ref.invalidate(extensionsRepoStateProvider(ItemType.anime));
|
||||
ref.invalidate(extensionsRepoStateProvider(ItemType.novel));
|
||||
_invalidateCommonState(ref);
|
||||
});
|
||||
} catch (e) {
|
||||
rethrow;
|
||||
|
|
@ -548,20 +515,25 @@ void restoreTachiBkBackup(Ref ref, String path, BackupType bkType) {
|
|||
isar.updates.clearSync();
|
||||
isar.tracks.clearSync();
|
||||
isar.trackPreferences.clearSync();
|
||||
ref.read(synchingProvider(syncId: 1).notifier).clearAllChangedParts(false);
|
||||
ref.invalidate(themeModeStateProvider);
|
||||
ref.invalidate(blendLevelStateProvider);
|
||||
ref.invalidate(flexSchemeColorStateProvider);
|
||||
ref.invalidate(pureBlackDarkModeStateProvider);
|
||||
ref.invalidate(l10nLocaleStateProvider);
|
||||
ref.invalidate(navigationOrderStateProvider);
|
||||
ref.invalidate(hideItemsStateProvider);
|
||||
ref.invalidate(extensionsRepoStateProvider(ItemType.manga));
|
||||
ref.invalidate(extensionsRepoStateProvider(ItemType.anime));
|
||||
ref.invalidate(extensionsRepoStateProvider(ItemType.novel));
|
||||
_invalidateCommonState(ref);
|
||||
});
|
||||
}
|
||||
|
||||
void _invalidateCommonState(Ref ref) {
|
||||
ref.read(synchingProvider(syncId: 1).notifier).clearAllChangedParts(false);
|
||||
ref.invalidate(followSystemThemeStateProvider);
|
||||
ref.invalidate(themeModeStateProvider);
|
||||
ref.invalidate(blendLevelStateProvider);
|
||||
ref.invalidate(flexSchemeColorStateProvider);
|
||||
ref.invalidate(pureBlackDarkModeStateProvider);
|
||||
ref.invalidate(l10nLocaleStateProvider);
|
||||
ref.invalidate(navigationOrderStateProvider);
|
||||
ref.invalidate(hideItemsStateProvider);
|
||||
ref.invalidate(extensionsRepoStateProvider(ItemType.manga));
|
||||
ref.invalidate(extensionsRepoStateProvider(ItemType.anime));
|
||||
ref.invalidate(extensionsRepoStateProvider(ItemType.novel));
|
||||
}
|
||||
|
||||
Status _convertStatusFromTachiBk(int idx) {
|
||||
switch (idx) {
|
||||
case 1:
|
||||
|
|
|
|||
|
|
@ -173,7 +173,7 @@ class _DoRestoreProviderElement extends AutoDisposeProviderElement<void>
|
|||
BuildContext get context => (origin as DoRestoreProvider).context;
|
||||
}
|
||||
|
||||
String _$restoreBackupHash() => r'd4226539077680dac8826ee9b36efff9b07e2ed8';
|
||||
String _$restoreBackupHash() => r'2f440cfc5359e15bfd3887d27b38ecaf881404c6';
|
||||
|
||||
/// See also [restoreBackup].
|
||||
@ProviderFor(restoreBackup)
|
||||
|
|
@ -321,7 +321,7 @@ class _RestoreBackupProviderElement extends AutoDisposeProviderElement<void>
|
|||
}
|
||||
|
||||
String _$restoreKotatsuBackupHash() =>
|
||||
r'e2c10fb6d17ab8f44ee429712cce4aa5a9298bc0';
|
||||
r'e927f6a196a0349285fecbd84f30c2a9125998b2';
|
||||
|
||||
/// See also [restoreKotatsuBackup].
|
||||
@ProviderFor(restoreKotatsuBackup)
|
||||
|
|
@ -452,7 +452,7 @@ class _RestoreKotatsuBackupProviderElement
|
|||
}
|
||||
|
||||
String _$restoreTachiBkBackupHash() =>
|
||||
r'8d3228c7bf7e1e33b3cebea6bd769f39fcbe2b30';
|
||||
r'ae971c2630393df773eb1d64214b4daefb080b95';
|
||||
|
||||
/// See also [restoreTachiBkBackup].
|
||||
@ProviderFor(restoreTachiBkBackup)
|
||||
|
|
|
|||
|
|
@ -103,26 +103,7 @@ class Synching extends _$Synching {
|
|||
.actionTypeEqualTo(action)
|
||||
.isarIdEqualTo(isarId)
|
||||
.findFirstSync();
|
||||
if (writeTxn) {
|
||||
isar.writeTxnSync(() {
|
||||
if (changedPart != null) {
|
||||
isar.changedParts.putSync(
|
||||
changedPart
|
||||
..data = jsonEncode(data)
|
||||
..clientDate = DateTime.now().millisecondsSinceEpoch,
|
||||
);
|
||||
} else {
|
||||
isar.changedParts.putSync(
|
||||
ChangedPart(
|
||||
actionType: action,
|
||||
isarId: isarId,
|
||||
data: jsonEncode(data),
|
||||
clientDate: DateTime.now().millisecondsSinceEpoch,
|
||||
),
|
||||
);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
void putChangedPart() {
|
||||
if (changedPart != null) {
|
||||
isar.changedParts.putSync(
|
||||
changedPart
|
||||
|
|
@ -140,6 +121,12 @@ class Synching extends _$Synching {
|
|||
);
|
||||
}
|
||||
}
|
||||
|
||||
if (writeTxn) {
|
||||
isar.writeTxnSync(putChangedPart);
|
||||
} else {
|
||||
putChangedPart();
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> addChangedPartAsync(
|
||||
|
|
@ -156,26 +143,7 @@ class Synching extends _$Synching {
|
|||
.actionTypeEqualTo(action)
|
||||
.isarIdEqualTo(isarId)
|
||||
.findFirstSync();
|
||||
if (writeTxn) {
|
||||
await isar.writeTxn(() async {
|
||||
if (changedPart != null) {
|
||||
await isar.changedParts.put(
|
||||
changedPart
|
||||
..data = jsonEncode(data)
|
||||
..clientDate = DateTime.now().millisecondsSinceEpoch,
|
||||
);
|
||||
} else {
|
||||
await isar.changedParts.put(
|
||||
ChangedPart(
|
||||
actionType: action,
|
||||
isarId: isarId,
|
||||
data: jsonEncode(data),
|
||||
clientDate: DateTime.now().millisecondsSinceEpoch,
|
||||
),
|
||||
);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
Future<void> putChangedPart() async {
|
||||
if (changedPart != null) {
|
||||
await isar.changedParts.put(
|
||||
changedPart
|
||||
|
|
@ -193,6 +161,12 @@ class Synching extends _$Synching {
|
|||
);
|
||||
}
|
||||
}
|
||||
|
||||
if (writeTxn) {
|
||||
await isar.writeTxn(putChangedPart);
|
||||
} else {
|
||||
await putChangedPart();
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> clearChangedParts(List<ActionType> actions, bool txn) async {
|
||||
|
|
@ -216,9 +190,7 @@ class Synching extends _$Synching {
|
|||
|
||||
void clearAllChangedParts(bool txn) {
|
||||
if (txn) {
|
||||
isar.writeTxnSync(() {
|
||||
isar.changedParts.clearSync();
|
||||
});
|
||||
isar.writeTxnSync(() => isar.changedParts.clearSync());
|
||||
} else {
|
||||
isar.changedParts.clearSync();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ part of 'sync_providers.dart';
|
|||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
String _$synchingHash() => r'adaa8bb0e4ef948ace05281c5be3b3f3cb683044';
|
||||
String _$synchingHash() => r'5d138375c0be625ec3ca62123520d6f1d5f37018';
|
||||
|
||||
/// Copied from Dart SDK
|
||||
class _SystemHash {
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ class StatisticsScreen extends ConsumerStatefulWidget {
|
|||
|
||||
class _StatisticsScreenState extends ConsumerState<StatisticsScreen>
|
||||
with SingleTickerProviderStateMixin {
|
||||
late final hideItems = ref.watch(hideItemsStateProvider);
|
||||
late final hideItems = ref.read(hideItemsStateProvider);
|
||||
late TabController _tabController;
|
||||
|
||||
late final _tabList = [
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ Future<GetChapterPagesModel> getChapterPages(
|
|||
final isarPageUrls = chapterPageUrlsList
|
||||
.where((element) => element.chapterId == chapter.id)
|
||||
.firstOrNull;
|
||||
final incognitoMode = ref.watch(incognitoModeStateProvider);
|
||||
final incognitoMode = ref.read(incognitoModeStateProvider);
|
||||
final storageProvider = StorageProvider();
|
||||
final mangaDirectory = await storageProvider.getMangaMainDirectory(chapter);
|
||||
path = await storageProvider.getMangaChapterDirectory(
|
||||
|
|
@ -86,7 +86,7 @@ Future<GetChapterPagesModel> getChapterPages(
|
|||
final path = isLocalArchive
|
||||
? chapter.archivePath
|
||||
: p.join(mangaDirectory.path, "${chapter.name}.cbz");
|
||||
final local = await ref.watch(
|
||||
final local = await ref.read(
|
||||
getArchiveDataFromFileProvider(path!).future,
|
||||
);
|
||||
for (var image in local.images!) {
|
||||
|
|
@ -127,11 +127,9 @@ Future<GetChapterPagesModel> getChapterPages(
|
|||
? chapterPageHeaders.map((e) => e.toString()).toList()
|
||||
: null,
|
||||
);
|
||||
isar.writeTxnSync(
|
||||
() => isar.settings.putSync(
|
||||
settings..chapterPageUrlsList = chapterPageUrls,
|
||||
),
|
||||
);
|
||||
isar.writeTxnSync(() {
|
||||
isar.settings.putSync(settings..chapterPageUrlsList = chapterPageUrls);
|
||||
});
|
||||
}
|
||||
for (var i = 0; i < pageUrls.length; i++) {
|
||||
uChapDataPreloadp.add(
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ part of 'get_chapter_pages.dart';
|
|||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
String _$getChapterPagesHash() => r'69bdb90a1ec142dbdb069a675cfb13ad69e18998';
|
||||
String _$getChapterPagesHash() => r'7cf8c373e081959a8871a96eb8f9c9317bc65321';
|
||||
|
||||
/// Copied from Dart SDK
|
||||
class _SystemHash {
|
||||
|
|
|
|||
|
|
@ -171,7 +171,7 @@ class Anilist extends _$Anilist {
|
|||
|
||||
Future<Track?> findLibItem(Track track, bool isManga) async {
|
||||
final userId = int.parse(
|
||||
ref.watch(tracksProvider(syncId: syncId))!.username!,
|
||||
ref.read(tracksProvider(syncId: syncId))!.username!,
|
||||
);
|
||||
final type = isManga ? "MANGA" : "ANIME";
|
||||
final typeVar = isManga ? "manga_id" : "anime_id";
|
||||
|
|
@ -286,7 +286,7 @@ class Anilist extends _$Anilist {
|
|||
|
||||
Future<List<TrackSearch>> fetchUserData({bool isManga = true}) async {
|
||||
final userId = int.parse(
|
||||
ref.watch(tracksProvider(syncId: syncId))!.username!,
|
||||
ref.read(tracksProvider(syncId: syncId))!.username!,
|
||||
);
|
||||
final type = isManga ? "MANGA" : "ANIME";
|
||||
final contentUnit = isManga ? "chapters" : "episodes";
|
||||
|
|
@ -405,7 +405,7 @@ class Anilist extends _$Anilist {
|
|||
}
|
||||
|
||||
Future<String> _getAccessToken() async {
|
||||
final track = ref.watch(tracksProvider(syncId: syncId));
|
||||
final track = ref.read(tracksProvider(syncId: syncId));
|
||||
final mALOAuth = OAuth.fromJson(
|
||||
jsonDecode(track!.oAuth!) as Map<String, dynamic>,
|
||||
);
|
||||
|
|
|
|||
|
|
@ -345,7 +345,7 @@ class Kitsu extends _$Kitsu {
|
|||
}
|
||||
|
||||
String _getAccessToken() {
|
||||
final track = ref.watch(tracksProvider(syncId: syncId));
|
||||
final track = ref.read(tracksProvider(syncId: syncId));
|
||||
final mAKOAuth = OAuth.fromJson(
|
||||
jsonDecode(track!.oAuth!) as Map<String, dynamic>,
|
||||
);
|
||||
|
|
@ -359,7 +359,7 @@ class Kitsu extends _$Kitsu {
|
|||
}
|
||||
|
||||
String _getUserId() {
|
||||
final track = ref.watch(tracksProvider(syncId: syncId));
|
||||
final track = ref.read(tracksProvider(syncId: syncId));
|
||||
return track!.username!;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ class MyAnimeList extends _$MyAnimeList {
|
|||
}
|
||||
|
||||
Future<String> _getAccessToken() async {
|
||||
final track = ref.watch(tracksProvider(syncId: syncId));
|
||||
final track = ref.read(tracksProvider(syncId: syncId));
|
||||
final mALOAuth = OAuth.fromJson(
|
||||
jsonDecode(track!.oAuth!) as Map<String, dynamic>,
|
||||
);
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@ String dateFormat(
|
|||
}) {
|
||||
final l10n = l10nLocalizations(context)!;
|
||||
final locale = currentLocale(context);
|
||||
final relativeTimestamps = ref.watch(relativeTimesTampsStateProvider);
|
||||
final dateFrmt = ref.watch(dateFormatStateProvider);
|
||||
final relativeTimestamps = ref.read(relativeTimesTampsStateProvider);
|
||||
final dateFrmt = ref.read(dateFormatStateProvider);
|
||||
final dateTime = stringDate != null
|
||||
? DateTime.parse(stringDate)
|
||||
: DateTime.fromMillisecondsSinceEpoch(int.parse(timestamp!));
|
||||
|
|
|
|||
Loading…
Reference in a new issue