mirror of
https://github.com/yusing/godoxy.git
synced 2026-01-11 21:10:30 +01:00
Split the monolithic `internal/homepage` icons functionality into a structured package hierarchy: - `internal/homepage/icons/` - Core types (URL, Key, Meta, Provider, Source, Variant) - `internal/homepage/icons/fetch/` - Icon fetching logic (content.go, fetch.go, route.go) - `internal/homepage/icons/list/` - Icon listing and search (list_icons.go, list_icons_test.go) Moved icon-related code from `internal/homepage/`: - `icon_url.go` → `icons/url.go` (+ url_test.go) - `content.go` → `icons/fetch/content.go` - `route.go` → `icons/fetch/route.go` - `list_icons.go` → `icons/list/list_icons.go` (+ list_icons_test.go) Updated all consumers to use the new package structure: - `cmd/main.go` - `internal/api/v1/favicon.go` - `internal/api/v1/icons.go` - `internal/idlewatcher/handle_http.go` - `internal/route/route.go`
44 lines
993 B
Go
44 lines
993 B
Go
package icons
|
|
|
|
type Meta struct {
|
|
SVG bool `json:"SVG"`
|
|
PNG bool `json:"PNG"`
|
|
WebP bool `json:"WebP"`
|
|
Light bool `json:"Light"`
|
|
Dark bool `json:"Dark"`
|
|
DisplayName string `json:"-"`
|
|
Tag string `json:"-"`
|
|
}
|
|
|
|
func (icon *Meta) Filenames(ref string) []string {
|
|
filenames := make([]string, 0)
|
|
if icon.SVG {
|
|
filenames = append(filenames, ref+".svg")
|
|
if icon.Light {
|
|
filenames = append(filenames, ref+"-light.svg")
|
|
}
|
|
if icon.Dark {
|
|
filenames = append(filenames, ref+"-dark.svg")
|
|
}
|
|
}
|
|
if icon.PNG {
|
|
filenames = append(filenames, ref+".png")
|
|
if icon.Light {
|
|
filenames = append(filenames, ref+"-light.png")
|
|
}
|
|
if icon.Dark {
|
|
filenames = append(filenames, ref+"-dark.png")
|
|
}
|
|
}
|
|
if icon.WebP {
|
|
filenames = append(filenames, ref+".webp")
|
|
if icon.Light {
|
|
filenames = append(filenames, ref+"-light.webp")
|
|
}
|
|
if icon.Dark {
|
|
filenames = append(filenames, ref+"-dark.webp")
|
|
}
|
|
}
|
|
return filenames
|
|
}
|