MisskeyAdapter: add author cache

This commit is contained in:
Iris Lightshard 2024-08-17 10:56:50 -06:00
parent aecfd97c96
commit bcfe1587c9
Signed by: nilix
GPG Key ID: 688407174966CAF3
1 changed files with 34 additions and 20 deletions

View File

@ -232,8 +232,8 @@ func (self *MisskeyAdapter) toMessage(n mkm.Note, bustCache bool) *Message {
return nil
}
func (self *MisskeyAdapter) toAuthor(usr mkm.User) *Author {
fmt.Println("converting author: " + usr.ID)
func (self *MisskeyAdapter) toAuthor(usr mkm.User, bustCache bool) *Author {
host := mkcore.StringValue(usr.Host)
authorId := ""
if host != "" {
@ -242,12 +242,24 @@ func (self *MisskeyAdapter) toAuthor(usr mkm.User) *Author {
authorId = fmt.Sprintf("@%s", usr.Username)
}
self.mtx.RLock()
timestamp, exists := self.cache[authorId]
self.mtx.RUnlock()
var updated *int64 = nil
if usr.UpdatedAt != nil {
updatedTmp := usr.UpdatedAt.UnixMilli()
updated = &updatedTmp
}
if bustCache || !exists || (updated != nil && timestamp.Before(time.UnixMilli(*updated))) || timestamp.Before(*usr.CreatedAt) {
fmt.Println("converting author: " + usr.ID)
if usr.UpdatedAt != nil {
self.cache[authorId] = *usr.UpdatedAt
} else {
self.cache[authorId] = *usr.CreatedAt
}
author := Author{
Datagram: Datagram{
Id: authorId,
@ -265,6 +277,8 @@ func (self *MisskeyAdapter) toAuthor(usr mkm.User) *Author {
return &author
}
return nil
}
func (self *MisskeyAdapter) Fetch(etype string, ids []string) error {
for _, id := range ids {
@ -331,7 +345,7 @@ func (self *MisskeyAdapter) Fetch(etype string, ids []string) error {
if err != nil {
return err
} else {
a := self.toAuthor(data)
a := self.toAuthor(data, false)
if a != nil {
self.data <- a
}