Calvin Montgomery
709724efd4
Warn moderators when a channel exceeds size limit
...
When the chandump is saved, the size of the file is checked. If it is over the limit, moderators are displayed a message indicating that the channel is too large and they should remove extra playlist items, filters, and/or emotes.
This is a partial solution for #421 .
2014-12-26 11:19:19 -05:00
Calvin Montgomery
3689aafe3b
Fix all video adds getting stuck when one fails
...
Whenever a urlRetrieve() fails due to an unexpected error (ENOTFOUND, ETIMEDOUT, Socket hang up, etc.), the domain handler and the global exception handler would detect this and not crash the server, however the dirty internal state would somehow prevent future HTTP requests from completing successfully.
Removed domain usage since that feature is marked "unstable" and is rumored to be marked for deprecation in future versions of node. Using the "error" event of the request object itself, which means errors are local in scope and won't pollute global state. This should have been the solution originally, but when urlRetrieve() was written, I was not as familiar with node.
2014-12-26 10:39:47 -05:00
Calvin Montgomery
c39c394f36
Add auto DB conversion for utf8mb4
2014-12-14 21:53:25 -05:00
Calvin Montgomery
9deff9bdb1
Change charset for certain fields to utf8mb4
...
The underlying cause of #419 is the default utf8 collation in MySQL/MariaDB, which only supports the base plane of Unicode (\u0000-\uffff). By changing the collation to utf8mb4_general_ci, stuff like ban reasons and profile text may have emoji and other non-base-plane Unicode.
The charset for playlist titles is NOT changed, and non-base-plane characters are replaced by question marks. This is because switching to utf8mb4 would make the primary key too long.
2014-12-14 21:53:25 -05:00
Calvin Montgomery
4b8681c2a4
Don't break if the profile is corrupt
2014-12-14 21:53:25 -05:00
calzoneman
e8a2753e19
Don't log HTTP 413, just send it to the client and be done
2014-12-12 17:35:57 -06:00
calzoneman
a3a9fa074e
Improve behavior of custom embed w.r.t. https
...
Instead of silently failing when browser policy blocks HTTP embeds over HTTPS, pre-fill the video div with an error message and attempt to salvage the link with s/http/https/g.
2014-12-10 23:56:17 -06:00
calzoneman
2b800f2a9a
Hopefully fix typecheckedOn bug
2014-12-07 00:08:53 -06:00
calzoneman
918b865a9b
Slight tweak to urlRetrieve error handler
2014-12-04 00:42:25 -06:00
calzoneman
b587da6701
Several fixes
...
- User playlists should now list correctly (fixed a race condition)
- Livestream types can autoplay (no longer stuck at currentTime = -3)
- Playlist items with NaN duration do not break user playlist saving
- ffmpeg support can handle live media (e.g. icecast)
- Invalid volume is sanitized and an error message is added
- JWPlayer displays correctly for both HTML5 and Flash
- JWPlayer volume synchronization is fixed
- <audio> and <video> tags are scaled correctly with .embed-responsive-item
2014-12-02 22:21:52 -06:00
calzoneman
2f2ed8aaf9
Fix Twitch not working on HTTPS and allow HTTPS channel page
2014-11-24 19:24:47 -06:00
calzoneman
da2d461941
Fix caching and add gzip
2014-11-16 21:06:10 -06:00
calzoneman
4514151ad2
Add a better error message for google drive 1hr
2014-11-13 20:08:01 -06:00
calzoneman
681fc717c3
Fix google+
2014-11-03 12:56:15 -06:00
calzoneman
318a924b6d
Extend blacklist to PMs
2014-10-29 15:07:57 -05:00
calzoneman
575b762ba1
Fix kick behavior
2014-10-25 22:49:22 -05:00
calzoneman
4967e46343
Fix socket.io issue; fix ACP announcements
2014-10-24 10:24:02 -05:00
calzoneman
289807535a
Typo
2014-10-24 10:24:02 -05:00
calzoneman
b4bcb7637b
Reject sockets with no IP
2014-10-24 10:24:02 -05:00
calzoneman
50dd0982a4
Fix IP extraction for socket.io
2014-10-24 10:24:02 -05:00
calzoneman
6e0735f3fe
Update to socket.io 1.0
2014-10-24 10:23:30 -05:00
calzoneman
029fa62af2
Don't log errors for bad http requests
2014-10-12 11:36:54 -05:00
calzoneman
fa85030524
Fix borrow-rank
2014-10-09 20:46:16 -05:00
calzoneman
4505ca19da
Auto unpause after leader is removed
2014-10-07 23:01:36 -05:00
calzoneman
e13e695077
Allow limiting # items per user
2014-10-06 11:32:25 -05:00
calzoneman
309e5d8b46
Doing it live
2014-09-13 00:01:54 -05:00
calzoneman
d2027d2e5a
Fix /unmute with empty name
2014-09-12 11:49:30 -05:00
calzoneman
731ab3f9a5
Ok this should actually fix it
2014-09-11 19:00:27 -05:00
calzoneman
2ea9dbcb75
Fix IP address race condition for logging
2014-09-11 18:56:33 -05:00
calzoneman
2b60ab8e10
Add permission for #402 ; fix a strange jwplayer issue
2014-09-06 22:59:28 -05:00
calzoneman
71114b0060
Fix: don't search channel library if rank < seeplaylist
2014-09-04 20:53:18 -05:00
calzoneman
ea9fa0a95a
Fix /smute with 0 args throwing error
2014-09-02 16:46:53 -05:00
calzoneman
12447ce5dc
Give up early if username is invalid for rank change
2014-09-01 20:33:11 -05:00
calzoneman
66865f718c
Fix Error: Requested Range Not Satisfiable
2014-09-01 14:36:24 -05:00
calzoneman
91c24518c5
Conditionally allow ASCII characters (for Xaekai)
2014-08-29 16:38:57 -05:00
calzoneman
7002874bbb
Minor fix for messages with spaces only
2014-08-29 15:49:32 -05:00
calzoneman
484b695965
Disallow ASCII control characters in messages
2014-08-29 15:47:56 -05:00
calzoneman
7b00ba10b9
Fixes at Xaekai's request
2014-08-27 18:45:11 -05:00
calzoneman
c8684d58ed
Fix handling of /mute with no name
2014-08-22 10:52:15 -05:00
calzoneman
b3c3ee93ce
Hopefully fix an error case
...
I have no idea why it's possible for sock.handshake to be defined and then undefined
2014-08-21 14:37:40 -05:00
calzoneman
edac89b204
Fix x-forwarded-for resolution in http logging
2014-08-20 10:56:36 -05:00
calzoneman
088c547522
Update dependencies - execute npm update && npm rebuild after pulling
2014-08-19 22:27:59 -05:00
calzoneman
ae42ac9c56
Remove ghost httpaccess.log file
2014-08-19 00:52:50 -05:00
calzoneman
6dfeab9657
Update rest of dependencies
2014-08-19 00:46:30 -05:00
calzoneman
4eb81a84d9
Update nodemailer, yamljs, q
2014-08-19 00:36:31 -05:00
calzoneman
c693e84a46
Update bcrypt and fix a deprecated reference in auth
2014-08-19 00:25:36 -05:00
calzoneman
020e2326b5
Replace own static and log functions with serve-static and morgan
2014-08-19 00:21:32 -05:00
calzoneman
5f7adc98ba
Update express dependency
2014-08-19 00:07:24 -05:00
calzoneman
c2ba55ac0f
Fail /kick, /ban if the target name is blank
2014-08-18 22:00:51 -05:00
Calvin Montgomery
5d624fa49f
Merge pull request #396 from calzoneman/ipcloak
...
Change IP masking
2014-08-15 11:43:56 -05:00
calzoneman
0f2b93e5c5
Increment version number
2014-08-15 11:41:09 -05:00
calzoneman
3446eb5357
Add Google Docs checks for missing duration/title
2014-08-15 00:27:51 -05:00
calzoneman
b82583a79c
Remove IP leak from ban log message
2014-08-14 22:07:06 -05:00
calzoneman
c255133a2b
Fix wrong argument being passed
2014-08-14 22:02:58 -05:00
calzoneman
25ab4b62e5
Update cloaking function so the banlist looks right
2014-08-14 21:57:38 -05:00
calzoneman
722c55e0da
Remove reference to maskIP
2014-08-14 21:50:34 -05:00
calzoneman
c5a52d2ce5
Fix wrong scope on ipList
2014-08-14 21:45:25 -05:00
calzoneman
6b9968a489
Remove torblocker dependency
2014-08-14 21:44:33 -05:00
calzoneman
8fddbc3e6e
Add IP cloaking; make tor bans channel specific
2014-08-14 21:42:13 -05:00
calzoneman
ecca806a58
Fix an issue with quality selection
2014-08-14 16:28:44 -05:00
calzoneman
dc3efd94c8
Remove JustinTV support as it is no longer in service
2014-08-13 13:51:09 -05:00
calzoneman
fae1609a50
Apparently redirector is https sometimes
2014-08-12 18:34:37 -05:00
calzoneman
b88f1931c6
Prevent vimeo from logging errors when videos become private/removed
2014-08-11 11:58:03 -05:00
Erik
ef921b1f96
Fix logging of customizations
2014-08-09 14:41:12 -04:00
Calvin Montgomery
ea79b7d6b1
Remove unused file
2014-08-08 23:29:07 -07:00
Calvin Montgomery
9ff23622a0
Fix a minor matching issue for google docs
2014-08-08 23:27:54 -07:00
Calvin Montgomery
4f7ec228d3
Fix regular expression for google docs parsing
2014-08-07 23:19:07 -07:00
Calvin Montgomery
4a3645e3ed
Prevent invalid URI escapes from logging errors
2014-08-07 19:25:34 -07:00
Calvin Montgomery
b7edfc31f9
Fix for google docs changing their video player:
2014-08-06 20:12:57 -07:00
Calvin Montgomery
d94c596063
Require auth for read-only requests too
2014-08-04 18:01:57 -07:00
Calvin Montgomery
59dd733219
Fix null reference bug
2014-08-02 19:15:49 -07:00
Calvin Montgomery
84a07030d0
Disallow cloning playlist if user doesn't have seeplaylist permission
2014-08-02 19:12:09 -07:00
Calvin Montgomery
d9f5c551e3
Fix TypeError due to race condition
2014-07-20 19:36:29 -07:00
Calvin Montgomery
79bb6a96cd
Fix exception
2014-07-14 21:13:45 -07:00
Calvin Montgomery
89de33031c
Merge pull request #386 from calzoneman/plusvideo
...
Google+ video support
2014-07-13 22:16:00 -07:00
Calvin Montgomery
35c6a68e5e
Remove redundant RegExp constructor
2014-07-13 22:14:37 -07:00
Calvin Montgomery
b1709758fd
Increment version number
2014-07-13 22:13:16 -07:00
Calvin Montgomery
565e490078
Fix setFlag/waitFlag edge case that was causing duplicate joins
2014-07-13 12:23:04 -07:00
Calvin Montgomery
e6d6e3391e
Don't log gdocs 'exceeded quota' errors to error.log
2014-07-13 11:33:10 -07:00
Calvin Montgomery
989a737ea4
s/e.trace/e.stack
2014-07-13 11:31:41 -07:00
Calvin Montgomery
69772bf2ec
Error handling for google+
2014-07-13 11:29:50 -07:00
Calvin Montgomery
1e38b05800
Fix minor issue
2014-07-13 11:15:56 -07:00
Calvin Montgomery
c213eb2f31
Minor fix
2014-07-12 18:39:48 -07:00
Calvin Montgomery
b6a1dd8cb3
Send onMediaChange (fixes voteskip stuff)
2014-07-11 21:09:28 -07:00
Calvin Montgomery
937ad04967
Change meta format so it persists in DB and on disk
2014-07-11 20:42:13 -07:00
Calvin Montgomery
c522516b88
Implement serverside Google+ retrieval
2014-07-10 23:03:13 -07:00
Calvin Montgomery
052afaf2f6
Start working on google+ support
2014-07-10 20:10:00 -07:00
Calvin Montgomery
b28fd9e4a8
Add permission for /clear and log it
2014-07-10 20:03:47 -07:00
Calvin Montgomery
c7ef76c518
Minor change
2014-07-10 19:54:26 -07:00
Calvin Montgomery
0f11615a1f
Increment version number
2014-07-10 19:52:16 -07:00
Calvin Montgomery
1c77a24839
Fix activeLock bug
2014-07-09 22:37:11 -07:00
Calvin Montgomery
f92d4bc5d4
Fix vimeo with no vimeo-workaround
2014-07-09 22:15:14 -07:00
Calvin Montgomery
f36d2b0258
Add onPreChangeMedia and improve refreshing
2014-07-09 21:46:45 -07:00
Calvin Montgomery
3f959087af
Initial improvements to playback system
2014-07-09 21:20:14 -07:00
Calvin Montgomery
256a951531
Fix potential race condition
2014-07-01 21:09:20 -07:00
Calvin Montgomery
03ba657783
Fix setting channel js/css
2014-07-01 20:43:34 -07:00
Calvin Montgomery
e87ddb473b
Require user permission to run channel js
2014-07-01 20:11:54 -07:00
Calvin Montgomery
3661ab1fd9
Update XSS filter
2014-06-25 20:22:54 -07:00
Calvin Montgomery
9ce02c8e6b
Merge pull request #380 from calzoneman/tablemerge
...
Merge channel specific tables into global tables with an indexed channel column
2014-06-25 20:14:03 -07:00
Calvin Montgomery
3dcdaf3045
Update version number
2014-06-25 20:13:03 -07:00
Erik
817c7ad4ba
quickfix
2014-06-25 16:13:54 -04:00
Calvin Montgomery
f44c9ce51b
Fix updater
2014-06-24 20:28:04 -07:00
Calvin Montgomery
36c4e41131
Add console command for deleting old channel tables
2014-06-23 22:15:57 -07:00
Calvin Montgomery
c768d9595c
Merge ban tables, fix channel create/delete operations
2014-06-23 22:10:15 -07:00
Calvin Montgomery
4afd69b2fb
Merge channel ranks tables
2014-06-23 21:40:40 -07:00
Calvin Montgomery
0abaaba690
Merge channel libraries into a single table
2014-06-23 21:09:18 -07:00
Calvin Montgomery
523bdfe065
Handle #377
2014-06-17 19:11:41 -07:00
Erik
5b76d4fb8c
fix voteskip not setting afk to false
2014-06-15 21:13:22 -04:00
Calvin Montgomery
8152008466
Crash fix
2014-06-15 16:34:32 -07:00
Calvin Montgomery
0102b92730
Fix wrong variable reference
2014-06-15 12:51:39 -07:00
Calvin Montgomery
8c50655ff2
Disable IP check for password recovery, resolves #376
2014-06-15 10:58:53 -07:00
Calvin Montgomery
7f4e2a8882
Fix a few issues
2014-06-12 20:29:12 -07:00
Erik
6f737349db
uncomment
2014-06-11 12:45:55 -04:00
Calvin Montgomery
b71d3610f2
Fix #374
2014-06-11 08:56:06 -07:00
Calvin Montgomery
f75ffe089c
Toss out fluent-ffmpeg in favor of own parser
2014-06-08 21:03:29 -07:00
Calvin Montgomery
ac10f05f21
Update ffmpeg loader to work with newer fluent-ffmpeg; fix playlists
2014-06-07 21:25:48 -07:00
Calvin Montgomery
02771e6623
Add raw video/audio playback with ffmpeg
2014-06-07 16:57:25 -07:00
Calvin Montgomery
63e60e65f0
Fix meta clearing on playlist save
2014-06-07 13:00:23 -07:00
Calvin Montgomery
777a87a8e6
Fix meta clearing on playlist save
2014-06-07 12:59:42 -07:00
Calvin Montgomery
19aac29347
Fix large chandump notification
2014-06-07 12:56:12 -07:00
Calvin Montgomery
6adba2f355
Don't run the database updater if the version is higher than current
2014-06-07 10:46:44 -07:00
Calvin Montgomery
5d5bdfc069
Various fixes for raw file playback
2014-06-07 10:45:52 -07:00
Calvin Montgomery
6dde745784
Better error handling, add support for mp3/ogg-vorbis
2014-06-05 22:02:51 -07:00
Calvin Montgomery
fdf7900dc8
Send rank packet to target on rank change
2014-06-05 21:12:21 -07:00
Calvin Montgomery
1d1630fb50
Implement raw file queues
2014-06-03 21:21:00 -07:00
Calvin Montgomery
626725031f
Fix IPv6 mask regex
2014-06-02 20:59:35 -07:00
Calvin Montgomery
ac7f0ac47a
Add update function to add meta column
2014-06-02 20:47:21 -07:00
Calvin Montgomery
f2769e5062
Start adding file playback queue support
2014-06-01 11:43:18 -07:00
Calvin Montgomery
862a7d876d
Fix #372
2014-05-31 22:13:53 -07:00
Erik
13f5e3a2c8
fix? #371 coming out of afk doesn't enable voteskip button if it's on the same media
2014-05-31 10:31:45 -04:00
Calvin Montgomery
1917baa4c3
Fix unregistered channels and jwplayer custom timing
2014-05-26 13:02:03 -07:00
Calvin Montgomery
3cae0b0e57
Prevent server from infinite looping when google docs refresh fails
2014-05-24 11:06:46 -07:00
Calvin Montgomery
f3eb999a76
Refactor channel packing
2014-05-23 23:09:36 -07:00
Calvin Montgomery
02ac983fba
Start working on channel detail view
2014-05-23 22:40:35 -07:00
Calvin Montgomery
ecc5ffc7da
Correct filename for channel loggers
2014-05-23 22:00:51 -07:00
Erik
af0ddd303d
fix #363
2014-05-23 22:07:54 -04:00
Calvin Montgomery
ca5ad87414
Fix google docs autorefresh
2014-05-22 20:04:43 -07:00
Calvin Montgomery
738dd3fb75
Fix 'user voteskipped [object Object]
...
'
2014-05-22 19:51:35 -07:00
Calvin Montgomery
89c94701dc
Fix #368
2014-05-22 19:50:26 -07:00
Calvin Montgomery
f3dae85b99
Add more useful error logging to google docs refresh
2014-05-22 19:36:01 -07:00
Calvin Montgomery
3994b42444
Add /kickanons; fix handling of kickban commands with no arguments
2014-05-22 19:34:46 -07:00
Erik
d004c0bcdd
fix poll unvoting
2014-05-22 18:08:24 -04:00
Erik
baa8af58bc
hopefully fix #366 delete causing change media
2014-05-22 10:28:58 -04:00
Erik
4f7e4ad65e
fix #365 parsing media limit
2014-05-22 09:22:58 -04:00
Erik
d42fc2eabf
fix typo
2014-05-22 02:37:04 -04:00
Erik
e19acd2d63
fix enforcement of media limit
2014-05-22 02:35:52 -04:00
Calvin Montgomery
1b3d154055
Prevent empty channel from being loaded on blacklist join
2014-05-21 21:11:15 -07:00
Calvin Montgomery
4e7dcbe7ef
Fix for soundcloud returning 302 found instead of 200 OK
2014-05-21 20:53:13 -07:00
Calvin Montgomery
4c1b8e8c1a
Add ability to blacklist channels in site config
2014-05-21 20:33:24 -07:00
Calvin Montgomery
7dde8cffe9
Hopefully fix playlist issues
2014-05-21 20:27:49 -07:00