diff options
author | 2021-11-13 17:29:43 +0100 | |
---|---|---|
committer | 2021-11-13 17:29:43 +0100 | |
commit | 09ef9e639efa1b01005dcb7fc044611f277ad618 (patch) | |
tree | bef200f444b7ddd90f2b9f0fcff644da7cd85a11 /internal | |
parent | update dependencies (#296) (diff) | |
download | gotosocial-09ef9e639efa1b01005dcb7fc044611f277ad618.tar.xz |
move to ssb gofed fork (#298)
Diffstat (limited to 'internal')
57 files changed, 213 insertions, 87 deletions
diff --git a/internal/ap/extract.go b/internal/ap/extract.go index f6ba555a8..b96079dec 100644 --- a/internal/ap/extract.go +++ b/internal/ap/extract.go @@ -31,7 +31,7 @@ import ( "strings" "time" - "github.com/go-fed/activity/pub" + "github.com/superseriousbusiness/activity/pub" "github.com/superseriousbusiness/gotosocial/internal/gtsmodel" "github.com/superseriousbusiness/gotosocial/internal/util" ) @@ -671,3 +671,21 @@ func isFollowers(uris []*url.URL, followersURI string) bool { } return false } + +// ExtractSensitive extracts whether or not an item is 'sensitive'. +// If no sensitive property is set on the item at all, or if this property +// isn't a boolean, then false will be returned by default. +func ExtractSensitive(withSensitive WithSensitive) bool { + sensitiveProp := withSensitive.GetActivityStreamsSensitive() + if sensitiveProp == nil { + return false + } + + for iter := sensitiveProp.Begin(); iter != sensitiveProp.End(); iter = iter.Next() { + if iter.IsXMLSchemaBoolean() { + return iter.Get() + } + } + + return false +} diff --git a/internal/ap/extract_test.go b/internal/ap/extract_test.go index 1b5c1f11f..5a3907ef7 100644 --- a/internal/ap/extract_test.go +++ b/internal/ap/extract_test.go @@ -22,10 +22,10 @@ import ( "context" "encoding/json" - "github.com/go-fed/activity/pub" - "github.com/go-fed/activity/streams" - "github.com/go-fed/activity/streams/vocab" "github.com/stretchr/testify/suite" + "github.com/superseriousbusiness/activity/pub" + "github.com/superseriousbusiness/activity/streams" + "github.com/superseriousbusiness/activity/streams/vocab" "github.com/superseriousbusiness/gotosocial/internal/ap" "github.com/superseriousbusiness/gotosocial/testrig" ) @@ -49,6 +49,10 @@ func document1() vocab.ActivityStreamsDocument { dBlurhash.Set("UxQ0EkRP_4tRxtRjWBt7%hozM_ayV@oLf6WB") d.SetTootBlurhash(dBlurhash) + dSensitive := streams.NewActivityStreamsSensitiveProperty() + dSensitive.AppendXMLSchemaBoolean(true) + d.SetActivityStreamsSensitive(dSensitive) + return d } diff --git a/internal/ap/extractattachments_test.go b/internal/ap/extractattachments_test.go index 3be340cc5..e6262b5aa 100644 --- a/internal/ap/extractattachments_test.go +++ b/internal/ap/extractattachments_test.go @@ -21,8 +21,8 @@ package ap_test import ( "testing" - "github.com/go-fed/activity/streams" "github.com/stretchr/testify/suite" + "github.com/superseriousbusiness/activity/streams" "github.com/superseriousbusiness/gotosocial/internal/ap" ) diff --git a/internal/ap/extractsensitive_test.go b/internal/ap/extractsensitive_test.go new file mode 100644 index 000000000..00b96d736 --- /dev/null +++ b/internal/ap/extractsensitive_test.go @@ -0,0 +1,42 @@ +/* + GoToSocial + Copyright (C) 2021 GoToSocial Authors admin@gotosocial.org + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package ap_test + +import ( + "testing" + + "github.com/stretchr/testify/suite" + "github.com/superseriousbusiness/gotosocial/internal/ap" +) + +type ExtractSensitiveTestSuite struct { + ExtractTestSuite +} + +func (suite *ExtractMentionsTestSuite) TestExtractSensitive() { + d := suite.document1 + suite.True(ap.ExtractSensitive(d)) + + n := suite.noteWithMentions1 + suite.False(ap.ExtractSensitive(n)) +} + +func TestExtractSensitiveTestSuite(t *testing.T) { + suite.Run(t, &ExtractSensitiveTestSuite{}) +} diff --git a/internal/ap/interfaces.go b/internal/ap/interfaces.go index da7e001db..7c8c1c943 100644 --- a/internal/ap/interfaces.go +++ b/internal/ap/interfaces.go @@ -18,7 +18,7 @@ package ap -import "github.com/go-fed/activity/streams/vocab" +import "github.com/superseriousbusiness/activity/streams/vocab" // Accountable represents the minimum activitypub interface for representing an 'account'. // This interface is fulfilled by: Person, Application, Organization, Service, and Group @@ -249,9 +249,9 @@ type WithCC interface { GetActivityStreamsCc() vocab.ActivityStreamsCcProperty } -// WithSensitive ... +// WithSensitive represents an activity with ActivityStreamsSensitiveProperty type WithSensitive interface { - // TODO + GetActivityStreamsSensitive() vocab.ActivityStreamsSensitiveProperty } // WithConversation ... diff --git a/internal/api/s2s/user/inboxpost_test.go b/internal/api/s2s/user/inboxpost_test.go index 3f02affdb..4d1c05757 100644 --- a/internal/api/s2s/user/inboxpost_test.go +++ b/internal/api/s2s/user/inboxpost_test.go @@ -29,9 +29,9 @@ import ( "time" "github.com/gin-gonic/gin" - "github.com/go-fed/activity/pub" - "github.com/go-fed/activity/streams" "github.com/stretchr/testify/suite" + "github.com/superseriousbusiness/activity/pub" + "github.com/superseriousbusiness/activity/streams" "github.com/superseriousbusiness/gotosocial/internal/api/s2s/user" "github.com/superseriousbusiness/gotosocial/internal/db" "github.com/superseriousbusiness/gotosocial/internal/gtsmodel" diff --git a/internal/api/s2s/user/outboxget_test.go b/internal/api/s2s/user/outboxget_test.go index 4f5ea3f17..251051cbd 100644 --- a/internal/api/s2s/user/outboxget_test.go +++ b/internal/api/s2s/user/outboxget_test.go @@ -27,9 +27,9 @@ import ( "testing" "github.com/gin-gonic/gin" - "github.com/go-fed/activity/streams" - "github.com/go-fed/activity/streams/vocab" "github.com/stretchr/testify/suite" + "github.com/superseriousbusiness/activity/streams" + "github.com/superseriousbusiness/activity/streams/vocab" "github.com/superseriousbusiness/gotosocial/internal/api/s2s/user" "github.com/superseriousbusiness/gotosocial/testrig" ) diff --git a/internal/api/s2s/user/repliesget_test.go b/internal/api/s2s/user/repliesget_test.go index 32cd0c366..cd1094b53 100644 --- a/internal/api/s2s/user/repliesget_test.go +++ b/internal/api/s2s/user/repliesget_test.go @@ -28,10 +28,10 @@ import ( "testing" "github.com/gin-gonic/gin" - "github.com/go-fed/activity/streams" - "github.com/go-fed/activity/streams/vocab" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/suite" + "github.com/superseriousbusiness/activity/streams" + "github.com/superseriousbusiness/activity/streams/vocab" "github.com/superseriousbusiness/gotosocial/internal/api/s2s/user" "github.com/superseriousbusiness/gotosocial/testrig" ) diff --git a/internal/api/s2s/user/userget_test.go b/internal/api/s2s/user/userget_test.go index 68f16fc76..303295cfe 100644 --- a/internal/api/s2s/user/userget_test.go +++ b/internal/api/s2s/user/userget_test.go @@ -27,10 +27,10 @@ import ( "testing" "github.com/gin-gonic/gin" - "github.com/go-fed/activity/streams" - "github.com/go-fed/activity/streams/vocab" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/suite" + "github.com/superseriousbusiness/activity/streams" + "github.com/superseriousbusiness/activity/streams/vocab" "github.com/superseriousbusiness/gotosocial/internal/api/s2s/user" "github.com/superseriousbusiness/gotosocial/testrig" ) diff --git a/internal/federation/authenticate.go b/internal/federation/authenticate.go index 78cfe2b5d..eb0e675c3 100644 --- a/internal/federation/authenticate.go +++ b/internal/federation/authenticate.go @@ -25,14 +25,15 @@ import ( "encoding/pem" "errors" "fmt" - "github.com/sirupsen/logrus" "net/url" "strings" - "github.com/go-fed/activity/pub" - "github.com/go-fed/activity/streams" - "github.com/go-fed/activity/streams/vocab" + "github.com/sirupsen/logrus" + "github.com/go-fed/httpsig" + "github.com/superseriousbusiness/activity/pub" + "github.com/superseriousbusiness/activity/streams" + "github.com/superseriousbusiness/activity/streams/vocab" "github.com/superseriousbusiness/gotosocial/internal/db" "github.com/superseriousbusiness/gotosocial/internal/gtsmodel" "github.com/superseriousbusiness/gotosocial/internal/util" diff --git a/internal/federation/clock.go b/internal/federation/clock.go index cc67f8b73..b727df503 100644 --- a/internal/federation/clock.go +++ b/internal/federation/clock.go @@ -21,7 +21,7 @@ package federation import ( "time" - "github.com/go-fed/activity/pub" + "github.com/superseriousbusiness/activity/pub" ) /* diff --git a/internal/federation/commonbehavior.go b/internal/federation/commonbehavior.go index 29eb9b6f3..299124c47 100644 --- a/internal/federation/commonbehavior.go +++ b/internal/federation/commonbehavior.go @@ -22,8 +22,8 @@ import ( "context" "net/http" - "github.com/go-fed/activity/streams" - "github.com/go-fed/activity/streams/vocab" + "github.com/superseriousbusiness/activity/streams" + "github.com/superseriousbusiness/activity/streams/vocab" ) /* diff --git a/internal/federation/dereferencing/account.go b/internal/federation/dereferencing/account.go index 7d8e2ff94..d5adb545b 100644 --- a/internal/federation/dereferencing/account.go +++ b/internal/federation/dereferencing/account.go @@ -26,9 +26,9 @@ import ( "net/url" "strings" - "github.com/go-fed/activity/streams" - "github.com/go-fed/activity/streams/vocab" "github.com/sirupsen/logrus" + "github.com/superseriousbusiness/activity/streams" + "github.com/superseriousbusiness/activity/streams/vocab" "github.com/superseriousbusiness/gotosocial/internal/ap" "github.com/superseriousbusiness/gotosocial/internal/gtsmodel" "github.com/superseriousbusiness/gotosocial/internal/id" diff --git a/internal/federation/dereferencing/collectionpage.go b/internal/federation/dereferencing/collectionpage.go index cf97327a5..9b8024c90 100644 --- a/internal/federation/dereferencing/collectionpage.go +++ b/internal/federation/dereferencing/collectionpage.go @@ -25,8 +25,8 @@ import ( "fmt" "net/url" - "github.com/go-fed/activity/streams" - "github.com/go-fed/activity/streams/vocab" + "github.com/superseriousbusiness/activity/streams" + "github.com/superseriousbusiness/activity/streams/vocab" "github.com/superseriousbusiness/gotosocial/internal/ap" ) diff --git a/internal/federation/dereferencing/dereferencer_test.go b/internal/federation/dereferencing/dereferencer_test.go index e73847ac7..d4bf3396d 100644 --- a/internal/federation/dereferencing/dereferencer_test.go +++ b/internal/federation/dereferencing/dereferencer_test.go @@ -25,10 +25,10 @@ import ( "net/http" "codeberg.org/gruf/go-store/kv" - "github.com/go-fed/activity/streams" - "github.com/go-fed/activity/streams/vocab" "github.com/sirupsen/logrus" "github.com/stretchr/testify/suite" + "github.com/superseriousbusiness/activity/streams" + "github.com/superseriousbusiness/activity/streams/vocab" "github.com/superseriousbusiness/gotosocial/internal/config" "github.com/superseriousbusiness/gotosocial/internal/db" "github.com/superseriousbusiness/gotosocial/internal/federation/dereferencing" diff --git a/internal/federation/dereferencing/status.go b/internal/federation/dereferencing/status.go index c4102a8f3..383f9718e 100644 --- a/internal/federation/dereferencing/status.go +++ b/internal/federation/dereferencing/status.go @@ -26,9 +26,9 @@ import ( "net/url" "strings" - "github.com/go-fed/activity/streams" - "github.com/go-fed/activity/streams/vocab" "github.com/sirupsen/logrus" + "github.com/superseriousbusiness/activity/streams" + "github.com/superseriousbusiness/activity/streams/vocab" "github.com/superseriousbusiness/gotosocial/internal/ap" "github.com/superseriousbusiness/gotosocial/internal/gtsmodel" "github.com/superseriousbusiness/gotosocial/internal/id" diff --git a/internal/federation/federatingactor.go b/internal/federation/federatingactor.go index 65a16efaf..a614822d6 100644 --- a/internal/federation/federatingactor.go +++ b/internal/federation/federatingactor.go @@ -23,8 +23,8 @@ import ( "net/http" "net/url" - "github.com/go-fed/activity/pub" - "github.com/go-fed/activity/streams/vocab" + "github.com/superseriousbusiness/activity/pub" + "github.com/superseriousbusiness/activity/streams/vocab" ) // federatingActor implements the go-fed federating protocol interface diff --git a/internal/federation/federatingdb/accept.go b/internal/federation/federatingdb/accept.go index 8d295161c..1509b37bc 100644 --- a/internal/federation/federatingdb/accept.go +++ b/internal/federation/federatingdb/accept.go @@ -23,8 +23,8 @@ import ( "errors" "fmt" - "github.com/go-fed/activity/streams/vocab" "github.com/sirupsen/logrus" + "github.com/superseriousbusiness/activity/streams/vocab" "github.com/superseriousbusiness/gotosocial/internal/ap" "github.com/superseriousbusiness/gotosocial/internal/db" "github.com/superseriousbusiness/gotosocial/internal/gtsmodel" diff --git a/internal/federation/federatingdb/announce.go b/internal/federation/federatingdb/announce.go index 7a40cd051..b506a9f78 100644 --- a/internal/federation/federatingdb/announce.go +++ b/internal/federation/federatingdb/announce.go @@ -22,8 +22,8 @@ import ( "context" "fmt" - "github.com/go-fed/activity/streams/vocab" "github.com/sirupsen/logrus" + "github.com/superseriousbusiness/activity/streams/vocab" "github.com/superseriousbusiness/gotosocial/internal/ap" "github.com/superseriousbusiness/gotosocial/internal/messages" ) diff --git a/internal/federation/federatingdb/create.go b/internal/federation/federatingdb/create.go index 862f84473..d992c2bd7 100644 --- a/internal/federation/federatingdb/create.go +++ b/internal/federation/federatingdb/create.go @@ -24,8 +24,8 @@ import ( "fmt" "strings" - "github.com/go-fed/activity/streams/vocab" "github.com/sirupsen/logrus" + "github.com/superseriousbusiness/activity/streams/vocab" "github.com/superseriousbusiness/gotosocial/internal/ap" "github.com/superseriousbusiness/gotosocial/internal/db" "github.com/superseriousbusiness/gotosocial/internal/gtsmodel" diff --git a/internal/federation/federatingdb/db.go b/internal/federation/federatingdb/db.go index 196d6163c..4b2f92fd4 100644 --- a/internal/federation/federatingdb/db.go +++ b/internal/federation/federatingdb/db.go @@ -23,8 +23,8 @@ import ( "sync" "time" - "github.com/go-fed/activity/pub" - "github.com/go-fed/activity/streams/vocab" + "github.com/superseriousbusiness/activity/pub" + "github.com/superseriousbusiness/activity/streams/vocab" "github.com/superseriousbusiness/gotosocial/internal/config" "github.com/superseriousbusiness/gotosocial/internal/db" "github.com/superseriousbusiness/gotosocial/internal/typeutils" diff --git a/internal/federation/federatingdb/followers.go b/internal/federation/federatingdb/followers.go index 2eccf167d..96b824c66 100644 --- a/internal/federation/federatingdb/followers.go +++ b/internal/federation/federatingdb/followers.go @@ -5,8 +5,8 @@ import ( "fmt" "net/url" - "github.com/go-fed/activity/streams/vocab" "github.com/sirupsen/logrus" + "github.com/superseriousbusiness/activity/streams/vocab" "github.com/superseriousbusiness/gotosocial/internal/db" ) diff --git a/internal/federation/federatingdb/followers_test.go b/internal/federation/federatingdb/followers_test.go index d993a7201..fbdf738a9 100644 --- a/internal/federation/federatingdb/followers_test.go +++ b/internal/federation/federatingdb/followers_test.go @@ -23,8 +23,8 @@ import ( "encoding/json" "testing" - "github.com/go-fed/activity/streams" "github.com/stretchr/testify/suite" + "github.com/superseriousbusiness/activity/streams" "github.com/superseriousbusiness/gotosocial/testrig" ) diff --git a/internal/federation/federatingdb/following.go b/internal/federation/federatingdb/following.go index cc6111715..54d703742 100644 --- a/internal/federation/federatingdb/following.go +++ b/internal/federation/federatingdb/following.go @@ -5,8 +5,8 @@ import ( "fmt" "net/url" - "github.com/go-fed/activity/streams/vocab" "github.com/sirupsen/logrus" + "github.com/superseriousbusiness/activity/streams/vocab" "github.com/superseriousbusiness/gotosocial/internal/db" ) diff --git a/internal/federation/federatingdb/following_test.go b/internal/federation/federatingdb/following_test.go index 7788840d7..7c2727269 100644 --- a/internal/federation/federatingdb/following_test.go +++ b/internal/federation/federatingdb/following_test.go @@ -23,8 +23,8 @@ import ( "encoding/json" "testing" - "github.com/go-fed/activity/streams" "github.com/stretchr/testify/suite" + "github.com/superseriousbusiness/activity/streams" "github.com/superseriousbusiness/gotosocial/testrig" ) diff --git a/internal/federation/federatingdb/get.go b/internal/federation/federatingdb/get.go index 6c629d717..a409b7b91 100644 --- a/internal/federation/federatingdb/get.go +++ b/internal/federation/federatingdb/get.go @@ -23,8 +23,8 @@ import ( "errors" "net/url" - "github.com/go-fed/activity/streams/vocab" "github.com/sirupsen/logrus" + "github.com/superseriousbusiness/activity/streams/vocab" "github.com/superseriousbusiness/gotosocial/internal/util" ) diff --git a/internal/federation/federatingdb/inbox.go b/internal/federation/federatingdb/inbox.go index 95886b571..90a10a499 100644 --- a/internal/federation/federatingdb/inbox.go +++ b/internal/federation/federatingdb/inbox.go @@ -22,8 +22,9 @@ import ( "context" "net/url" - "github.com/go-fed/activity/streams" - "github.com/go-fed/activity/streams/vocab" + "github.com/superseriousbusiness/activity/streams" + "github.com/superseriousbusiness/activity/streams/vocab" + "github.com/superseriousbusiness/gotosocial/internal/db" ) // InboxContains returns true if the OrderedCollection at 'inbox' @@ -56,3 +57,25 @@ func (f *federatingDB) GetInbox(c context.Context, inboxIRI *url.URL) (inbox voc func (f *federatingDB) SetInbox(c context.Context, inbox vocab.ActivityStreamsOrderedCollectionPage) error { return nil } + +// InboxForActor fetches the inbox corresponding to the given actorIRI. +// +// It is acceptable to just return nil for the inboxIRI. In this case, the library will +// attempt to resolve the inbox of the actor by remote dereferencing instead. +// +// The library makes this call only after acquiring a lock first. +func (f *federatingDB) InboxForActor(c context.Context, actorIRI *url.URL) (inboxIRI *url.URL, err error) { + account, err := f.db.GetAccountByURI(c, actorIRI.String()) + if err != nil { + // if there are just no entries for this account yet it's fine, return nil + // and go-fed will try to dereference it instead + if err == db.ErrNoEntries { + return nil, nil + } + // there's been an actual error... + return nil, err + } + + // we got it! + return url.Parse(account.InboxURI) +} diff --git a/internal/federation/federatingdb/liked.go b/internal/federation/federatingdb/liked.go index 93b3d2c88..2729c1223 100644 --- a/internal/federation/federatingdb/liked.go +++ b/internal/federation/federatingdb/liked.go @@ -22,8 +22,8 @@ import ( "context" "net/url" - "github.com/go-fed/activity/streams" - "github.com/go-fed/activity/streams/vocab" + "github.com/superseriousbusiness/activity/streams" + "github.com/superseriousbusiness/activity/streams/vocab" ) // Liked obtains the Liked Collection for an actor with the diff --git a/internal/federation/federatingdb/outbox.go b/internal/federation/federatingdb/outbox.go index 07caf999e..9d540e3a2 100644 --- a/internal/federation/federatingdb/outbox.go +++ b/internal/federation/federatingdb/outbox.go @@ -22,8 +22,8 @@ import ( "context" "net/url" - "github.com/go-fed/activity/streams" - "github.com/go-fed/activity/streams/vocab" + "github.com/superseriousbusiness/activity/streams" + "github.com/superseriousbusiness/activity/streams/vocab" ) // GetOutbox returns the first ordered collection page of the outbox diff --git a/internal/federation/federatingdb/reject.go b/internal/federation/federatingdb/reject.go index d05c41654..2d8687ee9 100644 --- a/internal/federation/federatingdb/reject.go +++ b/internal/federation/federatingdb/reject.go @@ -23,8 +23,8 @@ import ( "errors" "fmt" - "github.com/go-fed/activity/streams/vocab" "github.com/sirupsen/logrus" + "github.com/superseriousbusiness/activity/streams/vocab" "github.com/superseriousbusiness/gotosocial/internal/ap" "github.com/superseriousbusiness/gotosocial/internal/db" "github.com/superseriousbusiness/gotosocial/internal/gtsmodel" diff --git a/internal/federation/federatingdb/reject_test.go b/internal/federation/federatingdb/reject_test.go index 5e5f12a79..2b213a3f0 100644 --- a/internal/federation/federatingdb/reject_test.go +++ b/internal/federation/federatingdb/reject_test.go @@ -22,8 +22,8 @@ import ( "testing" "time" - "github.com/go-fed/activity/streams" "github.com/stretchr/testify/suite" + "github.com/superseriousbusiness/activity/streams" "github.com/superseriousbusiness/gotosocial/internal/db" "github.com/superseriousbusiness/gotosocial/internal/gtsmodel" "github.com/superseriousbusiness/gotosocial/internal/messages" diff --git a/internal/federation/federatingdb/undo.go b/internal/federation/federatingdb/undo.go index 934b5970d..f2dcc72c5 100644 --- a/internal/federation/federatingdb/undo.go +++ b/internal/federation/federatingdb/undo.go @@ -23,8 +23,8 @@ import ( "errors" "fmt" - "github.com/go-fed/activity/streams/vocab" "github.com/sirupsen/logrus" + "github.com/superseriousbusiness/activity/streams/vocab" "github.com/superseriousbusiness/gotosocial/internal/ap" "github.com/superseriousbusiness/gotosocial/internal/db" "github.com/superseriousbusiness/gotosocial/internal/gtsmodel" diff --git a/internal/federation/federatingdb/update.go b/internal/federation/federatingdb/update.go index 646b155dc..8f318ce71 100644 --- a/internal/federation/federatingdb/update.go +++ b/internal/federation/federatingdb/update.go @@ -23,8 +23,8 @@ import ( "errors" "fmt" - "github.com/go-fed/activity/streams/vocab" "github.com/sirupsen/logrus" + "github.com/superseriousbusiness/activity/streams/vocab" "github.com/superseriousbusiness/gotosocial/internal/ap" "github.com/superseriousbusiness/gotosocial/internal/gtsmodel" "github.com/superseriousbusiness/gotosocial/internal/messages" diff --git a/internal/federation/federatingdb/util.go b/internal/federation/federatingdb/util.go index 34a103a49..87b85aed6 100644 --- a/internal/federation/federatingdb/util.go +++ b/internal/federation/federatingdb/util.go @@ -25,9 +25,9 @@ import ( "fmt" "net/url" - "github.com/go-fed/activity/streams" - "github.com/go-fed/activity/streams/vocab" "github.com/sirupsen/logrus" + "github.com/superseriousbusiness/activity/streams" + "github.com/superseriousbusiness/activity/streams/vocab" "github.com/superseriousbusiness/gotosocial/internal/ap" "github.com/superseriousbusiness/gotosocial/internal/db" "github.com/superseriousbusiness/gotosocial/internal/gtsmodel" diff --git a/internal/federation/federatingprotocol.go b/internal/federation/federatingprotocol.go index 504e2dbeb..be5ab4d85 100644 --- a/internal/federation/federatingprotocol.go +++ b/internal/federation/federatingprotocol.go @@ -25,10 +25,10 @@ import ( "net/http" "net/url" - "github.com/go-fed/activity/pub" - "github.com/go-fed/activity/streams" - "github.com/go-fed/activity/streams/vocab" "github.com/sirupsen/logrus" + "github.com/superseriousbusiness/activity/pub" + "github.com/superseriousbusiness/activity/streams" + "github.com/superseriousbusiness/activity/streams/vocab" "github.com/superseriousbusiness/gotosocial/internal/db" "github.com/superseriousbusiness/gotosocial/internal/gtsmodel" "github.com/superseriousbusiness/gotosocial/internal/util" diff --git a/internal/federation/federator.go b/internal/federation/federator.go index 2813f6ff8..280375d7d 100644 --- a/internal/federation/federator.go +++ b/internal/federation/federator.go @@ -22,7 +22,7 @@ import ( "context" "net/url" - "github.com/go-fed/activity/pub" + "github.com/superseriousbusiness/activity/pub" "github.com/superseriousbusiness/gotosocial/internal/ap" "github.com/superseriousbusiness/gotosocial/internal/config" "github.com/superseriousbusiness/gotosocial/internal/db" diff --git a/internal/federation/federator_test.go b/internal/federation/federator_test.go index 44ae54074..7ac149c0d 100644 --- a/internal/federation/federator_test.go +++ b/internal/federation/federator_test.go @@ -25,10 +25,10 @@ import ( "testing" "codeberg.org/gruf/go-store/kv" - "github.com/go-fed/activity/pub" "github.com/go-fed/httpsig" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/suite" + "github.com/superseriousbusiness/activity/pub" "github.com/superseriousbusiness/gotosocial/internal/config" "github.com/superseriousbusiness/gotosocial/internal/db" diff --git a/internal/federation/transport.go b/internal/federation/transport.go index 9e2e38e19..5b5afaad5 100644 --- a/internal/federation/transport.go +++ b/internal/federation/transport.go @@ -23,7 +23,7 @@ import ( "fmt" "net/url" - "github.com/go-fed/activity/pub" + "github.com/superseriousbusiness/activity/pub" "github.com/superseriousbusiness/gotosocial/internal/util" ) diff --git a/internal/processing/account/account_test.go b/internal/processing/account/account_test.go index e2f8a1339..9bc97a77b 100644 --- a/internal/processing/account/account_test.go +++ b/internal/processing/account/account_test.go @@ -20,8 +20,8 @@ package account_test import ( "codeberg.org/gruf/go-store/kv" - "github.com/go-fed/activity/pub" "github.com/stretchr/testify/suite" + "github.com/superseriousbusiness/activity/pub" "github.com/superseriousbusiness/gotosocial/internal/config" "github.com/superseriousbusiness/gotosocial/internal/db" "github.com/superseriousbusiness/gotosocial/internal/email" diff --git a/internal/processing/federation/getfollowers.go b/internal/processing/federation/getfollowers.go index b17c90e07..aac63cd5c 100644 --- a/internal/processing/federation/getfollowers.go +++ b/internal/processing/federation/getfollowers.go @@ -24,7 +24,7 @@ import ( "fmt" "net/url" - "github.com/go-fed/activity/streams" + "github.com/superseriousbusiness/activity/streams" "github.com/superseriousbusiness/gotosocial/internal/gtserror" ) diff --git a/internal/processing/federation/getfollowing.go b/internal/processing/federation/getfollowing.go index e2d50d238..0715ffece 100644 --- a/internal/processing/federation/getfollowing.go +++ b/internal/processing/federation/getfollowing.go @@ -24,7 +24,7 @@ import ( "fmt" "net/url" - "github.com/go-fed/activity/streams" + "github.com/superseriousbusiness/activity/streams" "github.com/superseriousbusiness/gotosocial/internal/gtserror" ) diff --git a/internal/processing/federation/getoutbox.go b/internal/processing/federation/getoutbox.go index a3b2cff3c..2e8a4d3f5 100644 --- a/internal/processing/federation/getoutbox.go +++ b/internal/processing/federation/getoutbox.go @@ -24,7 +24,7 @@ import ( "fmt" "net/url" - "github.com/go-fed/activity/streams" + "github.com/superseriousbusiness/activity/streams" "github.com/superseriousbusiness/gotosocial/internal/db" "github.com/superseriousbusiness/gotosocial/internal/gtserror" ) diff --git a/internal/processing/federation/getstatus.go b/internal/processing/federation/getstatus.go index a4f251023..5c13a54f6 100644 --- a/internal/processing/federation/getstatus.go +++ b/internal/processing/federation/getstatus.go @@ -24,7 +24,7 @@ import ( "fmt" "net/url" - "github.com/go-fed/activity/streams" + "github.com/superseriousbusiness/activity/streams" "github.com/superseriousbusiness/gotosocial/internal/db" "github.com/superseriousbusiness/gotosocial/internal/gtserror" "github.com/superseriousbusiness/gotosocial/internal/gtsmodel" diff --git a/internal/processing/federation/getstatusreplies.go b/internal/processing/federation/getstatusreplies.go index 0fa0cc386..28c46269e 100644 --- a/internal/processing/federation/getstatusreplies.go +++ b/internal/processing/federation/getstatusreplies.go @@ -24,7 +24,7 @@ import ( "fmt" "net/url" - "github.com/go-fed/activity/streams" + "github.com/superseriousbusiness/activity/streams" "github.com/superseriousbusiness/gotosocial/internal/db" "github.com/superseriousbusiness/gotosocial/internal/gtserror" "github.com/superseriousbusiness/gotosocial/internal/gtsmodel" diff --git a/internal/processing/federation/getuser.go b/internal/processing/federation/getuser.go index 0d80e528e..37444bf5d 100644 --- a/internal/processing/federation/getuser.go +++ b/internal/processing/federation/getuser.go @@ -24,8 +24,8 @@ import ( "fmt" "net/url" - "github.com/go-fed/activity/streams" - "github.com/go-fed/activity/streams/vocab" + "github.com/superseriousbusiness/activity/streams" + "github.com/superseriousbusiness/activity/streams/vocab" "github.com/superseriousbusiness/gotosocial/internal/gtserror" "github.com/superseriousbusiness/gotosocial/internal/util" ) diff --git a/internal/processing/fromclientapi.go b/internal/processing/fromclientapi.go index db6f7382d..b8259c87a 100644 --- a/internal/processing/fromclientapi.go +++ b/internal/processing/fromclientapi.go @@ -24,7 +24,7 @@ import ( "fmt" "net/url" - "github.com/go-fed/activity/streams" + "github.com/superseriousbusiness/activity/streams" "github.com/superseriousbusiness/gotosocial/internal/ap" "github.com/superseriousbusiness/gotosocial/internal/db" "github.com/superseriousbusiness/gotosocial/internal/gtsmodel" diff --git a/internal/processing/processor_test.go b/internal/processing/processor_test.go index 270682b26..181cfa63a 100644 --- a/internal/processing/processor_test.go +++ b/internal/processing/processor_test.go @@ -27,8 +27,8 @@ import ( "net/http" "codeberg.org/gruf/go-store/kv" - "github.com/go-fed/activity/streams" "github.com/stretchr/testify/suite" + "github.com/superseriousbusiness/activity/streams" "github.com/superseriousbusiness/gotosocial/internal/config" "github.com/superseriousbusiness/gotosocial/internal/db" "github.com/superseriousbusiness/gotosocial/internal/email" diff --git a/internal/transport/controller.go b/internal/transport/controller.go index 9b22928d4..86f612c15 100644 --- a/internal/transport/controller.go +++ b/internal/transport/controller.go @@ -24,8 +24,8 @@ import ( "fmt" "sync" - "github.com/go-fed/activity/pub" "github.com/go-fed/httpsig" + "github.com/superseriousbusiness/activity/pub" "github.com/superseriousbusiness/gotosocial/internal/config" "github.com/superseriousbusiness/gotosocial/internal/db" ) diff --git a/internal/transport/transport.go b/internal/transport/transport.go index 14787f5a2..5c0c7a61f 100644 --- a/internal/transport/transport.go +++ b/internal/transport/transport.go @@ -24,8 +24,8 @@ import ( "net/url" "sync" - "github.com/go-fed/activity/pub" "github.com/go-fed/httpsig" + "github.com/superseriousbusiness/activity/pub" "github.com/superseriousbusiness/gotosocial/internal/gtsmodel" ) diff --git a/internal/typeutils/astointernal.go b/internal/typeutils/astointernal.go index 89b950c5b..c5ee51130 100644 --- a/internal/typeutils/astointernal.go +++ b/internal/typeutils/astointernal.go @@ -294,7 +294,7 @@ func (c *converter) ASStatusToStatus(ctx context.Context, statusable ap.Statusab status.Likeable = true // sensitive - // TODO: this is a bool + status.Sensitive = ap.ExtractSensitive(statusable) // language // we might be able to extract this from the contentMap field diff --git a/internal/typeutils/astointernal_test.go b/internal/typeutils/astointernal_test.go index bc44ec2bd..38ec757c9 100644 --- a/internal/typeutils/astointernal_test.go +++ b/internal/typeutils/astointernal_test.go @@ -24,10 +24,10 @@ import ( "fmt" "testing" - "github.com/go-fed/activity/streams" - "github.com/go-fed/activity/streams/vocab" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/suite" + "github.com/superseriousbusiness/activity/streams" + "github.com/superseriousbusiness/activity/streams/vocab" "github.com/superseriousbusiness/gotosocial/internal/ap" "github.com/superseriousbusiness/gotosocial/internal/gtsmodel" ) diff --git a/internal/typeutils/converter.go b/internal/typeutils/converter.go index eeb5bead1..212ae1247 100644 --- a/internal/typeutils/converter.go +++ b/internal/typeutils/converter.go @@ -22,7 +22,7 @@ import ( "context" "net/url" - "github.com/go-fed/activity/streams/vocab" + "github.com/superseriousbusiness/activity/streams/vocab" "github.com/superseriousbusiness/gotosocial/internal/ap" "github.com/superseriousbusiness/gotosocial/internal/api/model" "github.com/superseriousbusiness/gotosocial/internal/cache" diff --git a/internal/typeutils/converter_test.go b/internal/typeutils/converter_test.go index 041182369..d557e52f2 100644 --- a/internal/typeutils/converter_test.go +++ b/internal/typeutils/converter_test.go @@ -19,8 +19,8 @@ package typeutils_test import ( - "github.com/go-fed/activity/streams/vocab" "github.com/stretchr/testify/suite" + "github.com/superseriousbusiness/activity/streams/vocab" "github.com/superseriousbusiness/gotosocial/internal/config" "github.com/superseriousbusiness/gotosocial/internal/db" "github.com/superseriousbusiness/gotosocial/internal/gtsmodel" diff --git a/internal/typeutils/internaltoas.go b/internal/typeutils/internaltoas.go index 047d61b80..7afb65f21 100644 --- a/internal/typeutils/internaltoas.go +++ b/internal/typeutils/internaltoas.go @@ -25,9 +25,9 @@ import ( "fmt" "net/url" - "github.com/go-fed/activity/pub" - "github.com/go-fed/activity/streams" - "github.com/go-fed/activity/streams/vocab" + "github.com/superseriousbusiness/activity/pub" + "github.com/superseriousbusiness/activity/streams" + "github.com/superseriousbusiness/activity/streams/vocab" "github.com/superseriousbusiness/gotosocial/internal/gtserror" "github.com/superseriousbusiness/gotosocial/internal/gtsmodel" ) @@ -537,6 +537,11 @@ func (c *converter) StatusToAS(ctx context.Context, s *gtsmodel.Status) (vocab.A repliesProp.SetActivityStreamsCollection(repliesCollection) status.SetActivityStreamsReplies(repliesProp) + // sensitive + sensitiveProp := streams.NewActivityStreamsSensitiveProperty() + sensitiveProp.AppendXMLSchemaBoolean(s.Sensitive) + status.SetActivityStreamsSensitive(sensitiveProp) + // put the note in our cache in case we need it again soon if err := c.asCache.Store(s.ID, status); err != nil { return nil, err diff --git a/internal/typeutils/internaltoas_test.go b/internal/typeutils/internaltoas_test.go index d8098098f..da7dc883a 100644 --- a/internal/typeutils/internaltoas_test.go +++ b/internal/typeutils/internaltoas_test.go @@ -24,9 +24,9 @@ import ( "fmt" "testing" - "github.com/go-fed/activity/streams" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/suite" + "github.com/superseriousbusiness/activity/streams" ) type InternalToASTestSuite struct { @@ -75,6 +75,39 @@ func (suite *InternalToASTestSuite) TestOutboxToASCollection() { suite.Equal(`{"@context":"https://www.w3.org/ns/activitystreams","first":"http://localhost:8080/users/admin/outbox?page=true","id":"http://localhost:8080/users/admin/outbox","type":"OrderedCollection"}`, string(bytes)) } +func (suite *InternalToASTestSuite) TestStatusToAS() { + testStatus := suite.testStatuses["local_account_1_status_1"] + ctx := context.Background() + + asStatus, err := suite.typeconverter.StatusToAS(ctx, testStatus) + suite.NoError(err) + + ser, err := streams.Serialize(asStatus) + assert.NoError(suite.T(), err) + + bytes, err := json.Marshal(ser) + suite.NoError(err) + + suite.Equal(`{"@context":"https://www.w3.org/ns/activitystreams","attachment":[],"attributedTo":"http://localhost:8080/users/the_mighty_zork","cc":"http://localhost:8080/users/the_mighty_zork/followers","content":"hello everyone!","id":"http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY","published":"2021-10-20T12:40:37+02:00","replies":{"first":{"id":"http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY/replies?page=true","next":"http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY/replies?only_other_accounts=false\u0026page=true","partOf":"http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY/replies","type":"CollectionPage"},"id":"http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY/replies","type":"Collection"},"sensitive":true,"summary":"introduction post","tag":[],"to":"https://www.w3.org/ns/activitystreams#Public","type":"Note","url":"http://localhost:8080/@the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY"}`, string(bytes)) +} + +func (suite *InternalToASTestSuite) TestStatusToASNotSensitive() { + testStatus := suite.testStatuses["admin_account_status_1"] + + ctx := context.Background() + + asStatus, err := suite.typeconverter.StatusToAS(ctx, testStatus) + suite.NoError(err) + + ser, err := streams.Serialize(asStatus) + assert.NoError(suite.T(), err) + + bytes, err := json.Marshal(ser) + suite.NoError(err) + + suite.Equal(`{"@context":"https://www.w3.org/ns/activitystreams","attachment":[],"attributedTo":"http://localhost:8080/users/admin","cc":"http://localhost:8080/users/admin/followers","content":"hello world! #welcome ! first post on the instance :rainbow: !","id":"http://localhost:8080/users/admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R","published":"2021-10-20T11:36:45Z","replies":{"first":{"id":"http://localhost:8080/users/admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R/replies?page=true","next":"http://localhost:8080/users/admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R/replies?only_other_accounts=false\u0026page=true","partOf":"http://localhost:8080/users/admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R/replies","type":"CollectionPage"},"id":"http://localhost:8080/users/admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R/replies","type":"Collection"},"sensitive":false,"summary":"","tag":[],"to":"https://www.w3.org/ns/activitystreams#Public","type":"Note","url":"http://localhost:8080/@admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R"}`, string(bytes)) +} + func (suite *InternalToASTestSuite) TestStatusesToASOutboxPage() { testAccount := suite.testAccounts["admin_account"] ctx := context.Background() diff --git a/internal/typeutils/wrap.go b/internal/typeutils/wrap.go index e7c422eba..b5938c419 100644 --- a/internal/typeutils/wrap.go +++ b/internal/typeutils/wrap.go @@ -4,9 +4,9 @@ import ( "fmt" "net/url" - "github.com/go-fed/activity/pub" - "github.com/go-fed/activity/streams" - "github.com/go-fed/activity/streams/vocab" + "github.com/superseriousbusiness/activity/pub" + "github.com/superseriousbusiness/activity/streams" + "github.com/superseriousbusiness/activity/streams/vocab" "github.com/superseriousbusiness/gotosocial/internal/ap" "github.com/superseriousbusiness/gotosocial/internal/gtsmodel" "github.com/superseriousbusiness/gotosocial/internal/id" diff --git a/internal/typeutils/wrap_test.go b/internal/typeutils/wrap_test.go index 14309c00c..3d5d6001e 100644 --- a/internal/typeutils/wrap_test.go +++ b/internal/typeutils/wrap_test.go @@ -23,8 +23,8 @@ import ( "encoding/json" "testing" - "github.com/go-fed/activity/streams" "github.com/stretchr/testify/suite" + "github.com/superseriousbusiness/activity/streams" ) type WrapTestSuite struct { @@ -66,7 +66,7 @@ func (suite *WrapTestSuite) TestWrapNoteInCreate() { bytes, err := json.Marshal(createI) suite.NoError(err) - suite.Equal(`{"@context":"https://www.w3.org/ns/activitystreams","actor":"http://localhost:8080/users/the_mighty_zork","cc":"http://localhost:8080/users/the_mighty_zork/followers","id":"http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY/activity","object":{"attachment":[],"attributedTo":"http://localhost:8080/users/the_mighty_zork","cc":"http://localhost:8080/users/the_mighty_zork/followers","content":"hello everyone!","id":"http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY","published":"2021-10-20T12:40:37+02:00","replies":{"first":{"id":"http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY/replies?page=true","next":"http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY/replies?only_other_accounts=false\u0026page=true","partOf":"http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY/replies","type":"CollectionPage"},"id":"http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY/replies","type":"Collection"},"summary":"introduction post","tag":[],"to":"https://www.w3.org/ns/activitystreams#Public","type":"Note","url":"http://localhost:8080/@the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY"},"published":"2021-10-20T12:40:37+02:00","to":"https://www.w3.org/ns/activitystreams#Public","type":"Create"}`, string(bytes)) + suite.Equal(`{"@context":"https://www.w3.org/ns/activitystreams","actor":"http://localhost:8080/users/the_mighty_zork","cc":"http://localhost:8080/users/the_mighty_zork/followers","id":"http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY/activity","object":{"attachment":[],"attributedTo":"http://localhost:8080/users/the_mighty_zork","cc":"http://localhost:8080/users/the_mighty_zork/followers","content":"hello everyone!","id":"http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY","published":"2021-10-20T12:40:37+02:00","replies":{"first":{"id":"http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY/replies?page=true","next":"http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY/replies?only_other_accounts=false\u0026page=true","partOf":"http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY/replies","type":"CollectionPage"},"id":"http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY/replies","type":"Collection"},"sensitive":true,"summary":"introduction post","tag":[],"to":"https://www.w3.org/ns/activitystreams#Public","type":"Note","url":"http://localhost:8080/@the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY"},"published":"2021-10-20T12:40:37+02:00","to":"https://www.w3.org/ns/activitystreams#Public","type":"Create"}`, string(bytes)) } func TestWrapTestSuite(t *testing.T) { |