mirror of
https://github.com/PretendoNetwork/friends.git
synced 2025-04-02 11:01:46 -04:00
49 lines
1.4 KiB
Go
49 lines
1.4 KiB
Go
package database_3ds
|
|
|
|
import (
|
|
"github.com/PretendoNetwork/friends/database"
|
|
"github.com/PretendoNetwork/nex-go/v2/types"
|
|
friends_3ds_types "github.com/PretendoNetwork/nex-protocols-go/v2/friends-3ds/types"
|
|
"github.com/lib/pq"
|
|
)
|
|
|
|
// GetFriendMiis returns the Mii of all friends
|
|
func GetFriendMiis(pids []uint32) (types.List[friends_3ds_types.FriendMii], error) {
|
|
friendMiis := types.NewList[friends_3ds_types.FriendMii]()
|
|
|
|
rows, err := database.Manager.Query(`
|
|
SELECT pid, mii_name, mii_profanity, mii_character_set, mii_data, mii_changed FROM "3ds".user_data WHERE pid=ANY($1::int[])`, pq.Array(pids))
|
|
if err != nil {
|
|
return friendMiis, err
|
|
}
|
|
defer rows.Close()
|
|
|
|
for rows.Next() {
|
|
var pid uint32
|
|
var miiName string
|
|
var miiProfanity bool
|
|
var miiCharacterSet uint8
|
|
var miiData []byte
|
|
var changedTime uint64
|
|
|
|
err := rows.Scan(&pid, &miiName, &miiProfanity, &miiCharacterSet, &miiData, &changedTime)
|
|
if err != nil {
|
|
return friendMiis, err
|
|
}
|
|
|
|
mii := friends_3ds_types.NewMii()
|
|
mii.Name = types.NewString(miiName)
|
|
mii.ProfanityFlag = types.NewBool(miiProfanity)
|
|
mii.CharacterSet = types.NewUInt8(miiCharacterSet)
|
|
mii.MiiData = types.NewBuffer(miiData)
|
|
|
|
friendMii := friends_3ds_types.NewFriendMii()
|
|
friendMii.PID = types.NewPID(uint64(pid))
|
|
friendMii.Mii = mii
|
|
friendMii.ModifiedAt = types.NewDateTime(changedTime)
|
|
|
|
friendMiis = append(friendMiis, friendMii)
|
|
}
|
|
|
|
return friendMiis, nil
|
|
}
|