gotd: update hash computing sort

This commit is contained in:
Tulir Asokan
2025-12-03 14:29:57 +02:00
parent 66b84a7b44
commit 55f8d1423b
+11 -12
View File
@@ -1,7 +1,8 @@
package cached
import (
"sort"
"cmp"
"slices"
"go.mau.fi/mautrix-telegram/pkg/gotd/telegram/query/hasher"
"go.mau.fi/mautrix-telegram/pkg/gotd/tg"
@@ -10,8 +11,8 @@ import (
func (s *ContactsGetContacts) computeHash(v *tg.ContactsContacts) int64 {
cts := v.Contacts
sort.SliceStable(cts, func(i, j int) bool {
return cts[i].UserID < cts[j].UserID
slices.SortStableFunc(cts, func(a, b tg.Contact) int {
return cmp.Compare(a.UserID, b.UserID)
})
h := hasher.Hasher{}
for _, contact := range cts {
@@ -24,8 +25,8 @@ func (s *ContactsGetContacts) computeHash(v *tg.ContactsContacts) int64 {
func (s *MessagesGetQuickReplies) computeHash(v *tg.MessagesQuickReplies) int64 {
r := v.QuickReplies
sort.SliceStable(r, func(i, j int) bool {
return r[i].ShortcutID < r[j].ShortcutID
slices.SortStableFunc(r, func(a, b tg.QuickReply) int {
return cmp.Compare(a.ShortcutID, b.ShortcutID)
})
h := hasher.Hasher{}
for _, contact := range r {
@@ -38,8 +39,8 @@ func (s *MessagesGetQuickReplies) computeHash(v *tg.MessagesQuickReplies) int64
func (s *PaymentsGetStarGiftCollections) computeHash(v *tg.PaymentsStarGiftCollections) int64 {
collections := v.Collections
sort.SliceStable(collections, func(i, j int) bool {
return collections[i].CollectionID < collections[j].CollectionID
slices.SortStableFunc(collections, func(a, b tg.StarGiftCollection) int {
return cmp.Compare(a.CollectionID, b.CollectionID)
})
h := hasher.Hasher{}
@@ -53,9 +54,7 @@ func (s *PaymentsGetStarGiftCollections) computeHash(v *tg.PaymentsStarGiftColle
func (s *AccountGetSavedMusicIDs) computeHash(v *tg.AccountSavedMusicIDs) int64 {
ids := v.IDs
sort.SliceStable(ids, func(i, j int) bool {
return ids[i] < ids[j]
})
slices.Sort(ids)
h := hasher.Hasher{}
for _, id := range ids {
@@ -68,8 +67,8 @@ func (s *AccountGetSavedMusicIDs) computeHash(v *tg.AccountSavedMusicIDs) int64
func (s *PaymentsGetStarGiftActiveAuctions) computeHash(v *tg.PaymentsStarGiftActiveAuctions) int64 {
auctions := v.Auctions
sort.SliceStable(auctions, func(i, j int) bool {
return auctions[i].GetGift().GetID() < auctions[j].GetGift().GetID()
slices.SortStableFunc(auctions, func(a, b tg.StarGiftActiveAuctionState) int {
return cmp.Compare(a.GetGift().GetID(), b.GetGift().GetID())
})
h := hasher.Hasher{}