Commit graph

1056 commits

Author SHA1 Message Date
Calvin Montgomery e1ad7c63af Clarify custom embed error to remove the clause about switching to plain HTTP 2017-01-09 23:47:11 -08:00
Calvin Montgomery ee8cf35cdf Add checks for a couple JSPREF edge cases 2017-01-09 21:02:42 -08:00
Calvin Montgomery 5321996c64 Implement tab cycle style completion (not used anywhere yet) 2017-01-07 10:55:59 -08:00
Calvin Montgomery dfdc07cbfa Start working on better tab completion
Code is not used anywhere yet, but the end goal is:
* Replace the bash-style algorithm with a less kludgy one
* Add the ability to customize tab completion method (will also
  include default zsh-style completion)
* Abstract tab completion so it can be shared for chat and emote names
  as available options
2017-01-06 20:10:33 -08:00
Calvin Montgomery e2abb90d14 Add HTTPS check for ffmpeg and custom embeds 2017-01-05 20:58:07 -08:00
Calvin Montgomery 5f4e9076df Fix ustream to be https 2017-01-05 20:31:20 -08:00
Calvin Montgomery d21943ecc7 Whitelist m4a/aac for ffmpeg 2016-12-17 19:53:17 -08:00
Calvin Montgomery 453ed607ba [http deprecation] enforce HTTPS for externalcss URLs 2016-12-10 23:23:57 -08:00
Calvin Montgomery afa18c4749 Fix Google Drive URL 2016-10-20 19:07:03 -07:00
Calvin Montgomery 3c11ac6cf5 Add jitter and retry logic to google drive userscript lookups 2016-10-08 10:33:18 -07:00
Calvin Montgomery d0d2002a5f Fix some drive userscript issues 2016-10-07 19:55:41 -07:00
Calvin Montgomery b4b23f748f Change Hitbox player to HTTPS (#627) 2016-09-19 20:45:21 -07:00
Calvin Montgomery f62d9bc271 Add twitch vod support 2016-09-04 18:53:38 -07:00
Calvin Montgomery d821fc6ccd Replace Twitch.TV player
Replaced the flash player with their HTML5 API.  This also lays the
groundwork for VOD playback.
2016-08-24 20:21:49 -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
Calvin Montgomery 578d3fbb23 Add workaround for GM sandbox and refactor userscript a bit 2016-08-20 10:59:20 -07:00
Calvin Montgomery ba9fbea1a1 Minor fixes/cleanup 2016-08-15 21:09:43 -07:00
Calvin Montgomery 4feee02e33 Add initial userscript 2016-08-15 21:00:56 -07:00
calzoneman 6ebd4af490 Add video.js source link fallback 2016-08-11 21:07: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 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 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 88c42af139 Add streamable.com support (#585) 2016-08-02 22:35:00 -07:00
Xaekai 285dab9ed7 Prevent rendering of <iframes> and <objects> in the error message when attempting to queue them as supported host links instead of custom embeds.
I thought about just moving the parse failure message handling to queueMessage, but that quickly turned into a minefield of pain. This gets the job done for now.
2016-07-22 19:22:15 -07:00
calzoneman 6e416fea8a Add a hack to detect distrust of Let's Encrypt
Many older devices do not support the Let's Encrypt CA, for various
reasons.  This causes connection issues for sites using Let's Encrypt to
support HTTPS connections.  This commit adds a hack that can be enabled
with a switch in callbacks.js to try to detect when the user's browser
does not trust the certificate and permit the user to connect to an
insecure endpoint instead.

Unfortunately, the AJAX API does not allow to distinguish between *why*
a request fails, so the best we can do is detect that the HTTPS request
failed, try to make a request over plain HTTP, and if it works, assume
the HTTPS request failed due to a certificate error.  It's not 100%
foolproof since the HTTPS endpoint could just be down for some reason,
but it should work well enough in most cases.

Closes #602
2016-07-17 16:30:35 -07:00
Calvin Montgomery aaa21aad05 Merge pull request #598 from Xaekai/imagestrip
Image strip option
2016-07-14 23:44:49 -07:00
Xaekai aded7b1f38 Allow users to strip images from chat. 2016-07-14 23:37:29 -07:00
Calvin Montgomery 31a392cea9 Merge pull request #599 from calzoneman/improve-cs-emotelist
Greatly improve performance of channel settings emote list
2016-07-14 23:26:30 -07:00
calzoneman 29a4834baa Add a signature to announcements
The `from` field has existed for ages, but was never actually displayed.
Displaying it to users reduces confusion about who is making the
announcement.
2016-07-14 23:25:17 -07:00
calzoneman d01d558ed6 Fill in incomplete CSEmoteList changes 2016-07-12 23:04:07 -07:00
calzoneman ce260e0f5c Greatly improve performance of channel settings emote list
The channel settings emote list is now paginated and leverages the same
basic code as the emote browser, but with a different renderer.  Fixes
 #594 and kills an ugly function.
2016-07-11 23:55:07 -07:00
Xaekai b2b034d9df Make modflair setting persistent from button too. 2016-07-11 22:14:26 -07:00
Xaekai 5eebd88e13 Move ACP nav entry to templating
Closes #516
2016-07-10 23:23:46 -07:00
Xaekai aa6066dfd5 Reduce the number of places the default theme is hardcoded from 6 to 1. 2016-07-08 19:01:31 -07:00
Xaekai 0aa73a4b14 Add missing formatter entry for vid.me 2016-07-07 23:32:09 -07:00
Xaekai 5896a1c0eb Add timestamps to polls.
Closes #562
2016-07-07 22:56:06 -07:00
calzoneman 6f56862307 Add vidme support (#568) 2016-06-25 17:09:48 -07:00
calzoneman 5b9948f709 Omit the connection warning if the socket connected at least once before 2016-06-08 22:58:34 -07:00
calzoneman 6e772c6837 Add partition map reload 2016-06-08 22:54:16 -07:00
calzoneman 7faf2829b2 Improve clientside socket.io connection error reporting 2016-06-07 23:00:50 -07:00
calzoneman 5f773d46c9 Fix poll timestamps with no unit 2016-06-05 23:01:03 -07:00
calzoneman 5a2aa396fe Fix #575 2016-05-25 17:39:22 -07:00
calzoneman beb99c5632 Improve UI for new poll timeout entry
Resolves #565
2016-05-21 16:52:48 -07:00
calzoneman 0922ce8e66 Remove dead client code 2016-05-21 16:24:41 -07:00
calzoneman 7e623daebb Fix #573 2016-05-21 16:18:52 -07:00
calzoneman a00820a4c6 Fix queue progress bar for youtube playlists 2016-05-21 16:13:58 -07:00
calzoneman 75245e4d98 Include video ID in the progress bar to prevent false clears 2016-05-19 21:31:10 -07:00
calzoneman 8ed50d0b08 Add progress bar to the queue 2016-05-19 21:24:06 -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 59c7571ad5 Fix emote click-to-insert behavior 2016-05-04 20:52:55 -07:00
calzoneman 72bd3e4c98 Add localStorage flag for connecting to alt server list 2016-04-26 21:57:11 -07:00
calzoneman d59daab2ae Make EmoteList self-contained instead of referencing globals 2016-03-29 23:31:02 -07:00
calzoneman 4e011c0d26 Change modflair label to "Name Color"
Also combined adminflair and modflair into one button (the button has 2
states if you're a moderator, or 3 states if you're a site
administrator).  Resolves #517
2016-03-29 22:30:16 -07:00
calzoneman efdab32aa8 soundcloud: fix volume preservation
Soundcloud requires rebinding the READY event when a new track is loaded
in order to set the volume.
2016-03-26 11:25:04 -07:00
calzoneman c5c40a0386 Address #560 by adding a 'Volume' label 2016-03-23 22:45:54 -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 d913f02657 player: call videojs.destroy() when transitioning 2016-03-02 19:31:29 -08:00
calzoneman e07cc0f5aa Remove unused rtmpEventHandler 2016-03-02 19:19:47 -08:00
calzoneman e88031f4c5 Fix rtmp->rtmp transition 2016-03-02 19:18:33 -08:00
XCanG e2e864e93b Fixed profile image
See why: http://hnng.moe/f/8Q4
Now profile-image never be stretched.
2016-02-28 18:38:41 +05:00
calzoneman 908377b20c Set allowfullscreen for iframe embeds 2016-02-21 21:04:35 -08:00
calzoneman 2eb17f4c32 Fix MIME mapping for ogg/vorbis -> audio/ogg 2016-02-09 19:44:07 -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 865a7453d9 Undo HD layout before applying synchtube, fluid (#549) 2016-01-03 22:53:29 -08:00
calzoneman 04ffda7a20 Fix race condition in Chrome (#547)
When the changeMedia frame loads a new Google Drive video, @yt is still
set from before and moreover @yt.ready is still true, so calling play()
can result in a TypeError if the new embed hasn't loaded yet (this
seemed to happen consistently in Chrome and I was unable to make it
happen in Firefox).
2015-12-21 17:23:48 -08:00
calzoneman 5a2ef2d24d Minor fixes for queueWarn 2015-12-20 22:35:24 -08:00
calzoneman 176d4cb06f Show custom title UI for fi: override (#523) 2015-12-13 11:18:46 -08:00
calzoneman 432ee7bc30 Add warning for inline CSS too large (fixes #538) 2015-12-12 16:49:40 -08:00
calzoneman 11d4c4ca62 Reject blank emote names and images 2015-12-05 18:52:39 -08:00
calzoneman 889fb6595f Add buffer zone to consider scrolling 'caught up' 2015-12-05 18:05:23 -08:00
calzoneman b0d5e92350 Fix autoscrolling changes 2015-12-05 17:57:33 -08:00
calzoneman 3c5d36919b Fix positioning and background color of new message indicator 2015-11-29 10:29:56 -08:00
calzoneman 23f39ab2f5 Improve chat autoscroll behavior
The previous behavior (don't autoscroll if the mouse is over the chat
area) was not intuitive and caused problems for people in chat only
mode, which led to a lot of people assuming that it was a glitch.

This change introduces the following behavior:

  * Hovering over chat no longer affects autoscroll.
  * Scrolling up in chat turns off autoscroll.
  * Scrolling to the bottom of the chatbox resumes autoscroll.
  * If a new message is added while autoscroll is off, a "New Messages
    Below" indicator is added to the bottom of the chatbox.
2015-11-29 09:49:21 -08:00
calzoneman 5c50e93458 Use VideoJS for RTMP (#532) 2015-11-08 19:51:17 -08:00
calzoneman f9e1d329e4 Remove reference to IO_URL in error handler
Referenced in #527
2015-11-06 20:03:01 -08:00
calzoneman 5ead24e45e Merge branch '3.0' into web-refactoring 2015-11-02 21:07:50 -08:00
calzoneman 44745d86ac Fix for Wii U browser
Apparently it doesn't send the login cookie if you explicitly set the
socket.io transports to prefer websockets.  Magic.
2015-10-29 20:50:10 -07:00
calzoneman 26e8660af4 Change /logout from GET to POST (#515) 2015-10-26 23:21:09 -07:00
calzoneman 566e932e7e Reset LASTCHAT when chat is cleared 2015-10-25 17:31:04 -07:00
calzoneman 21c3a1b3cd API changes, add documentation 2015-10-25 17:20:39 -07: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 dacda65961 Prevent unnecessary duplicate profile boxes 2015-10-19 20:28:33 -07:00
calzoneman 6ed7ca8dbb Upgrade to video.js 5.0 2015-10-17 18:45:13 -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 81cbfc0639 Merge branch '3.0' into channel-store 2015-09-30 21:58:03 -07:00
calzoneman 7875dbdf4a Handle 'best' quality preference in VideoJSPlayer 2015-09-30 18:26:23 -07:00
calzoneman b2a4afd9ff Merge www/js/player.js from gdrive-youtube 2015-09-26 20:00:07 -07:00
calzoneman 5ec9c2b029 Start refactoring channel storage 2015-09-23 21:56:04 -07:00
calzoneman 3356a55fbd Fix modal issue 2015-09-16 20:20:51 -07:00
calzoneman c81ae989fd Add auth_timeout parameter 2015-09-16 00:04:34 -07:00
calzoneman bfe36e8150 Hack YouTube flash player for Google Drive 2015-09-15 23:32:01 -07:00
calzoneman de02cdbeff Intelligently split link lists to allow URLs with commas 2015-08-19 23:27:05 -07:00
calzoneman 6f7b34f644 Minor fixes to source quality sorting 2015-08-03 19:02:56 -07:00
Calvin Montgomery eb02ad0836 Merge pull request #499 from calzoneman/gdrive-captions
Support captions/subtitles for Google Drive videos
2015-07-27 17:42:32 -07:00
calzoneman d86c62664c Fixes for Chrome 2015-07-26 13:29:06 -07:00
calzoneman f12397db23 Minor fixes for Google Drive subtitles 2015-07-26 12:28:43 -07:00
calzoneman 523ebf4aea Fix video not being restored when getplaylist modal is closed 2015-07-26 11:41:54 -07:00
calzoneman 4a0cbce575 Use lang_original if subtitle name is empty 2015-07-25 11:46:18 -07:00
calzoneman 33e7f81fa7 Wire up google drive subtitles 2015-07-25 01:19:32 -07:00
Calvin Montgomery dda5077727 Merge pull request #498 from calzoneman/comma-multi-queue
Add comma-separated queueing for multiple items
2015-07-21 21:46:28 -07:00
calzoneman 06347d6c25 Fix hidePlayer() 2015-07-16 21:43:21 -07:00
calzoneman 0044057287 Fix single-item playlist rendering glitch on Firefox 2015-07-16 21:28:11 -07:00
calzoneman d76af73286 Add comma-separated queueing for multiple items 2015-07-16 19:14:55 -07:00
calzoneman 7e75611e7f Fix fullscreen CSS for webkit browsers 2015-07-11 22:10:59 -07:00
Calvin Montgomery 6e7225aa0d Change mediaurl keydown to keyup so that the Title box shows correctly 2015-07-09 21:45:41 -07:00
calzoneman bba6b29483 Fix ustream embeds 2015-07-07 19:30:39 -07:00
Calvin Montgomery c0f76bcf00 Add fullscreen button 2015-07-06 17:35:04 -07:00
calzoneman 70be8a6713 Resolve merge conflict 2015-07-06 11:28:18 -07:00
calzoneman 2b6d980aeb Remove redundancy 2015-07-06 11:23:58 -07:00
calzoneman e40db5f27e Fix mediaquery for contentType 2015-07-06 11:21:52 -07:00
calzoneman e3d12007b3 Fix css/js textboxes on channelCSSJS frame 2015-07-05 17:52:51 -07:00
Calvin Montgomery 44f1091952 Remove redundancy by extending EmbedPlayer for Twitch 2015-07-05 14:04:21 -07:00
Calvin Montgomery aad8eef52b Add LIVESTREAM_CHROMELESS flag 2015-07-05 14:00:59 -07:00
Calvin Montgomery 9f030376b5 Fix VideoJS volume 2015-07-05 13:50:34 -07:00
Calvin Montgomery 62ed922c73 Fix leader 2015-07-05 13:29:06 -07:00
calzoneman 35500822d2 Fixes 2015-07-03 11:24:21 -07:00
calzoneman 9db9856a4e Fix stuck loading spinner on IE 2015-07-01 23:59:21 -07:00
calzoneman c422fa65fc Add fileplayer 2015-07-01 09:38:01 -07:00
calzoneman b34ea01c3d Changes to how custom embeds work 2015-06-29 18:32:18 -07:00
calzoneman 7fee1414e2 Use VideoJSPlayer for vimeo workaround 2015-06-28 09:42:21 -07:00
calzoneman b34f972629 Add imgur and ustream 2015-06-21 10:39:16 -04:00
calzoneman 8dd3280305 Add hitbox and update mixed content errors 2015-06-21 10:27:51 -04:00
calzoneman b279a41122 Add RTMP player 2015-06-19 22:12:48 -04:00
calzoneman f43e46c716 Fix loading no_emotes setting 2015-06-19 14:49:49 -04:00
calzoneman 01fbd3c54e Work on custom embeds 2015-06-18 18:46:33 -04:00
calzoneman 60743bd2ea Add twitch player 2015-06-16 16:44:14 -04:00
calzoneman cf5756227d Add livestream.com player 2015-06-16 12:50:17 -04:00
calzoneman 480497bea4 Initial soundcloud implementation 2015-06-16 07:39:39 -04:00
calzoneman d9f06a50de Fix 484 2015-06-04 00:57:51 -04:00
calzoneman f94c8bc8f1 Replace &nbsp; with CSS margin 2015-05-22 10:29:24 -04:00
Anthony Parsons 35b2920c52
Fix a typo 2015-05-21 17:48:00 +01:00
calzoneman ce8ac4591e Use VideoJS for google+ 2015-05-15 01:19:08 -05:00
calzoneman fe9ebfa6b1 Start working on VideoJS for Google Drive 2015-05-15 00:03:05 -05:00
calzoneman 7bc247ede2 Fix 'remove video' option 2015-05-14 13:14:45 -05:00
calzoneman 8b69485448 Show emote list button in chat only 2015-05-14 11:42:26 -05:00
calzoneman 86bd20d5cc Minor fix for emote insertion 2015-05-13 12:19:03 -05:00
calzoneman 8927613da7 Add emote search, sort toggle 2015-05-13 12:17:32 -05:00
calzoneman d3e2433ee6 Fix emote background on light themes 2015-05-12 18:24:03 -05:00
calzoneman 691ec3055c Fix emote insertion behavior 2015-05-12 13:53:19 -05:00
calzoneman 389dd0d5ab Initial emote list implementation 2015-05-12 13:50:59 -05:00
Xaekai 2dd1db166a Fix annoyance: Clicking Remove video scrolls to top 2015-05-06 12:14:56 -07:00
calzoneman daf2463a6a Start working on Dailymotion 2015-05-05 15:06:37 -05:00
calzoneman a291836a99 Change USEROPTS.default_quality values 2015-05-02 17:55:00 -05:00