mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-11-03 23:58:55 +01:00 
			
		
		
		
	Move SQLDelight to data module (#8954)
And use tachiyomi instead of eu.kanade.tachiyomi for package names in the module
This commit is contained in:
		
							
								
								
									
										64
									
								
								data/src/main/sqldelight/tachiyomi/view/historyView.sq
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								data/src/main/sqldelight/tachiyomi/view/historyView.sq
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,64 @@
 | 
			
		||||
CREATE VIEW historyView AS
 | 
			
		||||
SELECT
 | 
			
		||||
    history._id AS id,
 | 
			
		||||
    mangas._id AS mangaId,
 | 
			
		||||
    chapters._id AS chapterId,
 | 
			
		||||
    mangas.title,
 | 
			
		||||
    mangas.thumbnail_url AS thumbnailUrl,
 | 
			
		||||
    mangas.source,
 | 
			
		||||
    mangas.favorite,
 | 
			
		||||
    mangas.cover_last_modified,
 | 
			
		||||
    chapters.chapter_number AS chapterNumber,
 | 
			
		||||
    history.last_read AS readAt,
 | 
			
		||||
    history.time_read AS readDuration,
 | 
			
		||||
    max_last_read.last_read AS maxReadAt,
 | 
			
		||||
    max_last_read.chapter_id AS maxReadAtChapterId
 | 
			
		||||
FROM mangas
 | 
			
		||||
JOIN chapters
 | 
			
		||||
ON mangas._id = chapters.manga_id
 | 
			
		||||
JOIN history
 | 
			
		||||
ON chapters._id = history.chapter_id
 | 
			
		||||
JOIN (
 | 
			
		||||
    SELECT chapters.manga_id,chapters._id AS chapter_id, MAX(history.last_read) AS last_read
 | 
			
		||||
    FROM chapters JOIN history
 | 
			
		||||
    ON chapters._id = history.chapter_id
 | 
			
		||||
    GROUP BY chapters.manga_id
 | 
			
		||||
) AS max_last_read
 | 
			
		||||
ON chapters.manga_id = max_last_read.manga_id;
 | 
			
		||||
 | 
			
		||||
history:
 | 
			
		||||
SELECT
 | 
			
		||||
id,
 | 
			
		||||
mangaId,
 | 
			
		||||
chapterId,
 | 
			
		||||
title,
 | 
			
		||||
thumbnailUrl,
 | 
			
		||||
source,
 | 
			
		||||
favorite,
 | 
			
		||||
cover_last_modified,
 | 
			
		||||
chapterNumber,
 | 
			
		||||
readAt,
 | 
			
		||||
readDuration
 | 
			
		||||
FROM historyView
 | 
			
		||||
WHERE historyView.readAt > 0
 | 
			
		||||
AND maxReadAtChapterId = historyView.chapterId
 | 
			
		||||
AND lower(historyView.title) LIKE ('%' || :query || '%')
 | 
			
		||||
ORDER BY readAt DESC;
 | 
			
		||||
 | 
			
		||||
getLatestHistory:
 | 
			
		||||
SELECT
 | 
			
		||||
id,
 | 
			
		||||
mangaId,
 | 
			
		||||
chapterId,
 | 
			
		||||
title,
 | 
			
		||||
thumbnailUrl,
 | 
			
		||||
source,
 | 
			
		||||
favorite,
 | 
			
		||||
cover_last_modified,
 | 
			
		||||
chapterNumber,
 | 
			
		||||
readAt,
 | 
			
		||||
readDuration
 | 
			
		||||
FROM historyView
 | 
			
		||||
WHERE historyView.readAt > 0
 | 
			
		||||
ORDER BY readAt DESC
 | 
			
		||||
LIMIT 1;
 | 
			
		||||
							
								
								
									
										33
									
								
								data/src/main/sqldelight/tachiyomi/view/libraryView.sq
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								data/src/main/sqldelight/tachiyomi/view/libraryView.sq
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,33 @@
 | 
			
		||||
CREATE VIEW libraryView AS
 | 
			
		||||
SELECT
 | 
			
		||||
    M.*,
 | 
			
		||||
    coalesce(C.total, 0) AS totalCount,
 | 
			
		||||
    coalesce(C.readCount, 0) AS readCount,
 | 
			
		||||
    coalesce(C.latestUpload, 0) AS latestUpload,
 | 
			
		||||
    coalesce(C.fetchedAt, 0) AS chapterFetchedAt,
 | 
			
		||||
    coalesce(C.lastRead, 0) AS lastRead,
 | 
			
		||||
    coalesce(C.bookmarkCount, 0) AS bookmarkCount,
 | 
			
		||||
    coalesce(MC.category_id, 0) AS category
 | 
			
		||||
FROM mangas M
 | 
			
		||||
LEFT JOIN(
 | 
			
		||||
    SELECT
 | 
			
		||||
        chapters.manga_id,
 | 
			
		||||
        count(*) AS total,
 | 
			
		||||
        sum(read) AS readCount,
 | 
			
		||||
        coalesce(max(chapters.date_upload), 0) AS latestUpload,
 | 
			
		||||
        coalesce(max(history.last_read), 0) AS lastRead,
 | 
			
		||||
        coalesce(max(chapters.date_fetch), 0) AS fetchedAt,
 | 
			
		||||
        sum(chapters.bookmark) AS bookmarkCount
 | 
			
		||||
    FROM chapters
 | 
			
		||||
    LEFT JOIN history
 | 
			
		||||
    ON chapters._id = history.chapter_id
 | 
			
		||||
    GROUP BY chapters.manga_id
 | 
			
		||||
) AS C
 | 
			
		||||
ON M._id = C.manga_id
 | 
			
		||||
LEFT JOIN mangas_categories AS MC
 | 
			
		||||
ON MC.manga_id = M._id
 | 
			
		||||
WHERE M.favorite = 1;
 | 
			
		||||
 | 
			
		||||
library:
 | 
			
		||||
SELECT *
 | 
			
		||||
FROM libraryView;
 | 
			
		||||
							
								
								
									
										26
									
								
								data/src/main/sqldelight/tachiyomi/view/updatesView.sq
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								data/src/main/sqldelight/tachiyomi/view/updatesView.sq
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,26 @@
 | 
			
		||||
CREATE VIEW updatesView AS
 | 
			
		||||
SELECT
 | 
			
		||||
    mangas._id AS mangaId,
 | 
			
		||||
    mangas.title AS mangaTitle,
 | 
			
		||||
    chapters._id AS chapterId,
 | 
			
		||||
    chapters.name AS chapterName,
 | 
			
		||||
    chapters.scanlator,
 | 
			
		||||
    chapters.read,
 | 
			
		||||
    chapters.bookmark,
 | 
			
		||||
    chapters.last_page_read,
 | 
			
		||||
    mangas.source,
 | 
			
		||||
    mangas.favorite,
 | 
			
		||||
    mangas.thumbnail_url AS thumbnailUrl,
 | 
			
		||||
    mangas.cover_last_modified AS coverLastModified,
 | 
			
		||||
    chapters.date_upload AS dateUpload,
 | 
			
		||||
    chapters.date_fetch AS datefetch
 | 
			
		||||
FROM mangas JOIN chapters
 | 
			
		||||
ON mangas._id = chapters.manga_id
 | 
			
		||||
WHERE favorite = 1
 | 
			
		||||
AND date_fetch > date_added
 | 
			
		||||
ORDER BY date_fetch DESC;
 | 
			
		||||
 | 
			
		||||
updates:
 | 
			
		||||
SELECT *
 | 
			
		||||
FROM updatesView
 | 
			
		||||
WHERE dateUpload > :after;
 | 
			
		||||
		Reference in New Issue
	
	Block a user