Commit Graph
100 Commits
Author SHA1 Message Date
knotteye 4baa07123f Merge branch 'chat_bugfix' into 'develop'
Fix a bug with trying to update IRC channels when IRC is disabled.

See merge request knotteye/satyr!20
2020-08-09 04:58:04 +00:00
knotteye 01e872c552 Fix a bug with trying to update IRC channels when IRC is disabled. 2020-08-08 23:50:57 -05:00
knotteye 4959391034 Increment minor version
Remove debug code
2020-08-08 23:37:10 -05:00
knotteye ac73eb2af3 Merge branch 'ffmpeg-tune' into 'develop'
Tune ffmpeg commands

See merge request knotteye/satyr!19
2020-08-09 04:14:05 +00:00
knotteye c9accda4eb Tune ffmpeg command to start playback and transcode faster
Add option for custom flags
2020-08-08 23:08:09 -05:00
knotteye 9eec1241e2 Merge branch 'api-json-changes' into 'develop'
Api json changes

See merge request knotteye/satyr!18
2020-08-03 10:03:58 +00:00
knotteye 654b65640f Change API to set content-type headers.
Rework some responses to make all responses in JSON.
Increment version because of major API changes.
2020-08-03 05:01:20 -05:00
knotteye 0b7b040ade Merge branch 'api-bugix' into 'develop'
Fix incorrect reporting of domain in the api

