2023-09-06 20:49:18 +02:00
|
|
|
package main
|
|
|
|
|
2023-09-13 19:48:24 +02:00
|
|
|
import (
|
2023-10-11 00:19:33 +02:00
|
|
|
"encoding/json"
|
2023-09-13 19:48:24 +02:00
|
|
|
)
|
|
|
|
|
2023-10-11 00:19:33 +02:00
|
|
|
func getProfileInfoFromJson(jsonStr string) (string, string) {
|
|
|
|
fieldOrder := []string{"displayName", "display_name", "username", "name"}
|
|
|
|
|
|
|
|
var data map[string]interface{}
|
|
|
|
err := json.Unmarshal([]byte(jsonStr), &data)
|
|
|
|
if err != nil {
|
2023-10-16 23:09:12 -03:00
|
|
|
log.Error().Err(err).Msg("failed to read profile from json")
|
2023-10-11 00:19:33 +02:00
|
|
|
return "", ""
|
|
|
|
}
|
|
|
|
|
|
|
|
var displayname string = "..."
|
|
|
|
var picture string = ""
|
|
|
|
|
|
|
|
for _, fieldName := range fieldOrder {
|
|
|
|
if val, ok := data[fieldName]; ok {
|
|
|
|
if strVal, ok := val.(string); ok && strVal != "" {
|
|
|
|
if fieldName == "picture" {
|
|
|
|
picture = strVal
|
|
|
|
}
|
|
|
|
if fieldName == "name" {
|
|
|
|
displayname = strVal
|
|
|
|
} else if displayname == "" {
|
|
|
|
displayname = strVal
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return displayname, picture
|
|
|
|
}
|