diff options
Diffstat (limited to 'raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/server/themes')
8 files changed, 0 insertions, 502 deletions
diff --git a/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/server/themes/handlers.go b/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/server/themes/handlers.go deleted file mode 100644 index b3b308a..0000000 --- a/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/server/themes/handlers.go +++ /dev/null @@ -1,27 +0,0 @@ -package themes - -import ( - "fmt" - "net" - - "github.com/AvengeMedia/DankMaterialShell/core/internal/server/models" -) - -func HandleRequest(conn net.Conn, req models.Request) { - switch req.Method { - case "themes.list": - HandleList(conn, req) - case "themes.listInstalled": - HandleListInstalled(conn, req) - case "themes.install": - HandleInstall(conn, req) - case "themes.uninstall": - HandleUninstall(conn, req) - case "themes.update": - HandleUpdate(conn, req) - case "themes.search": - HandleSearch(conn, req) - default: - models.RespondError(conn, req.ID, fmt.Sprintf("unknown method: %s", req.Method)) - } -} diff --git a/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/server/themes/install.go b/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/server/themes/install.go deleted file mode 100644 index 26d22ba..0000000 --- a/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/server/themes/install.go +++ /dev/null @@ -1,52 +0,0 @@ -package themes - -import ( - "fmt" - "net" - - "github.com/AvengeMedia/DankMaterialShell/core/internal/server/models" - "github.com/AvengeMedia/DankMaterialShell/core/internal/themes" -) - -func HandleInstall(conn net.Conn, req models.Request) { - idOrName, ok := models.Get[string](req, "name") - if !ok { - models.RespondError(conn, req.ID, "missing or invalid 'name' parameter") - return - } - - registry, err := themes.NewRegistry() - if err != nil { - models.RespondError(conn, req.ID, fmt.Sprintf("failed to create registry: %v", err)) - return - } - - themeList, err := registry.List() - if err != nil { - models.RespondError(conn, req.ID, fmt.Sprintf("failed to list themes: %v", err)) - return - } - - theme := themes.FindByIDOrName(idOrName, themeList) - if theme == nil { - models.RespondError(conn, req.ID, fmt.Sprintf("theme not found: %s", idOrName)) - return - } - - manager, err := themes.NewManager() - if err != nil { - models.RespondError(conn, req.ID, fmt.Sprintf("failed to create manager: %v", err)) - return - } - - registryThemeDir := registry.GetThemeDir(theme.SourceDir) - if err := manager.Install(*theme, registryThemeDir); err != nil { - models.RespondError(conn, req.ID, fmt.Sprintf("failed to install theme: %v", err)) - return - } - - models.Respond(conn, req.ID, models.SuccessResult{ - Success: true, - Message: fmt.Sprintf("theme installed: %s", theme.Name), - }) -} diff --git a/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/server/themes/list.go b/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/server/themes/list.go deleted file mode 100644 index 9564be1..0000000 --- a/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/server/themes/list.go +++ /dev/null @@ -1,54 +0,0 @@ -package themes - -import ( - "fmt" - "net" - "strings" - - "github.com/AvengeMedia/DankMaterialShell/core/internal/server/models" - "github.com/AvengeMedia/DankMaterialShell/core/internal/themes" -) - -func HandleList(conn net.Conn, req models.Request) { - registry, err := themes.NewRegistry() - if err != nil { - models.RespondError(conn, req.ID, fmt.Sprintf("failed to create registry: %v", err)) - return - } - - themeList, err := registry.List() - if err != nil { - models.RespondError(conn, req.ID, fmt.Sprintf("failed to list themes: %v", err)) - return - } - - manager, err := themes.NewManager() - if err != nil { - models.RespondError(conn, req.ID, fmt.Sprintf("failed to create manager: %v", err)) - return - } - - result := make([]ThemeInfo, len(themeList)) - for i, t := range themeList { - installed, _ := manager.IsInstalled(t) - info := ThemeInfo{ - ID: t.ID, - Name: t.Name, - Version: t.Version, - Author: t.Author, - Description: t.Description, - PreviewPath: t.PreviewPath, - SourceDir: t.SourceDir, - Installed: installed, - FirstParty: isFirstParty(t.Author), - } - addVariantsInfo(&info, t.Variants) - result[i] = info - } - - models.Respond(conn, req.ID, result) -} - -func isFirstParty(author string) bool { - return strings.EqualFold(author, "Avenge Media") || strings.EqualFold(author, "AvengeMedia") -} diff --git a/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/server/themes/list_installed.go b/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/server/themes/list_installed.go deleted file mode 100644 index 49be81b..0000000 --- a/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/server/themes/list_installed.go +++ /dev/null @@ -1,149 +0,0 @@ -package themes - -import ( - "fmt" - "net" - - "github.com/AvengeMedia/DankMaterialShell/core/internal/server/models" - "github.com/AvengeMedia/DankMaterialShell/core/internal/themes" -) - -func addVariantsInfo(info *ThemeInfo, variants *themes.ThemeVariants) { - if variants == nil { - return - } - - if variants.Type == "multi" { - if len(variants.Flavors) == 0 && len(variants.Accents) == 0 { - return - } - info.HasVariants = true - info.Variants = &VariantsInfo{ - Type: "multi", - Flavors: make([]FlavorInfo, len(variants.Flavors)), - Accents: make([]AccentInfo, len(variants.Accents)), - } - if variants.Defaults != nil { - info.Variants.Defaults = &MultiDefaults{ - Dark: variants.Defaults.Dark, - Light: variants.Defaults.Light, - } - } - for i, f := range variants.Flavors { - mode := "" - switch { - case f.Dark.Primary != "" && f.Light.Primary != "": - mode = "both" - case f.Dark.Primary != "": - mode = "dark" - case f.Light.Primary != "": - mode = "light" - default: - if f.Dark.Surface != "" { - mode = "dark" - } else if f.Light.Surface != "" { - mode = "light" - } - } - info.Variants.Flavors[i] = FlavorInfo{ID: f.ID, Name: f.Name, Mode: mode} - } - for i, a := range variants.Accents { - color := "" - if colors, ok := a.FlavorColors["mocha"]; ok && colors.Primary != "" { - color = colors.Primary - } else if colors, ok := a.FlavorColors["latte"]; ok && colors.Primary != "" { - color = colors.Primary - } else { - for _, c := range a.FlavorColors { - if c.Primary != "" { - color = c.Primary - break - } - } - } - info.Variants.Accents[i] = AccentInfo{ID: a.ID, Name: a.Name, Color: color} - } - return - } - - if len(variants.Options) == 0 { - return - } - info.HasVariants = true - info.Variants = &VariantsInfo{ - Default: variants.Default, - Options: make([]VariantInfo, len(variants.Options)), - } - for i, v := range variants.Options { - info.Variants.Options[i] = VariantInfo{ID: v.ID, Name: v.Name} - } -} - -func HandleListInstalled(conn net.Conn, req models.Request) { - manager, err := themes.NewManager() - if err != nil { - models.RespondError(conn, req.ID, fmt.Sprintf("failed to create manager: %v", err)) - return - } - - installedIDs, err := manager.ListInstalled() - if err != nil { - models.RespondError(conn, req.ID, fmt.Sprintf("failed to list installed themes: %v", err)) - return - } - - themeMap := make(map[string]themes.Theme) - if registry, err := themes.NewRegistry(); err == nil { - if allThemes, err := registry.List(); err == nil { - for _, t := range allThemes { - themeMap[t.ID] = t - } - } - } - - result := make([]ThemeInfo, 0, len(installedIDs)) - for _, id := range installedIDs { - if theme, ok := themeMap[id]; ok { - hasUpdate := false - if hasUpdates, err := manager.HasUpdates(id, theme); err == nil { - hasUpdate = hasUpdates - } - - info := ThemeInfo{ - ID: theme.ID, - Name: theme.Name, - Version: theme.Version, - Author: theme.Author, - Description: theme.Description, - SourceDir: id, - FirstParty: isFirstParty(theme.Author), - HasUpdate: hasUpdate, - } - addVariantsInfo(&info, theme.Variants) - result = append(result, info) - } else { - installed, err := manager.GetInstalledTheme(id) - if err != nil { - result = append(result, ThemeInfo{ - ID: id, - Name: id, - SourceDir: id, - }) - continue - } - info := ThemeInfo{ - ID: installed.ID, - Name: installed.Name, - Version: installed.Version, - Author: installed.Author, - Description: installed.Description, - SourceDir: id, - FirstParty: isFirstParty(installed.Author), - } - addVariantsInfo(&info, installed.Variants) - result = append(result, info) - } - } - - models.Respond(conn, req.ID, result) -} diff --git a/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/server/themes/search.go b/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/server/themes/search.go deleted file mode 100644 index 2823fe0..0000000 --- a/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/server/themes/search.go +++ /dev/null @@ -1,53 +0,0 @@ -package themes - -import ( - "fmt" - "net" - - "github.com/AvengeMedia/DankMaterialShell/core/internal/server/models" - "github.com/AvengeMedia/DankMaterialShell/core/internal/themes" -) - -func HandleSearch(conn net.Conn, req models.Request) { - query, ok := models.Get[string](req, "query") - if !ok { - models.RespondError(conn, req.ID, "missing or invalid 'query' parameter") - return - } - - registry, err := themes.NewRegistry() - if err != nil { - models.RespondError(conn, req.ID, fmt.Sprintf("failed to create registry: %v", err)) - return - } - - themeList, err := registry.List() - if err != nil { - models.RespondError(conn, req.ID, fmt.Sprintf("failed to list themes: %v", err)) - return - } - - searchResults := themes.FuzzySearch(query, themeList) - - manager, err := themes.NewManager() - if err != nil { - models.RespondError(conn, req.ID, fmt.Sprintf("failed to create manager: %v", err)) - return - } - - result := make([]ThemeInfo, len(searchResults)) - for i, t := range searchResults { - installed, _ := manager.IsInstalled(t) - result[i] = ThemeInfo{ - ID: t.ID, - Name: t.Name, - Version: t.Version, - Author: t.Author, - Description: t.Description, - Installed: installed, - FirstParty: isFirstParty(t.Author), - } - } - - models.Respond(conn, req.ID, result) -} diff --git a/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/server/themes/types.go b/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/server/themes/types.go deleted file mode 100644 index 0ad19b4..0000000 --- a/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/server/themes/types.go +++ /dev/null @@ -1,47 +0,0 @@ -package themes - -type VariantInfo struct { - ID string `json:"id"` - Name string `json:"name"` -} - -type FlavorInfo struct { - ID string `json:"id"` - Name string `json:"name"` - Mode string `json:"mode,omitempty"` -} - -type AccentInfo struct { - ID string `json:"id"` - Name string `json:"name"` - Color string `json:"color,omitempty"` -} - -type MultiDefaults struct { - Dark map[string]string `json:"dark,omitempty"` - Light map[string]string `json:"light,omitempty"` -} - -type VariantsInfo struct { - Type string `json:"type,omitempty"` - Default string `json:"default,omitempty"` - Defaults *MultiDefaults `json:"defaults,omitempty"` - Options []VariantInfo `json:"options,omitempty"` - Flavors []FlavorInfo `json:"flavors,omitempty"` - Accents []AccentInfo `json:"accents,omitempty"` -} - -type ThemeInfo struct { - ID string `json:"id"` - Name string `json:"name"` - Version string `json:"version"` - Author string `json:"author,omitempty"` - Description string `json:"description,omitempty"` - PreviewPath string `json:"previewPath,omitempty"` - SourceDir string `json:"sourceDir,omitempty"` - Installed bool `json:"installed,omitempty"` - FirstParty bool `json:"firstParty,omitempty"` - HasUpdate bool `json:"hasUpdate,omitempty"` - HasVariants bool `json:"hasVariants,omitempty"` - Variants *VariantsInfo `json:"variants,omitempty"` -} diff --git a/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/server/themes/uninstall.go b/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/server/themes/uninstall.go deleted file mode 100644 index 9b453e4..0000000 --- a/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/server/themes/uninstall.go +++ /dev/null @@ -1,63 +0,0 @@ -package themes - -import ( - "fmt" - "net" - - "github.com/AvengeMedia/DankMaterialShell/core/internal/server/models" - "github.com/AvengeMedia/DankMaterialShell/core/internal/themes" -) - -func HandleUninstall(conn net.Conn, req models.Request) { - idOrName, ok := models.Get[string](req, "name") - if !ok { - models.RespondError(conn, req.ID, "missing or invalid 'name' parameter") - return - } - - manager, err := themes.NewManager() - if err != nil { - models.RespondError(conn, req.ID, fmt.Sprintf("failed to create manager: %v", err)) - return - } - - registry, err := themes.NewRegistry() - if err != nil { - models.RespondError(conn, req.ID, fmt.Sprintf("failed to create registry: %v", err)) - return - } - - themeList, _ := registry.List() - theme := themes.FindByIDOrName(idOrName, themeList) - - if theme != nil { - installed, err := manager.IsInstalled(*theme) - if err != nil { - models.RespondError(conn, req.ID, fmt.Sprintf("failed to check if theme is installed: %v", err)) - return - } - if !installed { - models.RespondError(conn, req.ID, fmt.Sprintf("theme not installed: %s", idOrName)) - return - } - if err := manager.Uninstall(*theme); err != nil { - models.RespondError(conn, req.ID, fmt.Sprintf("failed to uninstall theme: %v", err)) - return - } - models.Respond(conn, req.ID, models.SuccessResult{ - Success: true, - Message: fmt.Sprintf("theme uninstalled: %s", theme.Name), - }) - return - } - - if err := manager.UninstallByID(idOrName); err != nil { - models.RespondError(conn, req.ID, fmt.Sprintf("theme not found: %s", idOrName)) - return - } - - models.Respond(conn, req.ID, models.SuccessResult{ - Success: true, - Message: fmt.Sprintf("theme uninstalled: %s", idOrName), - }) -} diff --git a/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/server/themes/update.go b/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/server/themes/update.go deleted file mode 100644 index fb9f81f..0000000 --- a/raveos-hyprland-theme/theme-data/DankMaterialShell/core/internal/server/themes/update.go +++ /dev/null @@ -1,57 +0,0 @@ -package themes - -import ( - "fmt" - "net" - - "github.com/AvengeMedia/DankMaterialShell/core/internal/server/models" - "github.com/AvengeMedia/DankMaterialShell/core/internal/themes" -) - -func HandleUpdate(conn net.Conn, req models.Request) { - idOrName, ok := models.Get[string](req, "name") - if !ok { - models.RespondError(conn, req.ID, "missing or invalid 'name' parameter") - return - } - - manager, err := themes.NewManager() - if err != nil { - models.RespondError(conn, req.ID, fmt.Sprintf("failed to create manager: %v", err)) - return - } - - registry, err := themes.NewRegistry() - if err != nil { - models.RespondError(conn, req.ID, fmt.Sprintf("failed to create registry: %v", err)) - return - } - - themeList, _ := registry.List() - theme := themes.FindByIDOrName(idOrName, themeList) - - if theme == nil { - models.RespondError(conn, req.ID, fmt.Sprintf("theme not found in registry: %s", idOrName)) - return - } - - installed, err := manager.IsInstalled(*theme) - if err != nil { - models.RespondError(conn, req.ID, fmt.Sprintf("failed to check if theme is installed: %v", err)) - return - } - if !installed { - models.RespondError(conn, req.ID, fmt.Sprintf("theme not installed: %s", idOrName)) - return - } - - if err := manager.Update(*theme); err != nil { - models.RespondError(conn, req.ID, fmt.Sprintf("failed to update theme: %v", err)) - return - } - - models.Respond(conn, req.ID, models.SuccessResult{ - Success: true, - Message: fmt.Sprintf("theme updated: %s", theme.Name), - }) -} |