See merge request knotteye/satyr!17
2020-08-01 01:53:23 +00:00
knotteye c55ccb75aa Fix incorrect reporting of domain in the api 2020-08-01 01:46:56 +00:00
knotteye eac5eaa035 Bump version.
Add documentation for webchat.
2020-07-30 04:13:07 -05:00
knotteye cbcd1d8ba8 Document /api/users/live and /api/users/all and modify the documentation format 2020-07-30 02:55:33 -05:00
knotteye 09bf2a8ac1 Add paging and sorting to /api/users/live and /api/users/all calls 2020-07-30 02:49:02 -05:00
knotteye f7c7f05786 Implement an API call for getting the current stream key. 2020-07-30 01:34:22 -05:00
knotteye df51432a8f Fix /api/:user/config not returning all info for an authorized user. 2020-07-30 01:14:33 -05:00
knotteye db8d9dfe72 Add API function for getting a user's configuration. 2020-07-30 00:45:08 -05:00
knotteye c745572a7e Update list of restricted usernames to avoid collision in api 2020-07-30 00:03:05 -05:00
knotteye fb6538a757 Fix typo and add functions to be implemented. 2020-07-29 03:40:53 -05:00
knotteye bd40c30114 Add default value for a contact email
Add an api function to list a users vods
Document the existing REST API
2020-07-29 03:24:19 -05:00
knotteye 1a9b7be318 Update readme 2020-07-20 04:25:01 -05:00
knotteye 0d2732a876 Update README.md 2020-07-04 15:09:06 +00:00
knotteye abd45c8346 Only join channels not already joined with twitchClient and ircClient
Leave channels we don't need anymore as well.
2020-07-04 09:53:12 -05:00
knotteye ec57e23e9c Increment package version 2020-07-04 03:14:46 -05:00
knotteye ae603ddad6 Normalize discord messages into human-readable plaintext. 2020-07-04 03:09:32 -05:00
knotteye 65894b6f2e Fix for not transcoding streams which aren't already mp4 encoded. 2020-06-30 06:26:42 +00:00
knotteye 6073781457 Forgot to include twitch chat dependency 2020-06-27 23:45:47 -05:00
knotteye 0bde9e0b86 Update documentation 2020-06-27 23:39:57 -05:00
knotteye b2759c5298 Update documentation. 2020-06-27 23:27:47 -05:00
knotteye fc924816df Increment version. 2020-06-27 22:46:34 -05:00
knotteye 4bd10151f8 Switch from video.js to dash.js, it seems to be more consistent and hiccup less during streams.
This means transcoding to HLS is no longer an option.
Also add a bit of JS to reload the stream periodically if it hadn't started when the page was loaded.
That thing spits out errors fucking constantly, so hopefully it won't cause any problems.
2020-06-27 12:11:42 -05:00
knotteye ee6c902905 Change profile page to use textareas 2020-06-27 11:08:34 -05:00
knotteye b57e1d48e6 Fix bug where the profile page wouldn't set record flag. 2020-06-27 10:21:00 -05:00
knotteye 4628deec1c Add VOD management page and the ability to delete the user's own vods 2020-06-27 08:34:09 -05:00
knotteye 0b4a7d6321 Increment version 2020-06-27 07:41:38 -05:00
knotteye 19536d8b84 Add working twitch chat relay 2020-06-27 05:25:40 -05:00
knotteye 29d2090540 Add working IRC integration 2020-06-27 03:23:04 -05:00
knotteye 1ef736ca17 Working discord chat integration 2020-06-27 02:36:45 -05:00
knotteye c1debc9173 Add basic framework for chat integration code 2020-06-26 12:13:00 -05:00
knotteye 2beffa46fb Add updateChat function in api 2020-06-26 06:07:33 -05:00
knotteye 190e61557e Add templates for chat integration UI 2020-06-26 05:32:05 -05:00
knotteye 717d63917c Fix typo in registration registration query 2020-06-26 04:52:48 -05:00
knotteye 4fb1126c9f (Theoretically) check for and refresh login tokens on page reload 2020-06-26 04:40:06 -05:00
knotteye a9f1875234 Add config template for chat integration and db schema
No other meaningfull changes (I think)
It's been 7 months since last commit god I hope I didn't break anything.
2020-06-26 04:07:37 -05:00
knotteye 97d4678a0a Update documentation to match recent changes with config and chat 2019-12-21 17:23:00 -06:00
knotteye df8c803e25 Fix a bug with socket ids not being recorded or looped through properly 2019-12-21 16:58:40 -06:00
knotteye a0e89e9b60 Add proper kicking and banning for users with multiple accounts. 2019-12-21 16:16:50 -06:00
knotteye f7733b9507 Big Refactor
Stop using config and toml as dependencies
Stop passing around config variables through function calls
Add config.ts and pull the values you need directly in the files
Remove irc.js for incoming new IRC solution
Rename controller to index because that was stupid
Minor git bullshit with the config folder
Change to yaml as a config format
2019-12-21 08:59:35 -06:00
knotteye 681802dbaf Bugfix for room bans 2019-12-08 17:18:31 -06:00
knotteye 61deb1afa7 Minor improvements to socket.io chat, including banning and unbanning per room, and spam detection and server bans 2019-12-07 21:23:50 -06:00
knotteye a0be256a64 Hopefully resolves issues with videojs occasionally not initializing the player 2019-12-07 10:51:26 -06:00
knotteye 8da1310e24 Add adaptive livestreaming config docs. 2019-12-05 18:37:26 -06:00
knotteye 4b1fc5c1fc Make adapative streaming full configurable 2019-12-05 18:27:29 -06:00
knotteye 3f26790878 Remove extra FS import. 2019-12-05 16:19:07 -06:00
knotteye 76c63d3a94 Set sameSite on Authorization cookie
Enable toggleable HSTS
2019-12-05 16:08:50 -06:00
knotteye 8c17149f39 Fix throwing unhandled promise rejection if user doesn't exist in validatePasswordRedirect user to /profile on successful login 2019-12-05 15:03:27 -06:00
knotteye be38b873eb Add full support for multiple connections with one account in Socket.IO
Add LIST command
2019-12-05 14:16:07 -06:00
knotteye 661d953919 Fix a bug with user pages displaying incorrectly in chrome 2019-12-04 18:48:02 -06:00
knotteye 11eee2ab89 Bump version to 0.5.1 2019-12-04 17:52:49 -06:00
knotteye 5a52308503 Stop using dash.js, videojs supports it natively.
Modal messages also work again
Turn off watch in nunjucks config (oops)
Change some redirects based on logged in status.
2019-12-04 17:52:11 -06:00
knotteye 74c90114c7 Bump Version
I still don't understand pre-release versioning.
2019-12-03 19:58:40 -06:00
knotteye 25cf8a37a2 Big Commit!
Seriously, this one is pretty massive. Satyr now has proper sessions in the browser (like a real website), and a lot of changes were made.

