summaryrefslogtreecommitdiff
path: root/internal/ap
diff options
context:
space:
mode:
authorLibravatar tobi <31960611+tsmethurst@users.noreply.github.com>2021-11-13 17:29:43 +0100
committerLibravatar GitHub <noreply@github.com>2021-11-13 17:29:43 +0100
commit09ef9e639efa1b01005dcb7fc044611f277ad618 (patch)
treebef200f444b7ddd90f2b9f0fcff644da7cd85a11 /internal/ap
parentupdate dependencies (#296) (diff)
downloadgotosocial-09ef9e639efa1b01005dcb7fc044611f277ad618.tar.xz
move to ssb gofed fork (#298)
Diffstat (limited to 'internal/ap')
-rw-r--r--internal/ap/extract.go20
-rw-r--r--internal/ap/extract_test.go10
-rw-r--r--internal/ap/extractattachments_test.go2
-rw-r--r--internal/ap/extractsensitive_test.go42
-rw-r--r--internal/ap/interfaces.go6
5 files changed, 72 insertions, 8 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 ...