mirror of
https://github.com/elyby/chrly.git
synced 2024-12-23 13:40:11 +05:30
56 lines
1.2 KiB
Go
56 lines
1.2 KiB
Go
|
package ui
|
||
|
|
||
|
import (
|
||
|
"encoding/json"
|
||
|
"net/http"
|
||
|
"strings"
|
||
|
|
||
|
"github.com/gorilla/mux"
|
||
|
|
||
|
"elyby/minecraft-skinsystem/utils"
|
||
|
)
|
||
|
|
||
|
type signedTexturesResponse struct {
|
||
|
Id string `json:"id"`
|
||
|
Name string `json:"name"`
|
||
|
IsEly bool `json:"ely,omitempty"`
|
||
|
Props []property `json:"properties"`
|
||
|
}
|
||
|
|
||
|
type property struct {
|
||
|
Name string `json:"name"`
|
||
|
Signature string `json:"signature,omitempty"`
|
||
|
Value string `json:"value"`
|
||
|
}
|
||
|
|
||
|
func (s *uiService) SignedTextures(response http.ResponseWriter, request *http.Request) {
|
||
|
s.logger.IncCounter("signed_textures.request", 1)
|
||
|
username := utils.ParseUsername(mux.Vars(request)["username"])
|
||
|
|
||
|
rec, err := s.skinsRepo.FindByUsername(username)
|
||
|
if err != nil || rec.SkinId == 0 || rec.MojangTextures == "" {
|
||
|
response.WriteHeader(http.StatusNoContent)
|
||
|
return
|
||
|
}
|
||
|
|
||
|
responseData:= signedTexturesResponse{
|
||
|
Id: strings.Replace(rec.Uuid, "-", "", -1),
|
||
|
Name: rec.Username,
|
||
|
Props: []property{
|
||
|
{
|
||
|
Name: "textures",
|
||
|
Signature: rec.MojangSignature,
|
||
|
Value: rec.MojangTextures,
|
||
|
},
|
||
|
{
|
||
|
Name: "ely",
|
||
|
Value: "but why are you asking?",
|
||
|
},
|
||
|
},
|
||
|
}
|
||
|
|
||
|
responseJson,_ := json.Marshal(responseData)
|
||
|
response.Header().Set("Content-Type", "application/json")
|
||
|
response.Write(responseJson)
|
||
|
}
|