Commit graph

475 commits

Author SHA1 Message Date
Calvin Montgomery d0712d007e Work on refactoring global IP ban database calls 2017-05-31 22:46:15 -07:00
Calvin Montgomery 7fcf31dec6 Merge pull request #671 from calzoneman/knex
The knexening: part 1
2017-05-29 13:16:35 -07:00
Calvin Montgomery 2a694e73af The knexening: part 1 2017-05-28 22:39:27 -07:00
Calvin Montgomery 22a9acfc90 Support proxying chat images via camo
Camo: https://github.com/atmos/camo.  This has a couple advantages over
just allowing images to be dumped as-is:

  - Prevents mixed-content warnings by allowing the server to proxy HTTP
    images to an HTTPS camo instance
  - Protects users' privacy by not exposing their browser directly to
    the image host
  - Allows the camo proxy to intercept and reject bad image sources
    (URLs that are not actually images, gigapixel-sized images likely to
    DoS users' browsers, etc.)

Whitelisting specific domains is supported for cases where the source is
known to be trustworthy.
2017-05-28 19:38:43 -07:00
Calvin Montgomery f968521936 Remove google drive refresh logic
No longer relevant since the video links are retrieved by the
userscript.
2017-05-28 18:35:13 -07:00
Calvin Montgomery e9c519c6e2 Add twitch clip support (#659) 2017-05-27 11:49:43 -07:00
Xaekai 1d65eb036e Use a more salient variable name.
Use a style thats readable with brevity.
2017-05-24 19:18:47 -07:00
Xaekai 93ef067b8c [ACP] Allow searching users by email. 2017-05-24 04:44:55 -07:00
Calvin Montgomery d23b5278b1 Rename Hitbox -> Smashcast 2017-05-20 16:50:00 -07:00
Calvin Montgomery 55b03d51d7 Fix setOptions for playlist_max_duration_per_user 2017-05-20 16:31:52 -07:00
Xaekai 9cfd97088e Some validation 2017-05-18 20:12:00 -07:00
Xaekai 8434d20826 Fix minor issues with emote rename 2017-05-17 09:50:47 -07:00
Xaekai 8e3ce4e1c3 Emote renaming
This allow emotes to be renamed in the same fashion the image URLs can be changed.
2017-05-16 10:08:53 -07:00
Xaekai 8b95b9fc41 Fix UStream URL Generation 2017-05-14 04:02:32 -07:00
Calvin Montgomery de309d675e Remove redundant signing logic from IP session cookie 2017-05-01 21:51:11 -07:00
Calvin Montgomery 6bfbbc0c01 Support hot-swapping HTTPS certificates 2017-04-30 17:20:19 -07:00
Calvin Montgomery e92afcb203 Fix error logger to only log if error is non-null 2017-04-30 16:49:23 -07:00
Calvin Montgomery a0af0ccab5 Remove dead/commented-out code 2017-04-29 17:08:43 -07:00
Calvin Montgomery 089ac75e9a Fix DB purge of expired password reset reqs
3 year old bug introduced when refactoring 2.x -> 3.0.
Never worked in the first place.
2017-04-29 17:05:45 -07:00
Calvin Montgomery fac94d46a6 Bugfix: stringify first parameter to Logger.xxx() 2017-04-27 21:06:16 -07:00
Calvin Montgomery 5b58c30011 Fix TypeError 2017-04-24 22:31:51 -07:00
Calvin Montgomery ef9c744003 Use HTTPS in formatURL 2017-04-11 21:57:05 -07:00
Calvin Montgomery 8d40c87dda Deprecate jwplayer and googleplus videos 2017-04-11 21:55:31 -07:00
Calvin Montgomery 25c663c110 Fix node deprecation warning about calling fs.writeFile without cb 2017-04-04 23:12:02 -07:00
Calvin Montgomery 8306d2d1b6 Refactor logging 2017-04-04 23:02:31 -07:00
Calvin Montgomery b1a328d2e0 Implement max total video time per user 2017-04-03 21:18:40 -07:00
Calvin Montgomery f42e3bf2b7 Fix #656 2017-04-03 20:31:21 -07:00
Calvin Montgomery 5bdf8b4aaf Fix #657 2017-03-26 11:13:10 -07:00
Calvin Montgomery 7595faf11d Fix voteskip issue when there are no videos left 2017-03-21 20:04:06 -07:00
Calvin Montgomery 309cd40da2 Compare owner name case-insensitively when deleting channel 2017-03-21 19:47:31 -07:00
Calvin Montgomery 0613083eb0 Handle the case where no socket.io ack exists 2017-03-20 22:09:16 -07:00
Calvin Montgomery 9dc82ad444 Enforce stricter validation on polls 2017-03-20 21:37:32 -07:00
Calvin Montgomery 41a538c655 Fix playlist visibility: wait for U_HAS_CHANNEL_RANK instead of just login 2017-03-18 18:53:49 -07:00
Calvin Montgomery d8b9e3dab6 Merge pull request #648 from zeratul0/patch-1
Change fallback voteskip ratio to .5 from 0
2017-03-16 21:48:24 -07:00
zeratul0 88044e11d5 Error response -> template literal as requested 2017-03-16 23:34:38 -04:00
zeratul0 ab1358df36 Change skipratio fallback to error response 2017-03-16 18:35:42 -04:00
Calvin Montgomery a594b19745 Fix user join ban check for users with blank names (but clean IPs) 2017-03-15 23:44:03 -07:00
Calvin Montgomery f6500ff745 Fix emote regex due to sanitize-html changes 2017-03-14 21:36:44 -07:00
Calvin Montgomery 9239c2d465 Add channels.owner_last_seen column 2017-03-13 21:05:32 -07:00
Calvin Montgomery 8f266ccd44 Add channels.last_loaded column 2017-03-13 20:55:06 -07:00
Calvin Montgomery f8183bea1b Add name_dedupe column instead of using LIKE kludge for similar-looking names 2017-03-11 17:09:50 -08:00
zeratul0 d93e42a71c Change fallback voteskip ratio to .5 from 0
moderators might make a mistake changing the skip ratio, causing it to fall back to 0% and allowing users to "skiptrain" before it is fixed
2017-03-06 13:44:05 -05:00
Calvin Montgomery d65cf1beef Change sanitize-html back to the upstream module 2017-03-03 23:51:47 -08:00
Calvin Montgomery aea456436e Fix race condition for siteadmin rank socket frames 2017-03-03 23:34:27 -08:00
Calvin Montgomery 70be35e3fa Experimental ustream fix 2017-03-02 18:47:47 -08:00
Calvin Montgomery d4db459ff9 Fix #647 2017-03-01 20:46:01 -08:00
Calvin Montgomery 5487d15bdf Add config option for mysql pool size, optimize restart login flood case 2017-02-02 23:05:50 -08:00
h2v4c 022fda3d1c Update voteskip.js
fixed an issue where the voteskip socket emit would send {0 count, 0 need} upon voteskip passing
2017-01-25 12:54:04 -06:00
Calvin Montgomery b0ff4d5ef0 Make delete from channel library a configurable permission 2017-01-23 21:16:39 -08:00
Calvin Montgomery bec55bc3d1 Add message for /clear 2017-01-23 21:06:42 -08:00
Calvin Montgomery e2abb90d14 Add HTTPS check for ffmpeg and custom embeds 2017-01-05 20:58:07 -08:00
Calvin Montgomery 31880fa625 Fix an issue where one broken channel can prevent others from saving
Son of a bitch.
2016-12-28 23:24:08 -08:00
Calvin Montgomery b0daa58874 Remove debug conditional 2016-12-20 00:10:17 -08:00
Calvin Montgomery f6c201f3ba Add a few safeguards around channel saving 2016-12-20 00:09:24 -08:00
Calvin Montgomery d21943ecc7 Whitelist m4a/aac for ffmpeg 2016-12-17 19:53:17 -08:00
Calvin Montgomery 8719527a31 Enforce HTTPS for new profile images 2016-12-13 22:44:23 -08:00
Calvin Montgomery 53d385f53e Copy CSS URL validation for JS 2016-12-13 22:22:25 -08:00
Calvin Montgomery 453ed607ba [http deprecation] enforce HTTPS for externalcss URLs 2016-12-10 23:23:57 -08:00
Calvin Montgomery e8d39850c5 Fix null check for youtube livestream check 2016-11-30 09:24:28 -08:00
Calvin Montgomery a624f45493 Fix warning in node 7 2016-11-17 23:01:20 -08:00
Calvin Montgomery aa06884bd6 Ignore cached metadata for youtube livestreams 2016-11-17 23:00:06 -08:00
Calvin Montgomery 9302a271d0 Remove default contact config 2016-11-01 22:44:26 -07:00
Calvin Montgomery d159a16aca Add configuration for redis key 2016-10-18 23:13:25 -07:00
Calvin Montgomery 654d57b53e Add CLI for loading/saving partition map 2016-10-16 16:58:28 -07:00
Calvin Montgomery 7117cd0a5e Fix typo 2016-10-15 16:09:27 -07:00
Calvin Montgomery d2cce4f166 Work on auto reloading partition map from redis 2016-10-15 12:36:20 -07:00
Calvin Montgomery 7c3f2d0a8b only set channel rank for non-guest 2016-10-06 23:22:02 -07:00
Calvin Montgomery ad4ee4bd02 Fix profile/rank for bot logins 2016-10-06 23:01:42 -07:00
Calvin Montgomery 99760b6989 Purge the awful refreshAccount logic
User.prototype.refreshAccount was responsible for multiple race
condition bugs as well as inefficient duplication of DB queries in an
attempt to correct such race conditions.

It has now been replaced by a more reasonable model:

  * Global user account information and aliases are fetched in parallel
    on socket connection
  * Channel rank is fetched when the user tries to join a channel
2016-10-03 23:12:22 -07:00
Calvin Montgomery 014eb28e0d Fix regression for user profiles 2016-10-01 21:37:42 -07:00
Calvin Montgomery 35a8e2b52a Fix age old bug with /login redirecting to /register after registration 2016-10-01 21:31:04 -07:00
Calvin Montgomery c88c63a422 Merge getGlobalRank and getProfile into one query
Really the entire "Account" thing needs to be refactored/deleted and
replaced with separate global account and per-channel state, which I
plan to do, but this brings some minor benefit in the meantime
2016-09-26 22:36:17 -07:00
Calvin Montgomery e1120455b2 Cache channel ID for quicker loads/saves 2016-09-26 22:20:58 -07:00
Calvin Montgomery 83987afd73 Add config for twitch client ID 2016-09-18 21:35:08 -07:00
Calvin Montgomery edff85dfb0 Fix User#inChannel for channels with passwords 2016-09-17 15:02:30 -07:00
Calvin Montgomery 1b1d2596f8 Change default for new account delays to 0 2016-09-14 22:06:00 -07:00
Calvin Montgomery f62d9bc271 Add twitch vod support 2016-09-04 18:53:38 -07:00
Calvin Montgomery 7b4126c32f Add concurrency to channel saving on server shutdown 2016-08-31 21:46:54 -07:00
Calvin Montgomery 5b60a48c7f Fix double save when reloading partition map 2016-08-31 21:33:56 -07:00
Calvin Montgomery 8b94c54d25 Fix bug causing channels to get stuck when DB is down 2016-08-31 21:32:42 -07:00
Calvin Montgomery 84fa7972e3 Skip minification for userscript 2016-08-30 21:20:42 -07:00
Calvin Montgomery e17dac58fd Add a temp bypass for initial rollout 2016-08-24 20:03:30 -07:00
Calvin Montgomery af6e958c49 Merge remote-tracking branch 'origin' into ip-session-age 2016-08-24 19:48:58 -07:00
Calvin Montgomery 5a81ab7ce7 Add a prompt explaining the situation as well as documentation 2016-08-23 21:50:18 -07:00
calzoneman 050dec4d0f Fix initialization race condition and make it toggleable 2016-08-11 20:25:06 -07:00
calzoneman af663bfbcf Implement HTML5 hack for google drive
Requires enabling in config.yaml
google-drive:
  html5-hack-enabled: true

Requires a recent version of node and an IPv6 address

EXPERIMENTAL
2016-08-11 20:04:51 -07:00
calzoneman d9d385f85e Fix an age old log message missing whitespace 2016-08-10 23:10:44 -07:00
calzoneman 17aad006f7 Fix startup issue 2016-08-10 22:37:33 -07:00
calzoneman 33f775051d Fixes for bot logins 2016-08-10 22:20:53 -07:00
calzoneman 0327b3de2e Modifications for ip session cookie 2016-08-10 22:10:02 -07:00
calzoneman 74cb1b3efc Implement time parsing/formatting for channel settings 2016-08-10 21:59:36 -07:00
calzoneman 8305c235eb Add initial channel setting for new account chat delay 2016-08-10 21:59:30 -07:00
calzoneman 701d470494 Add initial blocking of new users in chat 2016-08-10 21:59:18 -07:00
calzoneman e99bfcd47b Merge branch '3.0' into videojs-hls 2016-08-09 22:41:55 -07:00
calzoneman 6245dc84da Minor bug fix 2016-08-08 23:04:34 -07:00
calzoneman 016b125f49 Initial IP session cookie implementation 2016-08-08 23:03:16 -07:00
calzoneman 7b95777d99 Add a few things missed last commit 2016-08-08 20:34:03 -07:00
calzoneman d06c614ccc Add HLS support (and upgrade Video.JS) 2016-08-06 21:14:52 -07:00
calzoneman 8ebfb431ce Fix a bug with vid.me and streamable.com error handling 2016-08-02 22:40:29 -07:00
calzoneman 88c42af139 Add streamable.com support (#585) 2016-08-02 22:35:00 -07:00
Xaekai 9559035118 Add a service socket to enable out of band access to the process commandline 2016-07-16 11:05:32 -07:00
calzoneman 9e00bb133e Fix #601 2016-07-14 23:19:40 -07:00
Xaekai 5eebd88e13 Move ACP nav entry to templating
Closes #516
2016-07-10 23:23:46 -07:00
calzoneman 2a2ed7ce1c Fix partitioning for channels with capital letters 2016-07-09 01:51:06 -07:00
Xaekai 0bafe9f2d7 Add missing comma 2016-07-08 00:04:20 -07:00
Xaekai 0aa73a4b14 Add missing formatter entry for vid.me 2016-07-07 23:32:09 -07:00
Xaekai c3cd84f7af Merge remote-tracking branch 'upstream/3.0' into polltime 2016-07-07 23:06:12 -07:00
Xaekai 9cb2f2f0d3 Merge branch '3.0' into polltime 2016-07-07 22:57:46 -07:00
Xaekai 5896a1c0eb Add timestamps to polls.
Closes #562
2016-07-07 22:56:06 -07:00
Xaekai 42cf772dc3 Merge branch '3.0' into moretags 2016-07-07 22:51:08 -07:00
Xaekai 9f4d2c7ffb Add some various harmless tags to the XSS whitelist
sub, sup: Closes #579
cite, small: Bootstrap uses these for blockquotes
template: Will allow for cleaner channel scripts. Since it's contents are inert it will also allow channel admins to have "comments" in their banner.
2016-07-07 21:52:34 -07:00
Xaekai df5c5cd54f The Puggening: Update from Jade to Pug
1.) module dependency updated from jade 1.11.0 to pug 2.0.0-beta3
2.) All references to Jade have been changed to Pug
3.) /srv/web/jade.js is renamed to pug.js
4.) all template files renamed accordingly
5.) "mixin somename" is automatically considered a declaration, invocations must use "+somename"
6.) variable interpolation is no longer supported inside element attributes, use direct references and string concatenation instead.
7.) bumped minor version
2016-07-07 21:48:09 -07:00
calzoneman f75d40d278 Fix a bug with passwords for bot logins 2016-07-03 23:50:16 -07:00
calzoneman edb5fb6f4e Sync announcements across partitions 2016-07-03 21:28:43 -07:00
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
calzoneman 5b44117681 Use new protocol 2015-12-28 23:52:39 -08:00
calzoneman 9dd617d9fc Update to reflect change in endpoint key 2015-12-27 15:10:43 -08:00
calzoneman b536c15758 Initial hacks to get the split to work 2015-12-26 15:07:03 -08:00
calzoneman be4011cda1 Replace old ActiveLock system with a slightly better one
CyTube has been crashing recently due to things attempting to release
the reference after the channel was already closed (apparently the
uncaughtException handler isn't called for this?).  This newer
implementation keeps track of what is ref'ing and unref'ing it, so it
can log an error if it detects a discrepancy.

Also changed the server to not delete the refCounter field from the
channel when it's unloaded, so that should reduce the number of errors
stemming from it being null/undefined.
2015-12-25 17:07:25 -08:00
calzoneman 10d4ec8e60 Initial work for proxy connections 2015-12-24 16:24:07 -08:00
calzoneman e88971a011 Shorten index length for channel library table (#543) 2015-12-21 17:38:46 -08:00
calzoneman 5a2ef2d24d Minor fixes for queueWarn 2015-12-20 22:35:24 -08:00
calzoneman e9e3cbb575 Update migrator to allow blacklisting/whitelisting keys to backfill 2015-12-18 19:21:11 -08:00
calzoneman b4e7ab2443 Don't save a channel if it hasn't loaded yet 2015-12-18 19:20:57 -08:00
calzoneman 6f654b16b8 Prevent crash due to activeLock being destroyed before callback 2015-12-13 00:22:18 -08:00
calzoneman 9a4237cd00 Exclude siteadmins from channel limit (resolves #508) 2015-12-12 17:03:42 -08:00
calzoneman bfe76dae0e Check X-Forwarded-For on sockets (resolves #528) 2015-12-12 16:59:58 -08:00
calzoneman 80c35b4190 Remove unused code 2015-12-12 16:28:24 -08:00
calzoneman 27af66075e Centralize x-forwarded-proto handling; fixes #542 2015-12-12 16:26:14 -08:00
Calvin Montgomery 1f9e396e05 Merge pull request #541 from lolcow/patch-2
Fix uid variable name duplication/ambiguity
2015-12-11 20:45:47 -08:00
Lolcow Admin 29c0df4fcc Fix uid variable name duplication/ambiguity
`uid` is used twice, where it should be `uid` and `gid`, resulting in an attempted execution of something like `id -g 1500` rather than `id -g syncgroup`. These variable names are already confusing due to the nature of the functions, so I made it clear they're strings rather than numeric IDs.
2015-12-11 00:20:40 -05:00
Lolcow Admin baf302f12c Use absolute path for counters.log
Puts it in line with the other uses of `Logger.Logger`. Allows running outside of pwd.
2015-12-11 00:03:18 -05:00
calzoneman 11d4c4ca62 Reject blank emote names and images 2015-12-05 18:52:39 -08:00
calzoneman 59468ec77c Add safeguard to prevent #539 2015-12-02 20:59:46 -08:00
Calvin Montgomery b241a210f3 Fix for uniqueness of IP range bans 2015-11-23 18:22:51 -08:00
calzoneman fac11ee312 Fix variable misuse 2015-11-03 19:34:12 -08:00
calzoneman 04336c9712 Fix merge error 2015-11-02 21:13:02 -08:00
calzoneman 47ef670f34 Fix typo 2015-11-02 21:10:52 -08:00
calzoneman 5ead24e45e Merge branch '3.0' into web-refactoring 2015-11-02 21:07:50 -08:00
calzoneman 5c339656b7 Minor fixes 2015-11-02 20:52:57 -08:00
calzoneman 6505aa2f5e More refactoring 2015-11-01 17:42:20 -08:00
calzoneman 23333ee266 Remove console logging of clientErrors from HTTP/socket.io 2015-10-30 22:26:20 -07:00
calzoneman edcf17984f Fix socket.io counters 2015-10-30 22:25:00 -07:00
calzoneman a8cc8e4b04 Add more counters for diagnostic information 2015-10-28 23:38:17 -07:00
calzoneman c2726898e5 Move x-forwarded-for middleware 2015-10-27 23:54:32 -07:00
calzoneman 13d4a49976 Move contact page to its own route handler 2015-10-27 22:04:21 -07:00
calzoneman 88236e036c Add better error pages 2015-10-27 20:44:40 -07:00
calzoneman 26e8660af4 Change /logout from GET to POST (#515) 2015-10-26 23:21:09 -07:00
calzoneman 50ca141f1d Web refactoring 2015-10-26 22:56:53 -07:00
Calvin Montgomery 535b1d5d3a Merge pull request #522 from calzoneman/sioconfig-migration
Migrate socket.io configuration to new API
2015-10-25 17:25:00 -07:00
calzoneman 21c3a1b3cd API changes, add documentation 2015-10-25 17:20:39 -07:00
OurFlagIsMined 4809a3db00 more than one Play click deleted a playlist item
If two people tried to play the same playlist item, before the playlist updated, it would delete instead of playing.
The same would also happen if the play button was double-clicked instead of single-clicked.
Also, the active item's play button functioned as a delete button.

Fully tested. Still removes the item (if it was added as temporary) when it finishes playing, or if the play button of a *different* item is clicked.
2015-10-25 19:52:34 -04:00
calzoneman 7b5476874d Minor function change 2015-10-21 20:56:09 -07:00
calzoneman 40e2a608f6 Initial sioconfig migration work 2015-10-19 22:32:00 -07:00
calzoneman 8d39daf942 Factor out resumeAutolead() 2015-10-16 20:32:25 -07:00
calzoneman 217ed115a3 Fix #513 2015-10-16 20:23:41 -07:00
calzoneman 327b9faedb Add dbstore dumper script 2015-10-12 23:31:36 -07:00
calzoneman b4b442c897 bgtask: run channel saves serially to prevent thrashing 2015-10-09 23:16:21 -07:00
calzoneman 7d35df4f5a Fixes 2015-10-07 22:19:39 -07:00
Calvin Montgomery 9f4461a779 Merge pull request #507 from calzoneman/channel-store
Refactor channel storage to allow database store
2015-10-04 23:22:05 -07:00
calzoneman 2fe646ec03 Minor cleanup 2015-10-04 23:21:53 -07:00
calzoneman bed7e65fc0 channel_data value should be a mediumtext 2015-10-01 22:13:16 -07:00
calzoneman 56a2a52bdd Fixes 2015-10-01 22:02:59 -07:00
calzoneman 0e66875d27 Add workaround for migrator error 2015-09-30 22:12:43 -07:00
calzoneman 9c5ada6134 Add config key for selecting storage mode 2015-09-30 21:55:45 -07:00
calzoneman 27b501e655 Add /sioconfig.json 2015-09-30 18:36:50 -07:00
calzoneman a16f885fbd Fix custom embed invalid tag message 2015-09-28 17:31:37 -07:00
calzoneman e91635b6f9 Implement migrator 2015-09-27 11:07:57 -07:00
calzoneman 22a4115217 webserver: update matcher for HTTP 416 errors 2015-09-27 09:33:42 -07:00
calzoneman c5e73e156a channel/chat: don't allow users to unmute themselves 2015-09-26 19:54:20 -07:00
calzoneman 10dbbcd3ff Fixes; initial migrator work 2015-09-26 15:33:13 -07:00
calzoneman 4bdd7a1e3b Add DatabaseStore 2015-09-26 14:21:42 -07:00
calzoneman 1ad41d7e58 Remove debug override 2015-09-24 23:50:50 -07:00
calzoneman 20dc871303 Use create-error for better error creation 2015-09-24 23:36:05 -07:00
calzoneman 5ec9c2b029 Start refactoring channel storage 2015-09-23 21:56:04 -07:00
calzoneman 0109a87e55 package: build with babel for ES2015 support
* Rename lib/ -> src/
* Add `postinstall` npm target for compiling src files to lib
* Add `build-watch` npm target for development with babel --watch
* Add `lib/` to .gitignore
* Add `source-map-support` module for babel-generated sourcemaps
2015-09-23 19:27:04 -07:00