From 6c9d8e78ebbd81928abab1bbb49a3c4daa7d2a3a Mon Sep 17 00:00:00 2001 From: kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com> Date: Fri, 12 May 2023 10:15:54 +0100 Subject: [feature] status refetch support (#1690) * revamp http client to not limit requests, instead use sender worker Signed-off-by: kim * remove separate sender worker pool, spawn 2*GOMAXPROCS batch senders each time, no need for transport cache sweeping Signed-off-by: kim * improve batch senders to keep popping recipients until remote URL found Signed-off-by: kim * fix recipient looping issue Signed-off-by: kim * move request id ctx key to gtscontext, finish filling out more code comments, add basic support for not logging client IP Signed-off-by: kim * first draft of status refetching logic Signed-off-by: kim * fix testrig to use new federation alloc func signature Signed-off-by: kim * fix log format directive Signed-off-by: kim * add status fetched_at migration Signed-off-by: kim * remove unused / unchecked for error types Signed-off-by: kim * add back the used type... Signed-off-by: kim * add separate internal getStatus() function for derefThread() that doesn't recurse Signed-off-by: kim * improved mention and media attachment error handling Signed-off-by: kim * fix log and error format directives Signed-off-by: kim * update account deref to match status deref changes Signed-off-by: kim * very small code formatting change to make things clearer Signed-off-by: kim * add more code comments Signed-off-by: kim * improved code commenting Signed-off-by: kim * only check for required further derefs if needed Signed-off-by: kim * improved cache invalidation Signed-off-by: kim * tweak cache restarting to use a (very small) backoff Signed-off-by: kim * small readability changes and fixes Signed-off-by: kim * fix account sync issues Signed-off-by: kim * fix merge conflicts + update account enrichment to accept already-passed accountable Signed-off-by: kim * remove secondary function declaration Signed-off-by: kim * normalise dereferencer get status / account behaviour, fix remaining tests Signed-off-by: kim * fix remaining rebase conflicts, finish commenting code Signed-off-by: kim * appease the linter Signed-off-by: kim * add source file header Signed-off-by: kim * update to use TIMESTAMPTZ column type instead of just TIMESTAMP Signed-off-by: kim * don't pass in 'updated_at' to UpdateEmoji() Signed-off-by: kim * use new ap.Resolve{Account,Status}able() functions Signed-off-by: kim * remove the somewhat confusing rescoping of the same variable names Signed-off-by: kim * update migration file name, improved database delete error returns Signed-off-by: kim * formatting Signed-off-by: kim * improved multi-delete database functions to minimise DB calls Signed-off-by: kim * remove unused type Signed-off-by: kim * fix delete statements Signed-off-by: kim --------- Signed-off-by: kim --- testrig/federator.go | 2 +- testrig/testmodels.go | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) (limited to 'testrig') diff --git a/testrig/federator.go b/testrig/federator.go index 38ba487a9..23d780806 100644 --- a/testrig/federator.go +++ b/testrig/federator.go @@ -26,5 +26,5 @@ import ( // NewTestFederator returns a federator with the given database and (mock!!) transport controller. func NewTestFederator(state *state.State, tc transport.Controller, mediaManager media.Manager) federation.Federator { - return federation.NewFederator(state.DB, NewTestFederatingDB(state), tc, NewTestTypeConverter(state.DB), mediaManager) + return federation.NewFederator(state, NewTestFederatingDB(state), tc, NewTestTypeConverter(state.DB), mediaManager) } diff --git a/testrig/testmodels.go b/testrig/testmodels.go index 60c4b919a..6337004ff 100644 --- a/testrig/testmodels.go +++ b/testrig/testmodels.go @@ -2482,6 +2482,26 @@ func NewTestFediStatuses() map[string]vocab.ActivityStreamsNote { ), }, ), + "http://fossbros-anonymous.io/users/foss_satan/statuses/106221634728637552": NewAPNote( + URLMustParse("http://fossbros-anonymous.io/users/foss_satan/statuses/106221634728637552"), + URLMustParse("http://fossbros-anonymous.io/@foss_satan/106221634728637552"), + TimeMustParse("2022-07-13T12:13:12+02:00"), + `

@the_mighty_zork nice there it is:

social.pixie.town/users/f0x/st

`, + "", + URLMustParse("http://fossbros-anonymous.io/users/foss_satan"), + []*url.URL{ + URLMustParse(pub.PublicActivityPubIRI), + }, + []*url.URL{}, + false, + []vocab.ActivityStreamsMention{ + newAPMention( + URLMustParse("http://localhost:8080/users/the_mighty_zork"), + "@the_mighty_zork@localhost:8080", + ), + }, + nil, + ), } } -- cgit v1.3