mirror of
https://github.com/truewhile/MeBox.git
synced 2026-09-30 03:36:37 +08:00
b0fe40142a
* Rebrand MMTL to MeBox across codebase and assets Rename the project display name, Go module path, environment variable prefix (MEBOX_*), Docker image references, and UI branding from MMTL/mmtl to MeBox/mebox. Replace logo assets with the new MeBox icon and keep legacy SQLite migration support for existing mmtl.db deployments. Co-authored-by: truewhile <truewhile@users.noreply.github.com> * Fix logo icons: use cube-only crop without truncated text Previous icon generation cropped too much of the source image, including partial MeBox wordmark text that was cut off in square icon containers. Regenerate logo-64/192/512, favicon, and SVG from cube-only region. Co-authored-by: truewhile <truewhile@users.noreply.github.com> --------- Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: truewhile <truewhile@users.noreply.github.com>
43 lines
930 B
Go
43 lines
930 B
Go
package service
|
|
|
|
import (
|
|
"fmt"
|
|
"time"
|
|
|
|
"github.com/truewhile/MeBox/internal/model"
|
|
)
|
|
|
|
func mediaReleaseSortTime(media model.Media) time.Time {
|
|
if value := normalizeReleaseDate(media.ReleaseDate); value != "" {
|
|
if t, err := time.Parse("2006-01-02", value); err == nil {
|
|
return t
|
|
}
|
|
}
|
|
if media.Year > 0 {
|
|
if t, err := time.Parse("2006-01-02", fmt.Sprintf("%04d-12-31", media.Year)); err == nil {
|
|
return t
|
|
}
|
|
}
|
|
if !media.UpdatedAt.IsZero() {
|
|
return media.UpdatedAt
|
|
}
|
|
return media.CreatedAt
|
|
}
|
|
|
|
func mediaReleaseOrderSQL(desc bool) string {
|
|
dir := "ASC"
|
|
if desc {
|
|
dir = "DESC"
|
|
}
|
|
return fmt.Sprintf("media.release_date %s, media.year %s, media.created_at %s, media.id %s", dir, dir, dir, dir)
|
|
}
|
|
|
|
func embyPremiereDate(value string) (time.Time, bool) {
|
|
value = normalizeReleaseDate(value)
|
|
if value == "" {
|
|
return time.Time{}, false
|
|
}
|
|
t, err := time.Parse("2006-01-02", value)
|
|
return t, err == nil
|
|
}
|