From f71221119484b3aa57c95ccc00696313acb08d78 Mon Sep 17 00:00:00 2001 From: Pablu23 Date: Tue, 2 Apr 2024 19:27:25 +0200 Subject: [PATCH] Added different Ports for release and develop, changed out Sort for simple iteration (Should be faster), Fixed Theme Switcher, fixed Saving of read chapters --- cmd/mangaGetter/develop.go | 2 ++ cmd/mangaGetter/main.go | 2 -- cmd/mangaGetter/release.go | 2 ++ internal/database/manga.go | 21 +++++++++++---------- internal/database/table.go | 2 ++ internal/view/Views/menu.gohtml | 1 + 6 files changed, 18 insertions(+), 12 deletions(-) diff --git a/cmd/mangaGetter/develop.go b/cmd/mangaGetter/develop.go index eed9a77..1a552b2 100644 --- a/cmd/mangaGetter/develop.go +++ b/cmd/mangaGetter/develop.go @@ -2,6 +2,8 @@ package main +const port = 8080 + func getDbPath() string { return "db.sqlite" } diff --git a/cmd/mangaGetter/main.go b/cmd/mangaGetter/main.go index 192310c..16e8ff0 100644 --- a/cmd/mangaGetter/main.go +++ b/cmd/mangaGetter/main.go @@ -33,8 +33,6 @@ func main() { } }() - port := 8080 - go func() { time.Sleep(300 * time.Millisecond) err := open(fmt.Sprintf("http://localhost:%d", port)) diff --git a/cmd/mangaGetter/release.go b/cmd/mangaGetter/release.go index 265beae..73eb8b2 100644 --- a/cmd/mangaGetter/release.go +++ b/cmd/mangaGetter/release.go @@ -7,6 +7,8 @@ import ( "path/filepath" ) +const port = 8000 + func getDbPath() string { dir, err := os.UserCacheDir() if err != nil { diff --git a/internal/database/manga.go b/internal/database/manga.go index e61cfc1..bbb2e7d 100644 --- a/internal/database/manga.go +++ b/internal/database/manga.go @@ -2,9 +2,7 @@ package database import ( "bytes" - "cmp" "database/sql" - "slices" ) type Manga struct { @@ -27,17 +25,20 @@ func NewManga(id int, title string, timeStampUnix int64) Manga { func (m *Manga) GetLatestChapter(chapters *DbTable[int, Chapter]) (*Chapter, bool) { c := chapters.All() - slices.SortStableFunc(c, func(a, b Chapter) int { - return cmp.Compare(b.TimeStampUnix, a.TimeStampUnix) - }) - - for _, chapter := range c { - if chapter.MangaId == m.Id { - return &chapter, true + highest := int64(0) + index := 0 + for i, chapter := range c { + if chapter.MangaId == m.Id && highest < chapter.TimeStampUnix { + highest = chapter.TimeStampUnix + index = i } } - return nil, false + if highest == 0 { + return nil, false + } + + return &c[index], true } func updateManga(db *sql.DB, m *Manga) error { diff --git a/internal/database/table.go b/internal/database/table.go index b43e377..46c7282 100644 --- a/internal/database/table.go +++ b/internal/database/table.go @@ -117,12 +117,14 @@ func (d *DbTable[K, T]) Save(db *sql.DB) error { if err != nil { return err } + d.updated[k] = Loaded } else { item := d.items[k] err := d.insertFunc(db, &item) if err != nil { return err } + d.updated[k] = Loaded } } return nil diff --git a/internal/view/Views/menu.gohtml b/internal/view/Views/menu.gohtml index 7d85a34..4331fd8 100644 --- a/internal/view/Views/menu.gohtml +++ b/internal/view/Views/menu.gohtml @@ -138,6 +138,7 @@