81 lines
1.7 KiB
Go
81 lines
1.7 KiB
Go
package cached
|
|
|
|
import (
|
|
"cmp"
|
|
"slices"
|
|
|
|
"go.mau.fi/mautrix-telegram/pkg/gotd/telegram/query/hasher"
|
|
"go.mau.fi/mautrix-telegram/pkg/gotd/tg"
|
|
)
|
|
|
|
func (s *ContactsGetContacts) computeHash(v *tg.ContactsContacts) int64 {
|
|
cts := v.Contacts
|
|
|
|
slices.SortStableFunc(cts, func(a, b tg.Contact) int {
|
|
return cmp.Compare(a.UserID, b.UserID)
|
|
})
|
|
h := hasher.Hasher{}
|
|
for _, contact := range cts {
|
|
h.Update(uint32(contact.UserID))
|
|
}
|
|
|
|
return h.Sum()
|
|
}
|
|
|
|
func (s *MessagesGetQuickReplies) computeHash(v *tg.MessagesQuickReplies) int64 {
|
|
r := v.QuickReplies
|
|
|
|
slices.SortStableFunc(r, func(a, b tg.QuickReply) int {
|
|
return cmp.Compare(a.ShortcutID, b.ShortcutID)
|
|
})
|
|
h := hasher.Hasher{}
|
|
for _, contact := range r {
|
|
h.Update(uint32(contact.ShortcutID))
|
|
}
|
|
|
|
return h.Sum()
|
|
}
|
|
|
|
func (s *PaymentsGetStarGiftCollections) computeHash(v *tg.PaymentsStarGiftCollections) int64 {
|
|
collections := v.Collections
|
|
|
|
slices.SortStableFunc(collections, func(a, b tg.StarGiftCollection) int {
|
|
return cmp.Compare(a.CollectionID, b.CollectionID)
|
|
})
|
|
|
|
h := hasher.Hasher{}
|
|
for _, collection := range collections {
|
|
h.Update(uint32(collection.CollectionID))
|
|
}
|
|
|
|
return h.Sum()
|
|
}
|
|
|
|
func (s *AccountGetSavedMusicIDs) computeHash(v *tg.AccountSavedMusicIDs) int64 {
|
|
ids := v.IDs
|
|
|
|
slices.Sort(ids)
|
|
|
|
h := hasher.Hasher{}
|
|
for _, id := range ids {
|
|
h.Update(uint32(id))
|
|
}
|
|
|
|
return h.Sum()
|
|
}
|
|
|
|
func (s *PaymentsGetStarGiftActiveAuctions) computeHash(v *tg.PaymentsStarGiftActiveAuctions) int64 {
|
|
auctions := v.Auctions
|
|
|
|
slices.SortStableFunc(auctions, func(a, b tg.StarGiftActiveAuctionState) int {
|
|
return cmp.Compare(a.GetGift().GetID(), b.GetGift().GetID())
|
|
})
|
|
|
|
h := hasher.Hasher{}
|
|
for _, auction := range auctions {
|
|
h.Update(uint32(auction.GetGift().GetID()))
|
|
}
|
|
|
|
return h.Sum()
|
|
}
|