Files
perennial 4cffa928b8 wip: responsive resolution for artwork thumbnails
core/mangaseries: inline comments

core/types: comment out debug statements
2024-10-29 17:38:04 +11:00

55 lines
1.3 KiB
Go

package core
import (
"fmt"
"net/http"
"codeberg.org/vnpower/pixivfe/v2/audit"
"codeberg.org/vnpower/pixivfe/v2/server/session"
"github.com/goccy/go-json"
)
func GetNewestFromFollowing(auditor *audit.Auditor, r *http.Request, mode, page string) ([]ArtworkBrief, error) {
token := session.GetUserToken(r)
URL := GetNewestFromFollowingURL(mode, page)
var body struct {
Thumbnails json.RawMessage `json:"thumbnails"`
}
var artworks struct {
Artworks []ArtworkBrief `json:"illust"`
}
resp, err := API_GET_UnwrapJson(r.Context(), auditor, URL, token, r.Header)
if err != nil {
return nil, err
}
resp, err = session.ProxyImageUrl(r, resp)
if err != nil {
return nil, err
}
err = json.Unmarshal([]byte(resp), &body)
if err != nil {
return nil, err
}
err = json.Unmarshal([]byte(body.Thumbnails), &artworks)
if err != nil {
return nil, err
}
// Populate thumbnails for each artwork
for id, artwork := range artworks.Artworks {
if err := artwork.PopulateThumbnails(auditor); err != nil {
auditor.SugaredLogger.Errorf("Failed to populate thumbnails for artwork ID %s: %v", id, err)
return nil, fmt.Errorf("failed to populate thumbnails for artwork ID %s: %w", id, err)
}
artworks.Artworks[id] = artwork
}
return artworks.Artworks, nil
}