mirror of
https://git.mills.io/saltyim/saltyim.git
synced 2024-06-16 03:48:24 +00:00
feat: set outbox nick@domain to destination (#113)
Co-authored-by: Jon Lundy <jon@xuu.cc> Reviewed-on: https://git.mills.io/saltyim/saltyim/pulls/113 Reviewed-by: James Mills <james@mills.io>
This commit is contained in:
parent
4544b1c4cf
commit
9da59f133d
12
client.go
12
client.go
@ -218,10 +218,14 @@ func (cli *Client) Outbox() *url.URL {
|
||||
return ep
|
||||
}
|
||||
|
||||
func (cli *Client) OutboxAddr() *Addr {
|
||||
func (cli *Client) OutboxAddr(to *Addr) *Addr {
|
||||
return &Addr{
|
||||
endpoint: cli.Outbox(),
|
||||
key: cli.me.key,
|
||||
User: to.User,
|
||||
Domain: to.Domain,
|
||||
|
||||
endpoint: cli.Outbox(),
|
||||
key: cli.me.key,
|
||||
capabilities: cli.me.capabilities,
|
||||
}
|
||||
}
|
||||
|
||||
@ -352,7 +356,7 @@ func (cli *Client) Send(user, msg string) error {
|
||||
return err
|
||||
}
|
||||
|
||||
return cli.SendToAddr(cli.OutboxAddr(), msg)
|
||||
return cli.SendToAddr(cli.OutboxAddr(addr), msg)
|
||||
}
|
||||
|
||||
func (cli *Client) SendToAddr(addr *Addr, msg string) error {
|
||||
|
14
lookup.go
14
lookup.go
@ -68,7 +68,7 @@ type Addr struct {
|
||||
discoveredDomain string
|
||||
avatar string
|
||||
capabilities Capabilities
|
||||
checkedAvatar bool
|
||||
checkedAvatar bool
|
||||
}
|
||||
|
||||
// IsZero returns true if the address is empty
|
||||
@ -83,14 +83,14 @@ func (a *Addr) MarshalJSON() ([]byte, error) {
|
||||
Domain string
|
||||
Key string
|
||||
Endpoint string
|
||||
Avatar string
|
||||
Avatar string
|
||||
}{
|
||||
User: a.User,
|
||||
Domain: a.Domain,
|
||||
Addr: a.String(),
|
||||
Key: a.key.ID().String(),
|
||||
Endpoint: a.Endpoint().String(),
|
||||
Avatar: a.Avatar(),
|
||||
Avatar: a.Avatar(),
|
||||
})
|
||||
}
|
||||
|
||||
@ -101,7 +101,7 @@ func (a *Addr) UnmarshalJSON(data []byte) error {
|
||||
Domain string
|
||||
Key string
|
||||
Endpoint string
|
||||
Avatar string
|
||||
Avatar string
|
||||
}{}
|
||||
|
||||
if err := json.Unmarshal(data, &res); err != nil {
|
||||
@ -122,7 +122,7 @@ func (a *Addr) UnmarshalJSON(data []byte) error {
|
||||
return fmt.Errorf("error parsing public key %q: %w", res.Key, err)
|
||||
}
|
||||
a.key = key
|
||||
a.avatar = res.Avatar
|
||||
a.avatar = res.Avatar
|
||||
|
||||
return nil
|
||||
}
|
||||
@ -133,7 +133,7 @@ func (a *Addr) String() string {
|
||||
|
||||
// Hash returns the Hex(SHA256Sum()) of the Address
|
||||
func (a *Addr) Hash() string {
|
||||
return fmt.Sprintf("%x", sha256.Sum256([]byte(a.String())))
|
||||
return fmt.Sprintf("%x", sha256.Sum256([]byte(strings.ToLower(a.String()))))
|
||||
}
|
||||
|
||||
// Formatted returns a formatted user used in the Salty Message Format
|
||||
@ -220,7 +220,7 @@ func (a *Addr) Avatar() string {
|
||||
if target, err := resolver.LookupSRV("avatars", "tcp", a.Domain); err == nil {
|
||||
a.avatar = fmt.Sprintf("https://%s/avatar/%s", target, a.Hash())
|
||||
}
|
||||
a.checkedAvatar = true
|
||||
a.checkedAvatar = true
|
||||
|
||||
return a.avatar
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user