111 Commits

Author SHA1 Message Date
calzoneman
312892e56b Short term additional fix for #583
The previous commits do not handle all of the edge cases of #583
appropriately.  This is a short term solution that will work, but is not
as efficient as it could be.  The whole refreshAccount function needs to
be reconsidered and replaced with a more sane way of handling atomic
updates to the user's account state.
2016-06-29 22:00:25 -07:00
calzoneman
c70dc83504 Fix previous fix 2016-06-26 21:15:33 -07:00
calzoneman
e9fdb1a7e5 Fix login race condition (#583) 2016-06-26 16:21:15 -07:00
calzoneman
6f56862307 Add vidme support (#568) 2016-06-25 17:09:48 -07:00
calzoneman
056b2a48ea Add throttling of usercount frames 2016-06-18 00:32:50 -07:00
calzoneman
77d84d5b76 Add redis client error listener 2016-06-13 23:09:27 -07:00
calzoneman
b6bb0aa56d Add redis-based channel index 2016-06-09 23:42:30 -07:00
calzoneman
6e772c6837 Add partition map reload 2016-06-08 22:54:16 -07:00
calzoneman
a360cd8808 Reject joins for channels mapped to other partitions 2016-06-07 22:47:49 -07:00
calzoneman
77465e6b49 Add partitioning logic 2016-06-06 21:54:49 -07:00
calzoneman
0a94da4d13 Use Promise.reduce() on shutdown to prevent overloading memory 2016-05-25 18:56:20 -07:00
calzoneman
594a9e17da Spread channel saves across the save interval
Since all channels were saved sequentially, this would cause huge lag
spikes every time the channel save interval fired.  This change adds a
delay between each channel so that the additional load is spread evenly
across the save interval.
2016-05-25 18:56:20 -07:00
calzoneman
aedd0df228 Limit the number of channels displayed on the index page 2016-05-21 16:59:28 -07:00
calzoneman
75245e4d98 Include video ID in the progress bar to prevent false clears 2016-05-19 21:31:10 -07:00
calzoneman
d357b30f9d Add raw video documentation 2016-05-19 21:07:42 -07:00
calzoneman
b35b2a6e7e Clean up ffprobe error reporting
The error messages were a bit difficult for users to understand due to a
combination of including useless technical information and lacking
userful user information.  The error messages are more verbose now and
give a better indication of what went wrong.
2016-05-19 20:51:39 -07:00
calzoneman
fe37cb198e Add channelCount metrics 2016-05-19 20:09:35 -07:00
calzoneman
58a193b63b Add back socket.io:count metric that was accidentally removed 2016-05-06 20:09:00 -07:00
calzoneman
d61005e419 Add rel=noopener noreferrer to autogenerated links 2016-05-04 20:58:18 -07:00
calzoneman
46eaa7e090 Update to handle cytube-common logger initialization 2016-04-27 22:33:53 -07:00
calzoneman
3b4800d045 Add database queryTime metric 2016-04-27 21:55:25 -07:00
calzoneman
72bd3e4c98 Add localStorage flag for connecting to alt server list 2016-04-26 21:57:11 -07:00
calzoneman
a33f3d8bb0 Remove debug console.log 2016-04-23 19:54:32 -07:00
calzoneman
b69bd82a72 Add DualClusterClient for live testing phase of backend/frontend split 2016-04-23 19:53:18 -07:00
calzoneman
295c2a41a8 Add socket.leave() support for proxy backend 2016-04-03 11:49:58 -07:00
calzoneman
0ee7f05213 Make polls more efficient
Instead of emitting frames to each individual socket, group them into
socket.io rooms of people who can see hidden poll results and people who
can't, then just do 2 broadcasts.
2016-04-02 11:57:26 -07:00
calzoneman
20538e328f Replace legacy emitter with EventEmitter prototype 2016-04-02 11:23:34 -07:00
calzoneman
9debebd4b9 /clean: error when no argument given 2016-03-28 22:31:35 -07:00
calzoneman
52e444ab64 ffmpeg: follow relative redirects 2016-03-26 11:43:26 -07:00
calzoneman
319c52911a Resolve #553 2016-03-23 23:04:58 -07:00
calzoneman
7448429341 Fix #566
Refactored the ffprobe stream-selection logic to handle rejected files
better:

  * Streams tagged as a non-default disposition are not considered
  * If a file has any video stream, the audio stream will be ignored

This should prevent videos from being misreported as invalid audio
codecs, etc.
2016-03-21 23:28:21 -07:00
calzoneman
a96b85fa5b proxyinterceptor: handle SocketDisconnectEvent 2016-03-07 20:25:32 -08:00
calzoneman
76ef8d6906 Improve performance of mass connects by broadcasting usercount 2016-02-15 21:35:59 -08:00
calzoneman
98d3090c7d Move BackendModule import 2016-02-15 17:21:28 -08:00
calzoneman
39e3978161 Fix 2016-02-09 23:04:07 -08:00
calzoneman
cada5f0b0a Actually make the legacy mode default 2016-02-09 22:59:48 -08:00
calzoneman
e6234297a1 Merge 2016-02-09 20:13:58 -08:00
calzoneman
b3c85e8534 Limit requestPlaylist to once per 60 seconds
If clients call it quickly in succession with large playlists, it can
cause node to get stuck stringifying socket.io frames and cause an out
of memory crash.
2016-02-06 19:40:50 -08:00
calzoneman
50124c8a45 Refactor backend initialization 2016-02-04 21:43:20 -08:00
calzoneman
ba54848db5 mediarefresher: fix memory leak from dangling timers 2016-01-30 19:42:55 -08:00
calzoneman
86abebf9bf Add RedisClusterClient 2016-01-28 19:51:59 -08:00
calzoneman
f8470fc8f6 Use new proxy address formatter 2016-01-23 12:46:04 -08:00
calzoneman
dd73a8ee9a Automatically publish backend address to the pool 2016-01-20 23:11:55 -08:00
calzoneman
f46891b6ed Defer to mediaquery for anonymous vimeo lookup 2016-01-07 17:38:05 -08:00
calzoneman
eeaffe1f61 Update socket.io to version 1.4.0 2016-01-06 21:42:48 -08:00
calzoneman
1ac69709ee Minor fix to refcounter logic 2016-01-04 20:35:02 -08:00
calzoneman
8bef7924b2 Minor fix 2016-01-01 18:28:53 -08:00
calzoneman
28807344bc Import logger 2016-01-01 18:26:43 -08:00
calzoneman
cdb20e8d40 Handle when a frontend disconnects 2016-01-01 18:25:12 -08:00
calzoneman
9a262da13d Set socketUser data from frontend 2015-12-30 21:57:46 -08:00