Commit Graph
100 Commits
Author SHA1 Message Date
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
Gabe Kangas 70027d058f Fix chat react state getting overwritten. Closes #1529 2021-12-12 00:11:38 -08:00
Gabe Kangas f3a8266c99 Fix some chat event types breaking.
- User moderator message was no longer showing
- Name change event was breaking chat
2021-12-11 16:44:39 -08:00
Gabe Kangas c3f9f24624 Fix moderator shield showing incorrectly.
It was being shown for all messages if you're a moderator, instead of
just being shown on messages from moderators.
2021-12-11 16:03:24 -08:00
Gabe Kangas 559c85856f Display moderator status in chat messages 2021-12-09 14:06:48 -08:00
Gabe Kangas 7488dfec37 Optimize images 2021-11-30 17:52:12 -08:00
Gabe Kangas 99f19395e6 Use moderator icon with no background 2021-11-30 15:54:29 -08:00
Gabe Kangas ba906e2609 Give transcoder a larger codec buffer size.
To give the codec a bit more breathing room with compression to maybe
improve possible blockiness in high movement scenes.
2021-11-30 13:40:09 -08:00
Gabe KangasandGitHub 83eb9229ad Auto updater APIs (#1523)
* APIs for querying and executing an update in place.

For #924

* Use the process pid to query systemd for status

* Use parent pid and invocation ID to guess if running from systemd

* Stream cmd output to client + report errors

* Update comment to refer to INVOCATION_ID
2021-11-30 13:15:18 -08:00
Gabe Kangas b052fa410b Update tests 2021-11-26 21:05:18 -08:00
Gabe Kangas 90b1c8639f Reduce max complexity in linter 2021-11-26 20:55:58 -08:00
Gabe Kangas 73e58a7801 Refactor the offline clip handling.
More stable, reduced function complexity.
2021-11-26 20:55:31 -08:00
Gabe Kangas 3585340f1b Update test 2021-11-23 22:02:39 -08:00
Gabe Kangas 2fba39b7c7 Increase the number of segments in HLS playlist.
In testing this is not increasing latency and should improve stability
and reliability for some people, since there will be a larger back
buffer to work from.
2021-11-23 21:54:51 -08:00
Gabe Kangas 00019bf86b Allow for rendering a wider color range for messages 2021-11-17 17:56:52 -08:00