node build fixed
This commit is contained in:
102
seanime-2.9.10/internal/database/db/manga.go
Normal file
102
seanime-2.9.10/internal/database/db/manga.go
Normal file
@@ -0,0 +1,102 @@
|
||||
package db
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"seanime/internal/database/models"
|
||||
"seanime/internal/util/result"
|
||||
)
|
||||
|
||||
var mangaMappingCache = result.NewResultMap[string, *models.MangaMapping]()
|
||||
|
||||
func formatMangaMappingCacheKey(provider string, mediaId int) string {
|
||||
return fmt.Sprintf("%s$%d", provider, mediaId)
|
||||
}
|
||||
|
||||
func (db *Database) GetMangaMapping(provider string, mediaId int) (*models.MangaMapping, bool) {
|
||||
|
||||
if res, ok := mangaMappingCache.Get(formatMangaMappingCacheKey(provider, mediaId)); ok {
|
||||
return res, true
|
||||
}
|
||||
|
||||
var res models.MangaMapping
|
||||
err := db.gormdb.Where("provider = ? AND media_id = ?", provider, mediaId).First(&res).Error
|
||||
if err != nil {
|
||||
return nil, false
|
||||
}
|
||||
|
||||
mangaMappingCache.Set(formatMangaMappingCacheKey(provider, mediaId), &res)
|
||||
|
||||
return &res, true
|
||||
}
|
||||
|
||||
func (db *Database) InsertMangaMapping(provider string, mediaId int, mangaId string) error {
|
||||
mapping := models.MangaMapping{
|
||||
Provider: provider,
|
||||
MediaID: mediaId,
|
||||
MangaID: mangaId,
|
||||
}
|
||||
|
||||
mangaMappingCache.Set(formatMangaMappingCacheKey(provider, mediaId), &mapping)
|
||||
|
||||
return db.gormdb.Save(&mapping).Error
|
||||
}
|
||||
|
||||
func (db *Database) DeleteMangaMapping(provider string, mediaId int) error {
|
||||
err := db.gormdb.Where("provider = ? AND media_id = ?", provider, mediaId).Delete(&models.MangaMapping{}).Error
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
mangaMappingCache.Delete(formatMangaMappingCacheKey(provider, mediaId))
|
||||
return nil
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
var mangaChapterContainerCache = result.NewResultMap[string, *models.MangaChapterContainer]()
|
||||
|
||||
func formatMangaChapterContainerCacheKey(provider string, mediaId int, chapterId string) string {
|
||||
return fmt.Sprintf("%s$%d$%s", provider, mediaId, chapterId)
|
||||
}
|
||||
|
||||
func (db *Database) GetMangaChapterContainer(provider string, mediaId int, chapterId string) (*models.MangaChapterContainer, bool) {
|
||||
|
||||
if res, ok := mangaChapterContainerCache.Get(formatMangaChapterContainerCacheKey(provider, mediaId, chapterId)); ok {
|
||||
return res, true
|
||||
}
|
||||
|
||||
var res models.MangaChapterContainer
|
||||
err := db.gormdb.Where("provider = ? AND media_id = ? AND chapter_id = ?", provider, mediaId, chapterId).First(&res).Error
|
||||
if err != nil {
|
||||
return nil, false
|
||||
}
|
||||
|
||||
mangaChapterContainerCache.Set(formatMangaChapterContainerCacheKey(provider, mediaId, chapterId), &res)
|
||||
|
||||
return &res, true
|
||||
}
|
||||
|
||||
func (db *Database) InsertMangaChapterContainer(provider string, mediaId int, chapterId string, chapterContainer []byte) error {
|
||||
container := models.MangaChapterContainer{
|
||||
Provider: provider,
|
||||
MediaID: mediaId,
|
||||
ChapterID: chapterId,
|
||||
Data: chapterContainer,
|
||||
}
|
||||
|
||||
mangaChapterContainerCache.Set(formatMangaChapterContainerCacheKey(provider, mediaId, chapterId), &container)
|
||||
|
||||
return db.gormdb.Save(&container).Error
|
||||
}
|
||||
|
||||
func (db *Database) DeleteMangaChapterContainer(provider string, mediaId int, chapterId string) error {
|
||||
err := db.gormdb.Where("provider = ? AND media_id = ? AND chapter_id = ?", provider, mediaId, chapterId).Delete(&models.MangaChapterContainer{}).Error
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
mangaChapterContainerCache.Delete(formatMangaChapterContainerCacheKey(provider, mediaId, chapterId))
|
||||
return nil
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
Reference in New Issue
Block a user