1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-06-27 13:35:18 -04:00

plugins: fix plugin browser parentWindow and add similar support

This commit is contained in:
bbedward
2026-06-25 14:27:28 -04:00
parent d1f833fbbb
commit 016527fda9
5 changed files with 50 additions and 2 deletions
+16
View File
@@ -282,6 +282,11 @@ func browsePlugins() error {
feedback := plugins.FetchFeedback()
nameByID := make(map[string]string, len(pluginList))
for _, plugin := range pluginList {
nameByID[plugin.ID] = plugin.Name
}
fmt.Printf("\nAvailable Plugins (%d):\n\n", len(pluginList))
for _, plugin := range pluginList {
installed, _ := manager.IsInstalled(plugin)
@@ -313,6 +318,17 @@ func browsePlugins() error {
if fb.IssueURL != "" {
fmt.Printf(" Discuss: %s\n", fb.IssueURL)
}
if len(fb.Similar) > 0 {
names := make([]string, len(fb.Similar))
for i, id := range fb.Similar {
if name, ok := nameByID[id]; ok {
names[i] = name
} else {
names[i] = id
}
}
fmt.Printf(" Related: %s\n", strings.Join(names, ", "))
}
}
fmt.Println()
}
+3 -1
View File
@@ -12,6 +12,7 @@ type Feedback struct {
Upvotes int
Status []string
IssueURL string
Similar []string
}
// FetchFeedback retrieves community upvotes and moderator status from the directory API.
@@ -35,6 +36,7 @@ func FetchFeedback() map[string]Feedback {
Upvotes int `json:"upvotes"`
Status []string `json:"status"`
IssueURL string `json:"issueUrl"`
Similar []string `json:"similar"`
} `json:"plugins"`
}
if err := json.NewDecoder(resp.Body).Decode(&payload); err != nil {
@@ -43,7 +45,7 @@ func FetchFeedback() map[string]Feedback {
feedback := make(map[string]Feedback, len(payload.Plugins))
for _, p := range payload.Plugins {
feedback[p.ID] = Feedback{Upvotes: p.Upvotes, Status: p.Status, IssueURL: p.IssueURL}
feedback[p.ID] = Feedback{Upvotes: p.Upvotes, Status: p.Status, IssueURL: p.IssueURL, Similar: p.Similar}
}
return feedback
}
+1
View File
@@ -38,6 +38,7 @@ func HandleList(conn net.Conn, req models.Request) {
info.Upvotes = fb.Upvotes
info.Status = fb.Status
info.IssueURL = fb.IssueURL
info.Similar = fb.Similar
result[i] = info
}
+1
View File
@@ -21,6 +21,7 @@ type PluginInfo struct {
Upvotes int `json:"upvotes,omitempty"`
Status []string `json:"status,omitempty"`
IssueURL string `json:"issueUrl,omitempty"`
Similar []string `json:"similar,omitempty"`
}
type SuccessResult struct {