API Endpoints were changed from requiring a username and password to requiring a valid JsonWebToken, obtained from /api/login
Satyr will generate a PEM format key for JWT signing and verification on startup if it can't find one at config/jwt.pem
This file was added to .gitignore
Two new depencies: cookie-parser and jose, for reading and signing JWTs.

Refactored http.ts into mutiple functions, with a couple helper functions related to cookies and JWT decoding and verification. Socket.IO chat will also automatically log in users with a valid JWT.

Refactor api.ts to reflect new requirements from endpoints.

Minor bugfix in server.ts so we don't throw an uncaught exception when rejecting a stream with an invalid key.

Transcode options readded to default.toml. They do nothing and they are not sane defaults. Both of those things are in the todo list.
2019-12-03 19:51:14 -06:00
knotteye 31426a0c41 Fix a bug where we treated local clients the same as foreign ones 2019-11-30 14:15:31 -06:00
knotteye d4f92c33ff Update version to 0.4.4 2019-11-28 09:33:52 -06:00
knotteye daa2ec7a71 Refactor stream key handling
Instead of redirecting with FFMPEG, change client streamPath to the privateEndpoint/StreamKey
Hopefully this is silent, because if it isn't it's leaking the stream key to every client.
2019-11-27 22:18:55 -06:00
knotteye a521583e92 Change systemd service description 2019-11-27 22:07:20 -06:00
knotteye d9b3333f21 Clean up commented out code
Discard messages with only whitespace in socket.io
2019-11-25 12:55:55 -06:00
knotteye cf71e663de Handle temporary data from database better instead of modifying njkconf in place. 2019-11-25 11:38:12 -06:00
knotteye f7d9c78d09 Move transcode config to mkdir callback 2019-11-25 09:36:50 -06:00
knotteye 7db878be8c 0.4.3 2019-11-24 20:26:45 -06:00
knotteye 1f3504f698 Fix a bug where streams would crash upon FFMPEG exceeding maximum child_process buffer
Change scripts to automatically build before serving
Move typescript to dependencies
Check if the stream is ready to transcode to MPEG-DASH programmatically instead of waiting for 5 seconds
Use session.isLocal instead of matching session.ip against some strings
(session.isLocal does that internally but at least this way looks prettier)
2019-11-24 20:25:19 -06:00
knotteye 239cd252a2 Bump version to 0.4.2 2019-11-16 15:37:19 -06:00
knotteye 7db22a974d Fix hardcoding of ffmpeg binary 2019-11-16 15:35:30 -06:00
knotteye efc087c7a3 Fix systemd service to restart properly 2019-11-16 15:23:42 -06:00
knotteye 1895992326 Bump version to 0.4.1 2019-11-16 14:45:09 -06:00
knotteye 93abcb0538 Move from exec to execFile to avoid any potential security issues. 2019-11-16 14:42:26 -06:00
knotteye ae016dd1b4 Bump version to 0.4.0 2019-11-16 11:39:29 -06:00
knotteye 7983b60f8d Switch from transcode server in node-media-server to spawning ffmpeg processes
Change config to reflect that
ffmpeg processes cleanup after themselves even on SIGINT now, cleanup.ts only cleans the database now
Adaptive livestreaming!
2019-11-16 11:38:28 -06:00
knotteye f8b197502a 0.3.2 2019-11-10 14:21:01 -06:00
knotteye f5f9d1f8e6 Play MPEG-DASH by default.
Add dash.js and videojs-dash files
2019-11-10 10:29:15 -06:00
knotteye 4e19bdc2f5 Ignore empty messages in socket.io 2019-11-10 09:07:23 -06:00
knotteye 73e91783e3 Fix handling of usernames with capital letters in the web page.
Add updating and backup/restore instructions.
2019-11-10 08:27:00 -06:00
knotteye 97b1132ef0 Fix typo on new stream key page 2019-11-09 17:22:32 -06:00
knotteye 297aeb3d4a Move SIGINT listener to connect function to avoid socket does not exist errors
Add conditional to disconnect peering
2019-11-05 17:48:12 -06:00
knotteye 9076b1817b Add contributors file
Add irc.js for peering with IRC
Change default to reflect that

