diff options
author | 2023-02-03 20:03:05 +0000 | |
---|---|---|
committer | 2023-02-03 20:03:05 +0000 | |
commit | 33aee1b1e974e99182a95ce1a05e2be924d19bb2 (patch) | |
tree | 1471623039f70325a0b7a1c25dd4fe3afc883970 /internal/typeutils/astointernal.go | |
parent | [feature/frogend] (Mastodon) domain block CSV import (#1390) (diff) | |
download | gotosocial-33aee1b1e974e99182a95ce1a05e2be924d19bb2.tar.xz |
[chore] reformat GetAccount() functionality, support updating accounts based on last_fetch (#1411)
* reformat GetAccount() functionality, and add UpdateAccount() function.
* use fetched_at instead of last_webfingered_at
* catch local "not found" errors. small formatting / error string changes
* remove now unused error type
* return nil when wrapping nil error
* update expected error messages
* return correct url for foss satan webfinger
* add AP model for Some_User
* normalize local domain
* return notretrievable where appropriate
* expose NewErrNotRetrievable
* ensure webfinger for new accounts searched by uri
* update local account short circuit
* allow enrich to fail for already-known accounts
* remove unused LastWebfingeredAt
* expose test maps on mock http client
* update Update test
* reformat GetAccount() functionality, and add UpdateAccount() function.
* use fetched_at instead of last_webfingered_at
* catch local "not found" errors. small formatting / error string changes
* remove nil error checks (we shouldn't be passing nil errors to newError() initializers)
* remove mutex unlock on transport init fail (it hasn't yet been locked!)
* woops add back the error wrapping to use ErrNotRetrievable
* caches were never being started... :see_no_evil:
---------
Signed-off-by: kim <grufwub@gmail.com>
Co-authored-by: tsmethurst <tobi.smethurst@protonmail.com>
Diffstat (limited to 'internal/typeutils/astointernal.go')
-rw-r--r-- | internal/typeutils/astointernal.go | 30 |
1 files changed, 7 insertions, 23 deletions
diff --git a/internal/typeutils/astointernal.go b/internal/typeutils/astointernal.go index 7df2a138e..fff9c807a 100644 --- a/internal/typeutils/astointernal.go +++ b/internal/typeutils/astointernal.go @@ -33,7 +33,7 @@ import ( "github.com/superseriousbusiness/gotosocial/internal/uris" ) -func (c *converter) ASRepresentationToAccount(ctx context.Context, accountable ap.Accountable, accountDomain string, update bool) (*gtsmodel.Account, error) { +func (c *converter) ASRepresentationToAccount(ctx context.Context, accountable ap.Accountable, accountDomain string) (*gtsmodel.Account, error) { // first check if we actually already know this account uriProp := accountable.GetJSONLDId() if uriProp == nil || !uriProp.IsIRI() { @@ -41,18 +41,6 @@ func (c *converter) ASRepresentationToAccount(ctx context.Context, accountable a } uri := uriProp.GetIRI() - if !update { - acct, err := c.db.GetAccountByURI(ctx, uri.String()) - if err == nil { - // we already know this account so we can skip generating it - return acct, nil - } - if err != db.ErrNoEntries { - // we don't know the account and there's been a real error - return nil, fmt.Errorf("error getting account with uri %s from the database: %s", uri.String(), err) - } - } - // we don't know the account, or we're being told to update it, so we need to generate it from the person -- at least we already have the URI! acct := >smodel.Account{} acct.URI = uri.String() @@ -169,16 +157,12 @@ func (c *converter) ASRepresentationToAccount(ctx context.Context, accountable a acct.InboxURI = accountable.GetActivityStreamsInbox().GetIRI().String() } - // SharedInboxURI - if sharedInboxURI := ap.ExtractSharedInbox(accountable); sharedInboxURI != nil { - var sharedInbox string - - // only trust shared inbox if it has at least two domains, - // from the right, in common with the domain of the account - if dns.CompareDomainName(acct.Domain, sharedInboxURI.Host) >= 2 { - sharedInbox = sharedInboxURI.String() - } - + // SharedInboxURI: + // only trust shared inbox if it has at least two domains, + // from the right, in common with the domain of the account + if sharedInboxURI := ap.ExtractSharedInbox(accountable); // nocollapse + sharedInboxURI != nil && dns.CompareDomainName(acct.Domain, sharedInboxURI.Host) >= 2 { + sharedInbox := sharedInboxURI.String() acct.SharedInboxURI = &sharedInbox } |