Calvin Montgomery
8c136c563a
Fix #799 and remove old unused quality selection
2019-03-27 21:19:30 -07:00
Calvin Montgomery
b25560c4a9
Add error message for #798
2019-03-27 21:05:45 -07:00
Calvin Montgomery
367df3d70b
Implement #797
2019-02-23 21:23:21 -08:00
Calvin Montgomery
c6f9b1611e
Add some sanity checks for common first-startup issues
2019-02-10 10:22:16 -08:00
Calvin Montgomery
9c44488d8e
Add sanity check to prevent null duration from corrupting playlist meta
2018-12-07 20:47:46 -08:00
Calvin Montgomery
b68ed4d77a
Set purge interval to 1 hour
2018-12-07 20:35:00 -08:00
Calvin Montgomery
fe4030a247
Fix ustream link parsing
2018-11-16 19:52:09 -08:00
Calvin Montgomery
4c9e85b293
Support IO token bucket capacity > refill rate
2018-11-15 23:04:03 -08:00
Calvin Montgomery
8c9622f1b2
Fix #783
2018-11-15 22:40:01 -08:00
Calvin Montgomery
4ccdca6dca
Default channel-storage to database for new installs
2018-11-14 22:48:49 -08:00
Calvin Montgomery
bfff2900ca
deps: replace cytubefilters short hash with full hash
2018-11-14 22:03:14 -08:00
Calvin Montgomery
b85406716b
deps: bump cytubefilters git hash
2018-11-14 22:01:38 -08:00
Calvin Montgomery
cd94c8b83d
Use page visibility API instead of buggy window.focus tracking
2018-11-11 20:24:19 -08:00
Calvin Montgomery
2d6af31c00
voteskip: add early exit for duplicate votes
2018-11-11 16:08:00 -08:00
Calvin Montgomery
f6a58d00b2
Adjust some socket.io settings ( #780 )
2018-11-07 21:23:00 -08:00
Calvin Montgomery
1f28c0b87d
Add checks for kisscartoon/kissanime/mega to direct the user to the FAQ
2018-10-21 22:26:43 -07:00
Calvin Montgomery
801d3d9be1
Fix #775
2018-10-21 22:18:22 -07:00
Calvin Montgomery
5b86fb3187
Implement #779
2018-10-21 22:12:49 -07:00
Calvin Montgomery
1923af16a9
Fix a few minor error conditions
2018-09-30 21:22:20 -07:00
Calvin Montgomery
c7fcd11e53
Fix channel save error introduced by removing async-to-generator
2018-08-29 20:59:07 -07:00
Calvin Montgomery
d9e2a62f77
Add check for #766
2018-08-29 20:40:24 -07:00
Calvin Montgomery
553052f901
Drop node.js 6.x
2018-08-27 21:59:48 -07:00
Calvin Montgomery
c90d9c0ddc
Remove flow (not being used)
2018-08-27 21:48:52 -07:00
Calvin Montgomery
f19efdb859
Fix #762
2018-08-18 13:14:37 -07:00
Calvin Montgomery
a9a644460f
Fix #760
2018-08-18 12:27:24 -07:00
Calvin Montgomery
cb687fc078
zalgo text hasn't been funny for years, guys
2018-08-06 19:56:55 -07:00
Calvin Montgomery
67b1c97d89
Add io.throttle-in-rate-limit for socket event rate
2018-07-25 21:07:07 -07:00
Calvin Montgomery
db2361aee9
Misc fixes for password reset
...
* Remove messaging about asking an administrator for help if no email
is associated with the account (no longer correct or relevant)
* Compare user-provided email with registered email case-insensitively
(#755 )
* Replace antiquated hash generator with cryptographically secure
random byte string generator
2018-07-11 19:21:32 -07:00
Calvin Montgomery
3db751b65f
Fix socket count metric leak
2018-07-09 20:24:53 -07:00
Calvin Montgomery
aca40dde0c
Add note about unsupported filetypes
2018-06-15 20:33:55 -07:00
Calvin Montgomery
dd23564c15
link-domain-blacklist: fix blank blacklist matching empty string
2018-06-14 18:45:35 -07:00
Calvin Montgomery
90b5e5e09f
deps: bump mocha and babel
2018-06-03 21:55:41 -07:00
Calvin Montgomery
125a781cc7
deps: updates to support node.js 10
2018-06-03 21:19:12 -07:00
Calvin Montgomery
fdab26b792
Hoist sortUserlist outside of userlist population inner loop
2018-05-26 13:28:26 -07:00
Calvin Montgomery
976b0a2168
Fix error introduced by lint changes
2018-04-08 19:17:03 -07:00
Calvin Montgomery
62417f7fb8
Add eslint ( #741 )
2018-04-07 15:30:30 -07:00
Calvin Montgomery
c1e78fd4dc
Kill process if www/js/player.js is not found at startup
2018-04-05 20:39:49 -07:00
Calvin Montgomery
fcfc45dd70
Save YouTube playlists to library in batch to avoid connection pool starvation
2018-03-05 22:19:51 -08:00
Calvin Montgomery
54bf7f1c5b
Strip GDrive metadata from saved channel playlists
2018-03-05 21:56:08 -08:00
Calvin Montgomery
8340bf2c81
Add notice that quality preference doesn't work for YouTube anymore ( #726 )
2018-03-05 21:51:40 -08:00
Calvin Montgomery
81e1947656
Clear template cache on /reload ( #734 )
2018-03-05 21:46:58 -08:00
Calvin Montgomery
247cf770d0
Avoid O(N^2) loop when loading channel emotes on channel load
2018-03-05 21:35:56 -08:00
Calvin Montgomery
79556d9365
deps: remove "q" ( #731 )
...
Insert Star Trek joke here.
Also did significant refactoring of the surrounding logic for the things
that depended on Q.
2018-02-24 19:47:50 -08:00
Calvin Montgomery
49661a95ab
Upgrade dependencies
2018-02-15 19:58:33 -08:00
Calvin Montgomery
03f30a82b9
Fix botched version bump in package.json
2018-02-01 17:41:06 -08:00
Calvin Montgomery
966da1ac58
Revert "Replace quadratic emote list impl with Map"
...
This reverts commit 0f9bc44925
.
The original commit was not backwards compatible with use cases that
users were relying on, such as emotes being sorted in insertion order by
default.
I will develop a new patch which fixes the performance issue in a
backwards compatible way.
2018-02-01 17:39:45 -08:00
Calvin Montgomery
aeab31825e
Fix a raw file error caused by facebook CDN violating RFC 2616
2018-01-21 18:53:16 -08:00
Calvin Montgomery
0f9bc44925
Replace quadratic emote list impl with Map
2018-01-18 19:34:57 -08:00
Calvin Montgomery
8399eab33f
Fix error on invalid regex for /clean
2018-01-17 21:54:43 -08:00
Calvin Montgomery
1797e11b43
Sanitize google drive IDs to remove URL hash etc.
2018-01-14 15:15:59 -08:00
Calvin Montgomery
d706bf63b1
Fix ustream
2018-01-14 15:02:15 -08:00
Calvin Montgomery
c07cf7c13a
Remove confirmation prompt from postinstall
2018-01-07 15:42:08 -08:00
Calvin Montgomery
e350eb731b
Fix #728
2018-01-07 15:14:20 -08:00
Calvin Montgomery
78bffad888
Fix errored channels getting stuck during unload
2018-01-06 09:59:18 -08:00
Calvin Montgomery
95e147b5a0
Use socket.handshake instead of socket.client.request
...
Fixes a bug where sockets would be rejected if they connected directly
with the 'websocket' transport instead of doing an AJAX connection with
websocket upgrade (e.g. if `transports: ['websocket']` is passed to the
socket.io-client constructor).
See https://github.com/socketio/socket.io/blob/master/docs/API.md#sockethandshake
2017-12-27 14:24:33 -08:00
Calvin Montgomery
0b6106a89e
Clarify gdrive userscript error when fmt_stream_map is missing
2017-12-26 20:40:12 -08:00
Calvin Montgomery
b7bc93f194
Disable vid.me (RIP)
2017-12-24 11:19:30 -08:00
Calvin Montgomery
0c330a82ce
Add dirty check to playlist for efficiency of channel saving
2017-12-16 10:34:04 -08:00
Calvin Montgomery
a4e72a002a
Fix #719
2017-12-16 00:05:28 -08:00
Calvin Montgomery
7fbd62142e
Minor tweaks/fixes
2017-12-15 19:10:32 -08:00
Calvin Montgomery
29be9233e9
Add check for weird setAFK edge case
2017-12-11 22:46:41 -08:00
Calvin Montgomery
1e969117c4
Fix #722
2017-12-10 19:28:05 -08:00
Calvin Montgomery
fbee6d2ab7
Fix a few common causes of error logs (incl. better ffprobe error messages)
2017-12-10 16:39:06 -08:00
Calvin Montgomery
39587a8448
Add DB query error count metric
2017-12-06 22:13:07 -08:00
Calvin Montgomery
9886f648f2
Workaround for #724
2017-12-06 22:10:06 -08:00
Xaekai
aa5066762b
This resolves an issue where Google returns HTTP200 but provides an HTML redirect to a login portal instead of video data.
...
Closes #718
2017-11-27 23:37:41 -08:00
Calvin Montgomery
85169fbb56
Update drive userscript ( #714 )
2017-11-15 22:27:31 -08:00
Calvin Montgomery
875337d9a6
web/account: add referrer check
2017-11-05 16:17:37 -08:00
Calvin Montgomery
b876c8907a
ffmpeg: preserve cookies when following redirects in pre-flight req
2017-11-05 16:01:39 -08:00
Calvin Montgomery
b453aecee5
Replace froogaloop
...
Froogaloop no longer appears to work.
Followed migration guide: https://github.com/vimeo/player.js/blob/master/docs/migrate-from-froogaloop.md
2017-10-28 23:10:15 -07:00
Calvin Montgomery
3cd8bfa8c7
Remove /sioconfig for real
2017-09-30 15:26:47 -07:00
Calvin Montgomery
014f3f008e
Remove config key that is no longer used
2017-09-27 21:50:51 -07:00
Calvin Montgomery
f975f7ef85
Update password reset to use new nodemailer impl
2017-09-26 21:22:15 -07:00
Calvin Montgomery
9cfe71d4c4
Start working on nodemailer upgrade
2017-09-25 22:31:45 -07:00
Calvin Montgomery
8db22ad924
Implement playerjs for streamable ( #706 )
2017-09-25 19:18:46 -07:00
Calvin Montgomery
c159fa8060
Remove old HTTPS redirect kludges
2017-09-19 20:49:33 -07:00
Calvin Montgomery
9a1d50dcd3
Add support for v8-profiler (optional dep)
2017-09-18 21:54:36 -07:00
Calvin Montgomery
97231e515c
player: support HLS vod for vidme ( fixes #703 )
...
- Upgrade videojs-contrib-hls to latest version
- Update VideoJSPlayer to support "auto" quality tag to delegate to
the HLS plugin for automatic quality selection
- mediaquery change:
9f5122e031
2017-09-04 09:44:30 -07:00
Calvin Montgomery
8b1b501bbd
Start working on /account/data controller
2017-08-30 22:45:48 -07:00
Calvin Montgomery
0885a619b9
Generate .meta.js for gdrive userscript for update checks
...
Tampermonkey automatically requests www/js/cytube-google-drive.meta.js
to check for updates. Changed the userscript generator to write an
additional .meta.js file so that works instead of 404ing.
2017-08-19 16:31:02 -07:00
Calvin Montgomery
791a712a68
Move channel register/delete reload logic to message bus
2017-08-15 18:55:36 -07:00
Calvin Montgomery
d16cfb7328
Add message bus for #677
2017-08-15 18:23:03 -07:00
Calvin Montgomery
4102d6eaf2
Refactor index.js logic into src/main
2017-08-13 22:16:42 -07:00
Calvin Montgomery
ba8088b678
videojs: default quality to 480 instead of 1080
2017-08-13 21:48:50 -07:00
Calvin Montgomery
d0c1e8cbd9
Change metric names to follow prometheus naming guide
2017-08-12 13:12:58 -07:00
Calvin Montgomery
04c9d48779
custom-media: implement queueing and playback changes
2017-08-08 20:35:17 -07:00
Calvin Montgomery
8b7cdfd4c3
soundcloud: fix getVolume to match setVolume
2017-08-07 21:08:04 -07:00
Calvin Montgomery
0b560f15a9
Add prometheus counter for changeMedia
2017-08-05 18:50:27 -07:00
Calvin Montgomery
dac2e41488
Fix and enable efficient emotes by default
2017-08-05 12:22:58 -07:00
Calvin Montgomery
cb6cfc8455
Instrument some more metrics with prometheus
2017-08-02 21:24:44 -07:00
Calvin Montgomery
6043647cb7
Skip full user auth for most page renders
...
Previously, the user's session cookie was being checked against the
database for all non-static requests. However, this is not really
needed and wastes resources (and is slow).
For most page views (e.g. index, channel page), just parsing the value
of the cookie is sufficient:
* The cookies are already HMAC signed, so tampering with them ought to
be for all reasonable purposes, impossible.
* Assuming the worst case, all a nefarious user could manage to do is
change the text of the "Welcome, {user}" and cause a (non-functional)
ACP link to appear clientside, both of which are already possible by
using the Inspect Element tool.
For authenticated pages (currently, the ACP, and anything under
/account/), the full database check is still performed (for now).
2017-08-01 21:40:26 -07:00
Calvin Montgomery
7bd9934e58
Minor cleanup of no longer used things
2017-07-26 20:32:51 -07:00
Calvin Montgomery
5a78056c91
Some small refactoring
2017-07-24 22:08:26 -07:00
Calvin Montgomery
e80613c7ec
Fix rtmp again because chrome is picky about mime types
2017-07-23 17:55:25 -07:00
Calvin Montgomery
282ad986b6
Deprecate legacy vimeo-oauth lookup
2017-07-22 11:14:29 -07:00
Calvin Montgomery
52030506b5
deps: remove status-message-polyfill
...
This hasn't been necessary since node v0.10, and CyTube only supports
node v6.x+ by this point.
2017-07-22 10:45:36 -07:00
Calvin Montgomery
964feb7243
Add id field to announcements and hide previously closed announcements
2017-07-22 10:35:45 -07:00
Calvin Montgomery
ff3ececc36
Copy utils from cytube-common and remove dep
...
The `cytube-common` module was created as part of a now-defunct
experiment and since then has just remained a crufty container for a few
utils. Moved the utils to the main repo and removed the dependency.
2017-07-19 20:47:02 -07:00
Calvin Montgomery
e780e7dadb
Deprecate stats table in favor of prometheus integration
2017-07-17 21:58:58 -07:00
Calvin Montgomery
c7bec6251e
Begin prometheus integration
...
Add a dependency on `prom-client` and emit a basic latency metric for
testing purposes. Add a new configuration file for enabling/disabling
prometheus exporter and configuring the listen address.
2017-07-16 22:35:33 -07:00