46 lines
888 B
Go
46 lines
888 B
Go
|
package client
|
||
|
|
||
|
import (
|
||
|
"forge.redroom.link/yves/meowlib"
|
||
|
)
|
||
|
|
||
|
type PeerList []Peer
|
||
|
|
||
|
func (pl *PeerList) GetFromPublicKey(publickey string) *Peer {
|
||
|
for _, peer := range *pl {
|
||
|
if peer.Contact.ContactPublicKey == publickey {
|
||
|
return &peer
|
||
|
}
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (pl *PeerList) GetFromMyLookupKey(publickey string) *Peer {
|
||
|
for _, peer := range *pl {
|
||
|
if peer.MyLookupKp.Public == publickey {
|
||
|
return &peer
|
||
|
}
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (pl *PeerList) GetFromName(name string) *Peer {
|
||
|
for _, peer := range *pl {
|
||
|
if peer.Contact.Name == name {
|
||
|
return &peer
|
||
|
}
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (pl *PeerList) GetConversationRequests() []*meowlib.ConversationRequest {
|
||
|
var list []*meowlib.ConversationRequest
|
||
|
for _, peer := range *pl {
|
||
|
var cr meowlib.ConversationRequest
|
||
|
cr.LookupKey = peer.MyLookupKp.Public
|
||
|
// TODO Add key signature
|
||
|
list = append(list, &cr)
|
||
|
}
|
||
|
return list
|
||
|
}
|