Categorygithub.com/awakari/int-activitypub
repositorypackage
0.0.0-20241222092410-aae39cb47cc4
Repository: https://github.com/awakari/int-activitypub.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# README

About

ActivityPub source implementation for Awakari. Actually, just another Fedivers server that follows specified publishers on behalf of a user.

Awakari is a service consuming public only updates from various sources and filters these for a user. The purpose is only to notify user in real time and provide a link to the source (e.g. post). If you don't want Awakari to follow you, just find it in a list of your followers and remove.

Conversion Schema

Specific (non "as is") attribute conversions:

Source Activity AttributeDestination CloudEvent AttributeNotes
actor.idsource
actor.namesubjecte.g. "John Doe"
publishedtime
content<text data>
summary<text data>Prepends the existing text data (if any) with a line separator
typeactione.g. "Create"
object.idobjecturlonly if object is link
object.typeobjecte.g. "Note"
object.attachment.idattachmenturlonly if attachment is link
object.attachment.urlattachmenturlonly if attachment is object
object.attachment.mediaTypeattachmenttypeonly if attachment is object
object.content<text data>Prepends the existing text data (if any) with a line separator
object.inReplyToinreplyto
object.locationlatitude
object.locationlongitude
object.startTimestarts
object.summary<text data>Prepends the existing text data (if any) with a line separator
object.imageimageurl

Notes:

  • All other attributes (not mentioned in the table above) are been converted as is, e.g. "duration" -> "duration"

  • Activity attribute may be an "object" without an activity type (verb, e.g. "Create"). Then it's also been converted as "object" in addition to the activity fields.

Compatibility

SoftwareFollowingDelivery
Mastodon✅ OK✅ OK
Lemmy❌ status: 400❌ N/A
Kbin✅ OK?
Pixelfed✅ OK?
PeerTube❌ status: 400, "incorrect activity"❌ N/A
Pleroma❌ status 500, "Internal server error"❌ N/A
Misskey✅ OK?
BookWyrm✅ OK?
Friendica✅ OK✅ OK
Hubzilla✅ OK✅ OK
Funkwhale❌ status 500❌ N/A

Other

Public Key

openssl genrsa 2048 | openssl pkcs8 -topk8 -nocrypt -out private.pem
openssl rsa -in private.pem -outform PEM -pubout -out public.pem
kubectl create secret generic int-activitypub-keys \
  --from-file=public=public.pem \
  --from-file=private=private.pem

Manual Testing

Example request:

grpcurl \
  -plaintext \
  -proto api/grpc/service.proto \
  -d '{ "addr": "[email protected]" }' \
  localhost:50051 \
  awakari.int.activitypub.Service/Create