Commit graph

108 commits

Author SHA1 Message Date
Gabe Kangas
045a0a2afd
Social features / ActivityPub federation (#1629)
* Support webfinger requests for the live account. Closes https://github.com/owncast/owncast/issues/1193

* Support for actor requests. Returns response for live actor. Closes https://github.com/owncast/owncast/issues/1203

* Handle follow and unfollow requests. Closes
https://github.com/owncast/owncast/issues/1191 and https://github.com/owncast/owncast/issues/1205 and https://github.com/owncast/owncast/issues/1206 and https://github.com/owncast/owncast/issues/1194

* Add basic support for sending out text activities. For https://github.com/owncast/owncast/issues/1192

* Some error handling and passing of dynamic local account names.

* Add hardcoded example image attachment to test post

* Centralize the map of accounts and inboxes

* No longer disable the preview generator based on YP toggle

* Send a federated message to followers when stream starts. For https://github.com/owncast/owncast/issues/1192

* Placeholder for attaching tags

* Add image description

* Save and get to outbox persistence. Return using outbox endpoint for actor

* Pass payloads to be handled through the gochan

* Handle undo follow requests explitly, not all undo requests

* Add API for manually sending simple federated messages. Closes #1215

* Verify inbox requests. Closes #1321

* Add route to fetch a single AP object by ID. For #1329

* Add responses to fediverse nodeinfo requests

* Set and get federation config values for admin

* Handle host-meta requests

* Do not send out message if disabled. Use saved go live message.

* Require AP-compatible content types for AP-related requests

* Rename ap models to apmodels for clarity

* Change how content type matching takes place.

* io -> ioutil

* Add stub delete activity callback

* Handle likes and announces to surface engagement in chat. Part of #1229

* Append url to go live posts

* Do not require specific content types for nodeinfo requests

* Add follow engagement chat message via AP

* add owncast user-agent to requests

* Set note visibility to public (for now)

* Fix saving/fetching a single object

* Add support for x-nodeinfo2 responses

* Point to the dev admin branch for ap

* Bundle in dev admin for testing

* Add error logging

* Add AP middleware back

* Point to the new external compatible logo endpoint

* Clean up more AP logging to help testing

* Tweak go live text and link hashtags

* Fix bug in fetching init time

* Send update actor activities when server details/profile is updated

* Add federation config overview to web client config

* Add additional actor properties

* Make the AP middleware checking more flexible when looking at types

* First pass at remote fediverse follow flow. For #1371

* Added a basic AP actor followers endpoint

* WIP client followers API

* Add profile-page reference to webfinger response

* Add aliases to webfinger response

* Fix content-type returned to be expected activitypub+json

* First pass at followers api

* Point at local dev copy of go-fed/activity

* Add custom toot Hashtag objects to posts

* Store additional user details to followers table

* Fix AP followers endpoint. Closes #1204

* Add owncast hashtag as an invisible tag to go live posts

* Reject AP requests when it is disabled

* Add actor util for generating full account user from person object

* Verify inbox requests before performing any other work

* Accept actor update requests

* Fix linter errors in federation branch

* Migrate AP SQL to sqlc for type safe queries

* Use the @unclearParadigm REST parameter helper

* Fix verifying post ID on AP engagement

* WIP privacy/request approval

* Style the remote follow modal

* First pass at a followers list component w/ mock data. #1370

* Revert "Use the @unclearParadigm REST parameter helper"

This reverts commit c8af8a413f.

* Fix get followers API

* Add support for requiring approval. Closes https://github.com/owncast/owncast/issues/1208

* Handle Applications as Actors partly for PeerTube support

* add temp todo list

* check route on load, this might change later

* style followers

* account for just 1 tab case

* Remove mock data. Allow showing follow button even when there are no external actions defined

* Point to actual followers API

* Support fallback img for follower views

* Remove duplicate verification. Add some additional verbose logging

* Bundle dev admin

* Add type to host-meta webfinger template response

* Tweak remote follow modal content

* WIP federation followers refactor

* Do not send pointer to middleware

* Update admin

* Add setting for toggling displaying fediverse engagement. Closes #1404

* Add in-development admin

* Do not enable cors on admin followers api

* Add db migration for updating messages table

* Enable empty string go live messages to disable

* Remove debug messages

* Rework some ActivityPub handling.

Create new Actor->Person handling.
Create new Actor->Service handling.
Add engagement handlers to send chat events and store event objects.
Store inbound activities to new ap_inbound_activities table.

* Support federated engagement events.

Store them in the messages table and surface them via chat events.

* Support federated event engatement in the chat

* Tweak web UI followers handling

* Point go.mod at remote fork instead of local

* Update admin

* Merged in develop. Couple fixes

* Update dev admin

* Update fedi engagement posts.

- Fix incorrect action text.
- Add action icons.

* Set public as to instead of cc for ap msg

* Updated styling for federated actions in chat

* Add support for blocking federated domains. Closes #1209

* Force checking of https in verify step

* Update dev admin

* Return user scopes in chat history api. Closes #1586

* Update dev admin

* Add AP outbound request worker pool. Closes #1571

* Disable (temporarily?) owncast tag on AP posts

* Consolidate creating activity+notes in outbound AP messages

* Add inbox worker pool. Closes #1570

* Update dev admin bundle

* Clean up some logs

* Re-enable inbound verfication

* Save full IRI to outbox instead of path

* Reject if full IRI is not found in outbox

* Use full ActivityPub user account in chat event

* Fix and expand follower APIs

- Add missing IDs to AP follower endpoints
- Split AP follower endpoints into initial request and pages.
- Support pagination in AP requests.

* Include IRI in error message

* Hide chat toggle when chat is hidden. Closes #1606

* Updates to followers pagination

* Set default go live message

* Remove log

* indirect -> direct import

* Updates for inbound federated event handling.

- Keep track of existing events and reject duplicates.
- Change what is sent to chat for surfing federated engagement.
- Keep track if outbound events are automated "go live" events or not.

* Update chat federated engagement.

* Update dev admin.

* Move from being a person to a bot (service). Closes #1619

* Only set server init date if not already set

* Only save notes to outbox able

* Rework private-mode followers/approvals

* API for returning a list of federated actions for #1573

* Fix too-small follower cells and jumpy tabs. Closes #1616 and closes #1516

* Fix shortcuts getting fired on inputs. Fixes #1489 and #1201

* Add spinner, autoclose + other fixes to follow modal. Fixes #1593

* Fix fetching a single object by IRI

* SendFederationMessage -> SendFederatedMessage

* Autolink and create tag objects from manual posts. Closes #1620

* Update dev admin bundle

* Handle engagement from non-automated/live posts

* Reject federated engagement actions if they do not match a local post

* Update dev admin bundle

* A bunch of cleanup

* Fix unused assignments and logic

* Remove unused function

* Add content warning and sentive content flag if stream is NSFW. Closes #1624

* Disable fetching objects by IRI when in private mode. Closes #1623

* Update the error message of the remote follow dialog. closes #1622

* Update dev admin

* Fix NREs throwing in test content

* Fix query that wasn't properly filtering out hidden messages

* Test against user being disabled instead of message visibility

* Fix automated test NRE

* Update comment

* Adjust federated engagement chat views. Closes #1617

* Add additional index to users table

* Add support for removing followers/requests. Closes #1630

* Reject federated actions from blocked actors. #1631

* Use fallback avatar if it fails to load. Closes #1635

* Fix styling of follower list. Closes #1636

* Add basic blurb stating they should follow the server. Closes #1641

* Update dev admin

* Set default go live message in migration. Closes #1642

* Reset the messages table on 0.0.11 schema migration

* Fix js error with moderation actions. Closes #1621

* Add a bit more clarification on follow modal. Closes #1599

* Remove todos

* Split out actor and domain blocking checks

* Check for errors on default values being set

* Clean up actor rejection due to being blocked

* Update dev admin

* Add colon to error to make it easier to read

* Remove markdown rendering of go live message. Reorganize text. Remove content warning. Closes #1645

* Break out the sort+render messages logic so it can be fired on visibility change. Closes #1643

* Do not send profile updates if federation is disabled

* Save follow references to inbound activities table

* Update dev admin

* Add blocked actor test

* Remove the overloaded term of Follow from social links

* Fix test running in memory only

* Remove "just" in engagement messags

* Replace star with heart for like action.

* Update dev admin

* Explicitly set cc as public

* Remove overly using the stream name in fediverse engagement messages

* Some federated/follow UI tweaks

* Remove explicit cc and bcc as they are not required

* Explicitly set the audience

* Remove extra margin

* Add Join Fediverse button to follow modal. Closes #1651

* Do not allow multiple follows to send multiple events. Closes #1650

* Give events a min height

* Do not allow old posts to be liked/shared. Closes #1652

* Remove value from log message

* Alert followers on private mode toggle

* Ignore clicks to follow button if disabled

* Remove underline from action buttons

* Add moderator icon to join message

* Update admin

* Post-merge remove unused var

* Remove pointing at feature branch

Co-authored-by: Ginger Wong <omqmail@gmail.com>
2022-01-12 13:53:10 -08:00
Owncast
c51d9cdbf4 Update admin to 2e9d6134bd17a084c06be1c78116a5a92e644bcc 2022-01-12 19:36:36 +00:00
Owncast
913dbf89a2 Update admin to e6cc72d9c72d1abdec40c7878f08b041b483a250 2022-01-12 18:19:21 +00:00
Owncast
f54a9f997d Update admin to beb9376c1292d0c64dd0d21e621cd953d86baa19 2022-01-06 01:18:10 +00:00
Owncast
d62848c6c8 Update admin to aff6ed5f3fadb20ae0e5f2fe08d33f7194da6ce6 2022-01-05 02:23:02 +00:00
Owncast
2e3a0e6d7d Update admin to 70e12e1972c1edf1d9fcea0149c99acb927b2189 2022-01-04 08:32:27 +00:00
Owncast
9d2e821dda Update admin to 23d407d69b4692172ee3638ac074c3ba30db483a 2022-01-04 08:28:01 +00:00
Owncast
f83e39411c Update admin to 3223c0ac16f48cf7122f6178ddaf12032964dbbe 2022-01-03 02:58:32 +00:00
Owncast
b2cd174676 Update admin to e57746d2dc34306abf2a2fa931155604f1c64bfd 2021-12-31 04:55:23 +00:00
Owncast
a53cefbac5 Update admin to 43cd4caaafcdc66d46a382d24b656033d626b0a2 2021-12-30 06:34:58 +00:00
Owncast
9885fe5884 Update admin to ac1fe289f43df9bc70141ec4f56ee69481498c87 2021-12-29 04:02:06 +00:00
Owncast
48567a9760 Update admin to 6ac5305f3863a31f02dc2ca6022260dd55d71343 2021-12-28 07:45:13 +00:00
Owncast
3092b8457a Update admin to c9fcab679074fb78d6bc025cbae59361dc3e8069 2021-12-24 21:06:34 +00:00
Owncast
3105037935 Update admin to fde0bfe7162fae6535a6c1762188768cac936976 2021-12-23 01:07:40 +00:00
Owncast
864bce474c Update admin to 3bc4397b57d6798f7505edcb9e75a97a3265f6f4 2021-12-21 22:58:05 +00:00
Owncast
5e4fb4bb86 Update admin to 15dc0df0a23c48067d67771448c45a01025141ab 2021-12-21 01:17:21 +00:00
Owncast
9ca2b5399e Update admin to 9f48665271f15b855ccdc989cffdbff302e17ac3 2021-12-21 01:12:51 +00:00
Owncast
6a47ac1bd3 Update admin to 10be37570d2d54d253ec948f29b104808ec562da 2021-12-20 06:33:12 +00:00
Owncast
2cf25c50b0 Update admin to 7504c5da2d39b45a51e26006612842dda4ee7c6f 2021-12-16 01:39:26 +00:00
Owncast
a747a26c75 Update admin to e36cebbe0b80a855e1350cac28437c7d819d6d8e 2021-12-14 02:31:43 +00:00
Owncast
1a6e2b6208 Update admin to 6c715003e84f044f541f302e4f17552d30a15da5 2021-12-14 02:06:11 +00:00
Owncast
79ad532b9f Update admin to edbd24713562e00042f45c088697638a9064a1e7 2021-12-13 01:40:09 +00:00
Owncast
7790d6c32d Update admin to 4ab21f4c530be68131baba16fd29e5ec6a8ce111 2021-12-10 01:11:42 +00:00
Owncast
c71b8f1e0f Update admin to c4b2758cad1ef1f26cf142a1ebadb2e3f6fff020 2021-12-09 01:57:20 +00:00
Owncast
14fc24c419 Update admin to 3c78fadd33bb6bc88c2d3b0f7f4d8ffbc9869a4d 2021-12-07 02:12:34 +00:00
Owncast
399f168112 Update admin to 6c13bc1cc8bed67a9cce47ccef056809da9c30f3 2021-12-07 02:07:42 +00:00
Owncast
ba77f8e4cf Update admin to dc55fbb7bf7103e847263b1f893983f3e78a5dfb 2021-12-07 02:03:56 +00:00
Owncast
8eacd05e12 Update admin to 9bcd47d1f2c7aa25c80523a3ee349c28d0f6a841 2021-12-07 01:58:47 +00:00
Owncast
8f10f9ad83 Update admin to 70510886ed6c2bef8346b9d9648338b895cc639e 2021-12-06 05:36:27 +00:00
Owncast
74b7949454 Update admin to 5db1ff13fd8f919221f0cd9b9d05eb468c5eb32c 2021-12-06 04:03:39 +00:00
Owncast
faa08b03f6 Update admin to 549c0f8a18cecc5dd9a8b5f3a3b39ce40334f2db 2021-12-03 04:07:24 +00:00
Owncast
d02603c280 Update admin to 63e368a5d809cd2dd31e555b8b3af253c02dddb6 2021-12-03 04:02:54 +00:00
Owncast
1b27e42dbb Update admin to 6c515b598ff68e92c90b290b75b80a4173fec405 2021-12-01 01:49:08 +00:00
Owncast
ee6beca07e Update admin to 011cf3e160fb6d7700ac697d1ebba512b66b307e 2021-12-01 01:44:48 +00:00
Owncast
81653b0e99 Update admin to 0dd17f7357e6fae645c8963740e8d0797c150aa1 2021-11-30 02:49:20 +00:00
Owncast
ea42019029 Update admin to 13220dcaf048a2f3bdf69b10527cf7fc54c28231 2021-11-30 02:45:04 +00:00
Owncast
f0d24d129d Update admin to 0d242dd4be5c98d36fa2c9ffe991a4e45edddd4c 2021-11-29 05:15:41 +00:00
Owncast
1a031f9d30 Update admin to 2a7a6cb9f1b3f90ef77a850ea852893952b88832 2021-11-28 02:15:03 +00:00
Owncast
3ed7035e39 Update admin to d8e1b0e1b115e6b97efd0bac8818341d72d8bcd0 2021-11-26 03:11:32 +00:00
Owncast
2065908c5e Update admin to fc607ea343a3628d6c7f694d7bd091bd903075b9 2021-11-25 02:52:27 +00:00
Owncast
e915cb49bd Update admin to a778dc999e7862dfb34438c8d759442785d52fd4 2021-11-23 03:48:21 +00:00
Owncast
4e96835274 Update admin to 50ca541baec42ea929009483b350161d4618dca4 2021-11-22 01:30:00 +00:00
Owncast
d9314eac2c Update admin to cba0da2dcacab2dc4d65ff61fb2d9323dfb108e5 2021-11-18 01:29:17 +00:00
Owncast
519e60b1e2 Update admin to ff1dc3fb59cdad30196e9e2b0f8d6a1ea44d1983 2021-11-16 01:17:51 +00:00
Owncast
cc27be3721 Update admin to 9cc9dc8d8c96d3f6b09e3bf5c074d23837c26ab0 2021-11-16 01:13:36 +00:00
Owncast
7635be565d Update admin to fd9e718734c5e6c7f73f6c19b23eabfdba2c4738 2021-11-16 01:09:39 +00:00
Owncast
66693b563b Update admin to 7f277ea4f322685350d1280599b548c74524aee1 2021-11-16 00:58:31 +00:00
Owncast
2eedcc5a0f Update admin to f42267c88407d02172e9786c687e0ec3b2f07d87 2021-11-15 23:10:59 +00:00
Owncast
14af894446 Update admin to 6a846a604723c6cd7d195c3b41b2534b1fbe9ae1 2021-11-15 20:25:17 +00:00
Owncast
a6e190bfdd Update admin to c8a31ade5e5f88d25f272f491afcbc83ee9ecd45 2021-11-13 05:31:26 +00:00
Owncast
72cc0206a4 Update admin to 8279a11f5152836ac9cd0465947f0f7bb6a43544 2021-11-13 00:50:23 +00:00
Gabe Kangas
4a52ba9f35 Update admin 2021-11-02 18:02:03 -07:00
Gabe Kangas
c7d988c7dd Update admin 2021-11-01 18:16:01 -07:00
Gabe Kangas
cc2a9b8d8e Update admin 2021-10-28 17:36:06 -07:00
Gabe Kangas
2600afa022 Update admin (update to Nextjs 12) 2021-10-26 22:54:31 -07:00
Gabe Kangas
a40312d733 Update admin 2021-10-24 19:31:06 -07:00
Gabe Kangas
95211f51b3 Update admin 2021-10-13 19:53:10 -07:00
Gabe Kangas
f0bd7d2528
Replace pkger with go:embed for bundling the admin. Closes #844 (#1464)
* Replace pkger with go:embed for bundling the admin. Closes #844

* Remove references to pkged.go

* Point tests to use an updated version of Go

* Add comment to new exported function

* Cleanup

* Add a dummy pkged.go to alert people to stop using it.

* Add simple browser test to make sure the admin is available and renders

* Don't panic
2021-10-11 14:56:00 -07:00