Add interval data layer (#9398)
* Update Manga classes for fetch interval data * Update per review bump version --------- Co-authored-by: quangkieu <qkieu> (cherry picked from commit 41c89eb61dc73f48a0f2bfcef1f509a60d2b56dd) # Conflicts: # app/build.gradle.kts # data/src/main/java/tachiyomi/data/manga/MangaMapper.kt # data/src/main/sqldelight/tachiyomi/data/mangas.sq # data/src/main/sqldelight/tachiyomi/migrations/24.sqm
This commit is contained in:
parent
73b7c8d12d
commit
ccdaeada29
@ -569,6 +569,7 @@ class BackupManager(
|
|||||||
favorite = manga.favorite,
|
favorite = manga.favorite,
|
||||||
lastUpdate = manga.lastUpdate,
|
lastUpdate = manga.lastUpdate,
|
||||||
nextUpdate = 0L,
|
nextUpdate = 0L,
|
||||||
|
calculateInterval = 0L,
|
||||||
initialized = manga.initialized,
|
initialized = manga.initialized,
|
||||||
viewerFlags = manga.viewerFlags,
|
viewerFlags = manga.viewerFlags,
|
||||||
chapterFlags = manga.chapterFlags,
|
chapterFlags = manga.chapterFlags,
|
||||||
@ -597,6 +598,8 @@ class BackupManager(
|
|||||||
thumbnailUrl = manga.thumbnailUrl,
|
thumbnailUrl = manga.thumbnailUrl,
|
||||||
favorite = manga.favorite.toLong(),
|
favorite = manga.favorite.toLong(),
|
||||||
lastUpdate = manga.lastUpdate,
|
lastUpdate = manga.lastUpdate,
|
||||||
|
nextUpdate = null,
|
||||||
|
calculateInterval = null,
|
||||||
initialized = manga.initialized.toLong(),
|
initialized = manga.initialized.toLong(),
|
||||||
viewer = manga.viewerFlags,
|
viewer = manga.viewerFlags,
|
||||||
chapterFlags = manga.chapterFlags,
|
chapterFlags = manga.chapterFlags,
|
||||||
|
@ -5,13 +5,15 @@ import tachiyomi.domain.library.model.LibraryManga
|
|||||||
import tachiyomi.domain.manga.model.Manga
|
import tachiyomi.domain.manga.model.Manga
|
||||||
import tachiyomi.view.LibraryView
|
import tachiyomi.view.LibraryView
|
||||||
|
|
||||||
val mangaMapper: (Long, Long, String, String?, String?, String?, List<String>?, String, Long, String?, Boolean, Long?, Long?, Boolean, Long, Long, Long, Long, List<String>?, UpdateStrategy) -> Manga =
|
val mangaMapper: (Long, Long, String, String?, String?, String?, List<String>?, String, Long, String?, Boolean, Long?, Long?, Boolean, Long, Long, Long, Long, List<String>?, UpdateStrategy, Long) -> Manga =
|
||||||
{ id, source, url, artist, author, description, genre, title, status, thumbnailUrl, favorite, lastUpdate, _, initialized, viewerFlags, chapterFlags, coverLastModified, dateAdded, filteredScanlators, updateStrategy ->
|
{ id, source, url, artist, author, description, genre, title, status, thumbnailUrl, favorite, lastUpdate, _, initialized, viewerFlags, chapterFlags, coverLastModified, dateAdded, filteredScanlators, updateStrategy, calculateInterval ->
|
||||||
Manga(
|
Manga(
|
||||||
id = id,
|
id = id,
|
||||||
source = source,
|
source = source,
|
||||||
favorite = favorite,
|
favorite = favorite,
|
||||||
lastUpdate = lastUpdate ?: 0,
|
lastUpdate = lastUpdate ?: 0,
|
||||||
|
nextUpdate = nextUpdate ?: 0,
|
||||||
|
calculateInterval = calculateInterval.toInt(),
|
||||||
dateAdded = dateAdded,
|
dateAdded = dateAdded,
|
||||||
viewerFlags = viewerFlags,
|
viewerFlags = viewerFlags,
|
||||||
chapterFlags = chapterFlags,
|
chapterFlags = chapterFlags,
|
||||||
@ -34,8 +36,8 @@ val mangaMapper: (Long, Long, String, String?, String?, String?, List<String>?,
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
val libraryManga: (Long, Long, String, String?, String?, String?, List<String>?, String, Long, String?, Boolean, Long?, Long?, Boolean, Long, Long, Long, Long, List<String>?, UpdateStrategy, Long, Long, Long, Long, Long, Long, Long) -> LibraryManga =
|
val libraryManga: (Long, Long, String, String?, String?, String?, List<String>?, String, Long, String?, Boolean, Long?, Long?, Boolean, Long, Long, Long, Long, List<String>?, UpdateStrategy, Long, Long, Long, Long, Long, Long, Long, Long) -> LibraryManga =
|
||||||
{ id, source, url, artist, author, description, genre, title, status, thumbnailUrl, favorite, lastUpdate, nextUpdate, initialized, viewerFlags, chapterFlags, coverLastModified, dateAdded, filteredScanlators, updateStrategy, totalCount, readCount, latestUpload, chapterFetchedAt, lastRead, bookmarkCount, category ->
|
{ id, source, url, artist, author, description, genre, title, status, thumbnailUrl, favorite, lastUpdate, nextUpdate, initialized, viewerFlags, chapterFlags, coverLastModified, dateAdded, filteredScanlators, updateStrategy, calculateInterval, totalCount, readCount, latestUpload, chapterFetchedAt, lastRead, bookmarkCount, category ->
|
||||||
LibraryManga(
|
LibraryManga(
|
||||||
manga = mangaMapper(
|
manga = mangaMapper(
|
||||||
id,
|
id,
|
||||||
@ -51,6 +53,7 @@ val libraryManga: (Long, Long, String, String?, String?, String?, List<String>?,
|
|||||||
favorite,
|
favorite,
|
||||||
lastUpdate,
|
lastUpdate,
|
||||||
nextUpdate,
|
nextUpdate,
|
||||||
|
calculateInterval,
|
||||||
initialized,
|
initialized,
|
||||||
viewerFlags,
|
viewerFlags,
|
||||||
chapterFlags,
|
chapterFlags,
|
||||||
|
@ -99,7 +99,8 @@ class MangaRepositoryImpl(
|
|||||||
thumbnailUrl = manga.thumbnailUrl,
|
thumbnailUrl = manga.thumbnailUrl,
|
||||||
favorite = manga.favorite,
|
favorite = manga.favorite,
|
||||||
lastUpdate = manga.lastUpdate,
|
lastUpdate = manga.lastUpdate,
|
||||||
nextUpdate = null,
|
nextUpdate = manga.nextUpdate,
|
||||||
|
calculateInterval = manga.calculateInterval.toLong(),
|
||||||
initialized = manga.initialized,
|
initialized = manga.initialized,
|
||||||
viewerFlags = manga.viewerFlags,
|
viewerFlags = manga.viewerFlags,
|
||||||
chapterFlags = manga.chapterFlags,
|
chapterFlags = manga.chapterFlags,
|
||||||
@ -149,6 +150,8 @@ class MangaRepositoryImpl(
|
|||||||
thumbnailUrl = value.thumbnailUrl,
|
thumbnailUrl = value.thumbnailUrl,
|
||||||
favorite = value.favorite?.toLong(),
|
favorite = value.favorite?.toLong(),
|
||||||
lastUpdate = value.lastUpdate,
|
lastUpdate = value.lastUpdate,
|
||||||
|
nextUpdate = value.nextUpdate,
|
||||||
|
calculateInterval = value.calculateInterval?.toLong(),
|
||||||
initialized = value.initialized?.toLong(),
|
initialized = value.initialized?.toLong(),
|
||||||
viewer = value.viewerFlags,
|
viewer = value.viewerFlags,
|
||||||
chapterFlags = value.chapterFlags,
|
chapterFlags = value.chapterFlags,
|
||||||
|
@ -22,7 +22,8 @@ CREATE TABLE mangas(
|
|||||||
cover_last_modified INTEGER AS Long NOT NULL,
|
cover_last_modified INTEGER AS Long NOT NULL,
|
||||||
date_added INTEGER AS Long NOT NULL,
|
date_added INTEGER AS Long NOT NULL,
|
||||||
filtered_scanlators TEXT AS List<String>,
|
filtered_scanlators TEXT AS List<String>,
|
||||||
update_strategy INTEGER AS UpdateStrategy NOT NULL DEFAULT 0
|
update_strategy INTEGER AS UpdateStrategy NOT NULL DEFAULT 0,
|
||||||
|
calculate_interval INTEGER DEFAULT 0 NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE INDEX library_favorite_index ON mangas(favorite) WHERE favorite = 1;
|
CREATE INDEX library_favorite_index ON mangas(favorite) WHERE favorite = 1;
|
||||||
@ -98,8 +99,8 @@ WHERE favorite = 0 AND source IN :sourceIdsAND AND _id NOT IN (
|
|||||||
);
|
);
|
||||||
|
|
||||||
insert:
|
insert:
|
||||||
INSERT INTO mangas(source,url,artist,author,description,genre,title,status,thumbnail_url,favorite,last_update,next_update,initialized,viewer,chapter_flags,cover_last_modified,date_added,filtered_scanlators,update_strategy)
|
INSERT INTO mangas(source,url,artist,author,description,genre,title,status,thumbnail_url,favorite,last_update,next_update,initialized,viewer,chapter_flags,cover_last_modified,date_added,filtered_scanlators,update_strategy,calculate_interval)
|
||||||
VALUES (:source,:url,:artist,:author,:description,:genre,:title,:status,:thumbnailUrl,:favorite,:lastUpdate,:nextUpdate,:initialized,:viewerFlags,:chapterFlags,:coverLastModified,:dateAdded,:filteredScanlators,:updateStrategy);
|
VALUES (:source,:url,:artist,:author,:description,:genre,:title,:status,:thumbnailUrl,:favorite,:lastUpdate,:nextUpdate,:initialized,:viewerFlags,:chapterFlags,:coverLastModified,:dateAdded,:filteredScanlators,:updateStrategy,:calculateInterval);
|
||||||
|
|
||||||
update:
|
update:
|
||||||
UPDATE mangas SET
|
UPDATE mangas SET
|
||||||
@ -114,13 +115,15 @@ UPDATE mangas SET
|
|||||||
thumbnail_url = coalesce(:thumbnailUrl, thumbnail_url),
|
thumbnail_url = coalesce(:thumbnailUrl, thumbnail_url),
|
||||||
favorite = coalesce(:favorite, favorite),
|
favorite = coalesce(:favorite, favorite),
|
||||||
last_update = coalesce(:lastUpdate, last_update),
|
last_update = coalesce(:lastUpdate, last_update),
|
||||||
|
next_update = coalesce(:nextUpdate, next_update),
|
||||||
initialized = coalesce(:initialized, initialized),
|
initialized = coalesce(:initialized, initialized),
|
||||||
viewer = coalesce(:viewer, viewer),
|
viewer = coalesce(:viewer, viewer),
|
||||||
chapter_flags = coalesce(:chapterFlags, chapter_flags),
|
chapter_flags = coalesce(:chapterFlags, chapter_flags),
|
||||||
cover_last_modified = coalesce(:coverLastModified, cover_last_modified),
|
cover_last_modified = coalesce(:coverLastModified, cover_last_modified),
|
||||||
date_added = coalesce(:dateAdded, date_added),
|
date_added = coalesce(:dateAdded, date_added),
|
||||||
filtered_scanlators = coalesce(:filteredScanlators, filtered_scanlators),
|
filtered_scanlators = coalesce(:filteredScanlators, filtered_scanlators),
|
||||||
update_strategy = coalesce(:updateStrategy, update_strategy)
|
update_strategy = coalesce(:updateStrategy, update_strategy),
|
||||||
|
calculate_interval = coalesce(:calculateInterval, calculate_interval),
|
||||||
WHERE _id = :mangaId;
|
WHERE _id = :mangaId;
|
||||||
|
|
||||||
selectLastInsertedRowId:
|
selectLastInsertedRowId:
|
||||||
|
1
data/src/main/sqldelight/tachiyomi/migrations/25.sqm
Normal file
1
data/src/main/sqldelight/tachiyomi/migrations/25.sqm
Normal file
@ -0,0 +1 @@
|
|||||||
|
ALTER TABLE mangas ADD COLUMN calculate_interval INTEGER DEFAULT 0 NOT NULL;
|
@ -10,6 +10,8 @@ data class Manga(
|
|||||||
val source: Long,
|
val source: Long,
|
||||||
val favorite: Boolean,
|
val favorite: Boolean,
|
||||||
val lastUpdate: Long,
|
val lastUpdate: Long,
|
||||||
|
val nextUpdate: Long,
|
||||||
|
val calculateInterval: Int,
|
||||||
val dateAdded: Long,
|
val dateAdded: Long,
|
||||||
val viewerFlags: Long,
|
val viewerFlags: Long,
|
||||||
val chapterFlags: Long,
|
val chapterFlags: Long,
|
||||||
@ -128,6 +130,8 @@ data class Manga(
|
|||||||
source = -1L,
|
source = -1L,
|
||||||
favorite = false,
|
favorite = false,
|
||||||
lastUpdate = 0L,
|
lastUpdate = 0L,
|
||||||
|
nextUpdate = 0L,
|
||||||
|
calculateInterval = 0,
|
||||||
dateAdded = 0L,
|
dateAdded = 0L,
|
||||||
viewerFlags = 0L,
|
viewerFlags = 0L,
|
||||||
chapterFlags = 0L,
|
chapterFlags = 0L,
|
||||||
|
@ -7,6 +7,8 @@ data class MangaUpdate(
|
|||||||
val source: Long? = null,
|
val source: Long? = null,
|
||||||
val favorite: Boolean? = null,
|
val favorite: Boolean? = null,
|
||||||
val lastUpdate: Long? = null,
|
val lastUpdate: Long? = null,
|
||||||
|
val nextUpdate: Long? = null,
|
||||||
|
val calculateInterval: Int? = null,
|
||||||
val dateAdded: Long? = null,
|
val dateAdded: Long? = null,
|
||||||
val viewerFlags: Long? = null,
|
val viewerFlags: Long? = null,
|
||||||
val chapterFlags: Long? = null,
|
val chapterFlags: Long? = null,
|
||||||
@ -32,6 +34,8 @@ fun Manga.toMangaUpdate(): MangaUpdate {
|
|||||||
source = source,
|
source = source,
|
||||||
favorite = favorite,
|
favorite = favorite,
|
||||||
lastUpdate = lastUpdate,
|
lastUpdate = lastUpdate,
|
||||||
|
nextUpdate = nextUpdate,
|
||||||
|
calculateInterval = calculateInterval,
|
||||||
dateAdded = dateAdded,
|
dateAdded = dateAdded,
|
||||||
viewerFlags = viewerFlags,
|
viewerFlags = viewerFlags,
|
||||||
chapterFlags = chapterFlags,
|
chapterFlags = chapterFlags,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user