Add basic peering.
Implemented:
register/unregister a user
messages
join/part

Not implemented/TODO:
Kill, kick, change nick

It is likely that the web chat will not have full feature parity with clients connecting directly to IRC.
2019-11-05 17:22:52 -06:00
knotteye 182b7e2f5f Add help page, change base links. Turn off watch in nunjucks config.
I do not know if that made it master, hopefully not.
2019-11-05 16:30:15 -06:00
knotteye 61bf54de95 Add cleanup script to fix any problems arising from restarting the server mid-stream.
This may cause further problems if the user manages to reconnect before the cleanup script has finished, but the server *shouldn't* start listening until after the script is done.
Increment version I guess, I don't really know how versioning works.
2019-10-22 18:26:00 -05:00
knotteye 8cc8083361 Fix typo in usage instructions. 2019-10-22 17:54:57 -05:00
knotteye 7c0b753723 Add usage guide 2019-10-21 14:18:32 -05:00
knotteye 71c739322b Move readme because gitlab doesn't like it. 2019-10-20 16:40:19 -05:00
knotteye 8771411352 Add more detailed installation instructions
Add example systemd service
2019-10-20 16:30:23 -05:00
knotteye 7ca1e9023c Fix a typo in db setup script. 2019-10-20 16:10:35 -05:00
knotteye eba441b624 Add working Socket.IO based chat
Bump version I guess.
2019-10-20 16:09:28 -05:00
knotteye 1afe462c0b Removed old IRC implementation
User accounts are now only for streamers, update CLI, API, and config to reflect that.
Fixed a bug with registration in api.ts
Made http port configurable
Added beginnings of socket.io chat server

Possibly more, I took a break in the middle of this commit.
2019-10-18 18:43:01 -05:00
knotteye fad832fe38 Remove long winded installation guide
Add config guide
Minor changes to default config
2019-10-05 15:11:03 -05:00
knotteye cd8b9780d7 Bump package version. 2019-10-05 14:40:51 -05:00
knotteye f9e4a7a5c6 I don't even know.
Filled out API for user management
Proper escaping of user input for SQL queries (stream keys aren't user input)
Filled out frontend with profile management, vods, etc.
I don't remember there's probably more, fuck.
2019-10-05 14:34:57 -05:00
knotteye eefa7c8dc7 Added videojs files and CSS. 2019-09-28 21:46:58 -05:00
knotteye b0533f973b Added some api functions, an express server for the API and nunjucks
Added nunjucks templates for frontend pages.
2019-09-28 21:44:55 -05:00
knotteye 085dd02148 Changed init functions to be more consistent.
Added setup script and templates for config and database setup.
Fixed typo in tsconfig.
2019-09-26 14:43:24 -05:00
knotteye d1cd2815e4 Fixed headers. Oops. 2019-09-24 18:42:13 -05:00
knotteye 5958f8c0ff Moved readme, started documentation. 2019-09-24 18:35:11 -05:00