Commit Graph
100 Commits
Author SHA1 Message Date
Gabe Kangas d96ddcc6c6 Continued tweaking of latency compensation 2022-03-19 13:17:37 -07:00
Gabe Kangas d3aa3f87af doc -> docs as Github needs a specific name 2022-03-19 12:02:34 -07:00
Gabe Kangas 5d360bcdd5 Add SECURITY.md document. Closes #1790 2022-03-19 11:51:48 -07:00
4a17f30da8 Outbound live stream notifications (#1663)
* First pass at browser, discord, twilio notifications

* Commit updated Javascript packages

* Remove twilio notification support

* Email notifications/smtp support

* Fix Firefox notification support, remove chrome checks

* WIP more email work

* Add support for twitter notifications

* Add stream title to discord and twitter notifications

* Update notification registration modal

* Fix hide/show email section

* Commit updated API documentation

* Commit updated Javascript packages

* Fix post-rebase missing var

* Remove unused var

* Handle unsubscribe errors for browser push

* Standardize email config prop names

* Allow overriding go live email template

* Some notifications cleanup

* Commit updated Javascript packages

* Remove email/smtp/mailjet support

* Remove more references to email notifications

Co-authored-by: Owncast <owncast@owncast.online>
2022-03-18 13:33:23 -07:00
Gabe Kangas 4e415f7257 CC->TO because Mastodon cares for visibility 2022-03-18 13:01:11 -07:00
Gabe Kangas c885d150d4 Tweak latency compensation 2022-03-17 21:10:07 -07:00
Gabe Kangas 992e819f38 Lock metrics on mutation 2022-03-17 18:07:55 -07:00
Gabe Kangas d1e39c4c1e Force uniqueness with previews and logos on the fediverse. Closes #1777 and closes #1776 2022-03-17 13:22:44 -07:00
Gabe Kangas dc16eafea4 Add git to build step 2022-03-17 00:24:04 -07:00
Gabe Kangas d8ead6d954 Allow the latency compensator to be dynamic 2022-03-16 23:34:17 -07:00
Gabe Kangas 6479220e78 Expand upon playback metrics 2022-03-16 22:49:27 -07:00
Gabe KangasandGitHub d84da617b7 Add player latency compensator. Closes #837 (#1786) 2022-03-16 18:41:59 -07:00
Gabe Kangas 689b6feef2 Remove rougue import 2022-03-16 17:47:02 -07:00
Gabe KangasandGitHub babbcecc9c Stream performance metrics (#1785)
* WIP playback metrics

* Playback metrics collecting + APIs. Closes #793

* Cleanup console messages

* Update test

* Increase browser test timeout

* Update browser tests to not fail
2022-03-16 17:34:44 -07:00
Gabe Kangas c960f6488f Replace timestamp for cachebuster with rand string. Closes #1781 2022-03-11 12:22:50 -08:00
Gabe Kangas a8167dc9e0 Fix tests after segment filename change 2022-03-10 14:20:44 -08:00
Gabe Kangas b9a597299f Simplify segment filenames. Closes #1778
Remove the seconds as an identifier to allow for segments to be written
more than one per second.
2022-03-10 14:14:02 -08:00
Gabe Kangas 994145b609 Fix prometheus viewer count value & rename metrics names 2022-03-09 17:48:53 -08:00
Gabe Kangas b5d60d9f40 Fix linter warnings 2022-03-07 16:37:04 -08:00
Gabe Kangas 48006d7a79 Fix updated go linter 2022-03-07 11:26:51 -08:00
Gabe Kangas 2743bddf4e Fix js package build workflow 2022-03-07 11:21:42 -08:00
Gabe Kangas a8bece63e5 Remove Renovate grouped PRs 2022-03-07 11:17:17 -08:00
Gabe Kangas 883d22cf76 Force worfklow to run under node 12 2022-03-07 09:10:22 -08:00
Gabe Kangas d6aa8b5d7c Bump gopsutil to v3 2022-03-07 08:45:49 -08:00
Gabe Kangas 5dd3ce5c44 Update golangci-lint action 2022-03-07 00:21:33 -08:00
Gabe KangasandGitHub e0a75d5d54 Add support for established chat user mode. #1587 (#1681)
* Add support for established user mode. #1587

* Tweak tests

* Tweak tests

* Update test

* Fix test.
2022-03-06 23:26:24 -08:00
Gabe KangasandGitHub 19b9a8bdf6 Add support for IP-based bans (#1703)
* Add support for IP-based bans. Closes #1534

* Linter cleanup
2022-03-06 20:34:49 -08:00
Gabe KangasandGitHub 78c27ddbdd Add an icon for bot messages. Closes #1172 (#1729) 2022-03-06 20:09:55 -08:00
Gabe KangasandGitHub 1ed1cc01eb Persist time series viewer metrics (#1752)
* WIP persisting time series viewer metrics. Closes #1478

* Remove unused var, move around initial collection
2022-03-06 19:43:57 -08:00
Gabe Kangas 5196491f73 Add Renovate config 2022-03-06 18:19:46 -08:00
Gabe KangasandGitHub 98fce01b52 Add support for active viewer details API. Closes #1477 (#1747) 2022-03-06 17:31:47 -08:00
Gabe KangasandGitHub 92041c4c23 Add Prometheus for some Owncast metrics (#1744)
* Add Prometheus for some Owncast metrics. Closes #1303

* Wrap prometheus metrics endpoint in admin middleware
2022-03-06 17:26:52 -08:00
Gabe KangasandGitHub 5e6bc50b59 Handle pagination for the federated actions & followers responses (#1731)
* Add pagination for admin social list

* Use Paginated API for followers tab on frontend
2022-03-06 17:18:51 -08:00
Gabe KangasandGitHub d24ddc2b0a Add support for and use socket host override. (#1682)
* Add support for and use socket host override. Closes #1378

* Fix embeds with the new websocket constructor
2022-03-06 17:11:51 -08:00
Gabe KangasandGitHub d5a6267b1f Add support to disable chat join messages. Closes #1582 (#1743) 2022-03-05 22:34:06 -08:00
Gabe Kangas 9125083f37 Bump version constant 2022-03-05 22:19:45 -08:00
Gabe Kangas cfa1b1600c Manually run api docs generation 2022-03-05 11:33:35 -08:00
Gabe Kangas 720378409e Remove pkged.go 2022-03-04 19:31:38 -08:00
Gabe Kangas ec41fd87a3 Explicitly set go version 2022-03-04 19:31:21 -08:00
Gabe Kangas 7fa7f8ee7f Use userAgentData.mobile instead of deprecated useragent. Closes #1665 2022-02-25 15:29:58 -08:00
Gabe Kangas 73b3ecaa44 Remove unused var 2022-02-25 15:25:07 -08:00
Gabe Kangas 6796998124 Remove unnecessary var data in log messages. Closes #1640 2022-02-25 15:22:52 -08:00
Gabe Kangas b084d68fb1 Clean up and consolidate AP actor resolution logic
- Consolidate Person, Service and Application to adhere to a single
  interface type.
- Add additional error checking around actor properties.
- Remove redundant IRI->Actor resolution callbacks and use only the ones
  in the ResolveIRI method.
2022-02-10 11:49:21 -08:00
Gabe Kangas f69463f536 Remove period 2022-01-31 16:03:26 -08:00
Gabe Kangas 3f974ce7db Remove references to config file. #1697 2022-01-31 16:01:34 -08:00
Gabe Kangas ade392e5db Do not log stream key when changing it 2022-01-31 13:23:50 -08:00
Gabe Kangas 65f0673dba Add a sanity check to make sure the actor IRI exists 2022-01-30 13:14:56 -08:00
Gabe Kangas 4e76fff0d0 Add support for resolving Application actors and fix error handling with failed resolution. Fixes #1710 2022-01-30 11:44:17 -08:00
Gabe Kangas f272542e40 Persistent HTTP connections seem to work now. Re-enabling. 2022-01-27 20:22:04 -08:00
Gabe Kangas 0d77856cb9 Simplify saving segments to disk 2022-01-27 20:14:19 -08:00
Gabe Kangas 8bc40486f8 Quiet, linter 2022-01-27 14:58:31 -08:00
Gabe Kangas 7b7bbe405b mod tidy 2022-01-27 14:54:49 -08:00
Gabe Kangas d2fd6a95e9 15 -> 16 per page 2022-01-27 14:40:36 -08:00
Gabe Kangas 9e918d144e Use bolder user icon in header. closes #1704 2022-01-27 14:39:40 -08:00
Gabe Kangas e0cb7c9fe4 Simplify appending the offline segment to playlist 2022-01-27 14:34:25 -08:00
Gabe Kangas 172082f56c Increase retries to improve stability for low duration segment playlists 2022-01-27 14:25:48 -08:00
Gabe Kangas e4b1217af8 Do not return clientID in chat history API. Closes #1547 2022-01-25 20:13:41 -08:00
Gabe Kangas 56878b8bbe Order followers 2022-01-24 15:39:32 -08:00
Gabe Kangas 88b20803b7 Add missing link to chat payload. Closes #1692 2022-01-24 14:56:32 -08:00
Gabe Kangas 50b0bfbc4e Move follower count to tab title. Closes #1698 2022-01-24 14:35:15 -08:00
Gabe Kangas 8943be9bf9 Add pagination + update layout of followers 2022-01-24 14:24:43 -08:00
Gabe Kangas 720824d519 Update OG tags test 2022-01-22 21:10:52 -08:00
Gabe Kangas 580a6077e1 Support Mastodon+Twitter cards via HTML embed player in OG tags. 2022-01-22 21:04:45 -08:00
Gabe Kangas bd14b70679 Fix janky hashtag detection. Closes #1686 2022-01-20 20:01:05 -08:00
Gabe Kangas bb3bbc0eaf Demote error level 2022-01-20 17:33:42 -08:00
Gabe Kangas 7f41b2df7c Strip any trailing slash when saving server URL 2022-01-20 17:07:15 -08:00
Gabe Kangas a471707a54 Fix misskey-specific error of existing-but-null avatar. Closes #1689 2022-01-20 14:56:04 -08:00
Gabe Kangas 372b1059c0 Reduce the breakpoint width for single column mode. closes #1688 2022-01-20 14:31:53 -08:00
Gabe Kangas dbf9776a6e Fix error in video embed. Closes #1687 2022-01-20 14:18:51 -08:00
Gabe Kangas 3b0dafba9a Return error in API response. Return all fields in message+user query 2022-01-18 15:38:23 -08:00
Gabe Kangas 055f4468a0 Update API spec for 0.0.11. Closes #1666 2022-01-18 14:42:24 -08:00
Gabe Kangas 9a875722b1 Add server URL to profile data. Closes https://github.com/owncast/owncast/issues/1675 2022-01-17 20:01:58 -08:00
Gabe Kangas 9226e783ff Only warn about svg logo once. Closes #1668 2022-01-13 20:49:28 -08:00
Gabe Kangas 6545a9573e Increase width for modals on mobile. Closes #1669 2022-01-13 20:39:35 -08:00
Gabe Kangas 08586eaa0e Respect the 5min chat enabled buffer. Closes #1661 2022-01-13 13:37:23 -08:00
Gabe Kangas d262510469 Replace default social link icon.
The old one, a globe, looked like people were linking to a map or
something.
2022-01-13 13:07:08 -08:00
Gabe Kangas 44cb952c29 Increase the timeout buffer so viewer count doesn't jump around when not pinging 2022-01-12 21:03:50 -08:00
Gabe Kangas 3ab5298f7f Fix the modals being too high. Closes #1664 2022-01-12 20:26:25 -08:00
Gabe Kangas 995080b478 Guard against invalid chat messages with no user object 2022-01-12 20:23:01 -08:00
Gabe Kangas 01d83064da Make acct webfinger prefix optional. Closes #1662" 2022-01-12 19:56:55 -08:00
Gabe Kangas 9eecf1c902 Handle create requests but immediately throw an error that we ignore them 2022-01-12 18:42:33 -08:00
Gabe Kangas 4df4126e8c I should probably just remove the dupl linter 2022-01-12 16:29:22 -08:00
Gabe Kangas 24a57f9076 Small cleanup 2022-01-12 15:16:24 -08:00
Gabe Kangas 36f8a54c91 Remove old doc 2022-01-12 14:08:28 -08:00
Gabe Kangas 5723c8a0a0 Optimize images 2022-01-12 14:01:26 -08:00
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 c8af8a413f6f53e7d1a15a7d823ff28be2db3c23.

* 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
Gabe Kangas 814c65eeb7 Add user icon next to username. Closes #1655 2022-01-12 10:10:49 -08:00
Gabe Kangas 5ff5c87674 Move author flair down by 1px 2022-01-06 21:54:13 -08:00
Gabe Kangas a885e9d7d7 Add DuckDuckGo bot to our bot list 2022-01-06 13:06:44 -08:00
Gabe Kangas 6be0cecc09 Make username in the header more obvious by lightening color 2022-01-06 11:29:25 -08:00
Gabe Kangas f19840dea9 Change message link colors. For #1551 2022-01-05 21:10:22 -08:00
Gabe Kangas b02bf25ff9 Add Rocket.Chat to bot list. Closes #1639 2022-01-05 09:40:17 -08:00
Gabe Kangas da89b7d733 Use smooth scrolling with chat 2021-12-29 13:22:24 -08:00
Gabe Kangas f2e47c99a2 Refactor chat component to fix #1529 2021-12-27 23:00:10 -08:00
Gabe Kangas 4832938fec Add actions to the renderable message list 2021-12-27 11:29:43 -08:00
Gabe KangasandGitHub 59dd06a306 Tweak readme source instructions 2021-12-20 15:17:53 -08:00
Gabe Kangas a964f02089 Force message not rerendering on moderator privilages. Closes #1538 2021-12-18 23:32:51 -08:00
Gabe Kangas 9e0099f865 Update stale PR message 2021-12-15 21:45:21 -08:00
Gabe Kangas 734a5a45ef Non-user chat messages should always render as visible 2021-12-15 17:28:56 -08:00
Gabe KangasandGitHub e6ed6a6849 Don't run CodeQL for dependencies 2021-12-13 10:14:56 -08:00