mirror of
https://github.com/simon-ding/polaris.git
synced 2026-02-06 15:10:49 +08:00
batch delete
This commit is contained in:
5
db/db.go
5
db/db.go
@@ -31,7 +31,6 @@ import (
|
||||
"modernc.org/sqlite"
|
||||
)
|
||||
|
||||
|
||||
// https://github.com/ent/ent/discussions/1667#discussioncomment-1132296
|
||||
type sqliteDriver struct {
|
||||
*sqlite.Driver
|
||||
@@ -237,8 +236,8 @@ func (c *client) GetAllEpisodes() (ent.Episodes, error) {
|
||||
return ep, err
|
||||
}
|
||||
|
||||
func (c *client) DeleteEpisode(id int) error {
|
||||
_, err := c.ent.Episode.Delete().Where(episode.ID(id)).Exec(context.TODO())
|
||||
func (c *client) DeleteEpisode(ids ...int) error {
|
||||
_, err := c.ent.Episode.Delete().Where(episode.IDIn(ids...)).Exec(context.TODO())
|
||||
return err
|
||||
}
|
||||
func (c *client) GetEpisode(seriesId, seasonNum, episodeNum int) (*ent.Episode, error) {
|
||||
|
||||
@@ -75,7 +75,7 @@ type MediaApis interface {
|
||||
|
||||
type EpisodeApis interface {
|
||||
GetAllEpisodes() (ent.Episodes, error)
|
||||
DeleteEpisode(id int) error
|
||||
DeleteEpisode(ids ...int) error
|
||||
GetEpisode(seriesId, seasonNum, episodeNum int) (*ent.Episode, error)
|
||||
GetEpisodeByID(epID int) (*ent.Episode, error)
|
||||
UpdateEpiode(episodeId int, name, overview string) error
|
||||
|
||||
@@ -37,21 +37,21 @@ func (c *Engine) checkDbScraps() error {
|
||||
log.Debugf("get all episodes error: %v", err)
|
||||
return err
|
||||
}
|
||||
count := 0
|
||||
|
||||
log.Infof("check db scraps, total episodes: %v, total media: %v", len(allEpisodes), len(validMediaIDs))
|
||||
toDeleteIds := make([]int, 0)
|
||||
for _, ep := range allEpisodes {
|
||||
if _, ok := validMediaIDs[ep.MediaID]; !ok {
|
||||
//log.Infof("remove scrap episode record: %v S%vE%v", ep.MediaID, ep.SeasonNumber, ep.EpisodeNumber)
|
||||
if err := c.db.DeleteEpisode(ep.ID); err != nil {
|
||||
log.Errorf("delete scrap episode record error: %v", err)
|
||||
}
|
||||
count++
|
||||
if count%100 == 0 {
|
||||
log.Infof("%v scrap episode records removed...", count)
|
||||
toDeleteIds = append(toDeleteIds, ep.ID)
|
||||
}
|
||||
}
|
||||
|
||||
log.Infof("%v scrap episode records will be removed...", len(toDeleteIds))
|
||||
|
||||
if err := c.db.DeleteEpisode(toDeleteIds...); err != nil {
|
||||
log.Errorf("delete scrap episode records error: %v", err)
|
||||
}
|
||||
log.Infof("%v scrap episode records removed...", count)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user