update category start

This commit is contained in:
Apologieze
2025-01-31 23:20:49 -05:00
parent cc4de7e32d
commit c8bfceb17d
2 changed files with 100 additions and 11 deletions

View File

@@ -0,0 +1,81 @@
package anilist
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/http"
)
func makePostRequest(url, query string, variables map[string]interface{}, headers map[string]string) (map[string]interface{}, error) {
requestBody, err := json.Marshal(map[string]interface{}{
"query": query,
"variables": variables,
})
if err != nil {
return nil, fmt.Errorf("failed to marshal request body: %w", err)
}
req, err := http.NewRequest("POST", url, bytes.NewBuffer(requestBody))
if err != nil {
return nil, fmt.Errorf("failed to create request: %w", err)
}
req.Header.Set("Content-Type", "application/json") // <-- Important!
for key, value := range headers {
req.Header.Set(key, value)
}
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
return nil, fmt.Errorf("failed to send request: %w", err)
}
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil {
return nil, fmt.Errorf("failed to read response body: %w", err)
}
if resp.StatusCode != http.StatusOK {
return nil, fmt.Errorf("failed with status %d: %s", resp.StatusCode, body)
}
var responseData map[string]interface{}
// Unmarshal the response into a map
err = json.Unmarshal(body, &responseData)
if err != nil {
return nil, fmt.Errorf("failed to unmarshal response: %w", err)
}
return responseData, nil
}
func UpdateAnimeStatus(token string, mediaID int, status string) error {
url := "https://graphql.anilist.co"
query := `
mutation($mediaId: Int, $status: MediaListStatus) {
SaveMediaListEntry(mediaId: $mediaId, status: $status) {
id
status
}
}`
variables := map[string]interface{}{
"mediaId": mediaID,
"status": status,
}
headers := map[string]string{
"Authorization": "Bearer " + token,
"Content-Type": "application/json",
}
_, err := makePostRequest(url, query, variables, headers)
if err != nil {
return fmt.Errorf("failed to update anime status: %w", err)
}
return nil
}

View File

@@ -24,25 +24,33 @@ import (
"time"
)
var animeList *[]verniy.MediaList
var window fyne.Window
var appW fyne.App
var animeSelected *verniy.MediaList
var episodeNumber = widget.NewLabelWithStyle("", fyne.TextAlignCenter, fyne.TextStyle{Bold: true})
var episodeLastPlayback = widget.NewLabelWithStyle("", fyne.TextAlignCenter, fyne.TextStyle{})
var changedToken bool
var mpvPresent bool
var grayScaleList uint8 = 35
var (
animeList *[]verniy.MediaList
animeSelected *verniy.MediaList
window fyne.Window
appW fyne.App
episodeNumber = widget.NewLabelWithStyle("", fyne.TextAlignCenter, fyne.TextStyle{Bold: true})
episodeLastPlayback = widget.NewLabelWithStyle("", fyne.TextAlignCenter, fyne.TextStyle{})
changedToken bool
mpvPresent bool
grayScaleList uint8 = 35
)
func main() {
var AppName = "AnimeGUI"
const AppName = "AnimeGUI"
go dowloadMPV()
appW = app.New()
window = appW.NewWindow(AppName)
window.Resize(fyne.NewSize(1000, 700))
window.CenterOnScreen()
window.Show()
appW.Settings().SetTheme(&forcedVariant{Theme: theme.DefaultTheme(), variant: theme.VariantDark})
appW.Settings().SetTheme(&forcedVariant{
Theme: theme.DefaultTheme(),
variant: theme.VariantDark,
})
log.Info("Color", appW.Settings().Theme().Color(theme.ColorNameFocus, theme.VariantDark))
startCurdInteg()