Calvin Montgomery
8b7cdfd4c3
soundcloud: fix getVolume to match setVolume
2017-08-07 21:08:04 -07:00
Calvin Montgomery
dac2e41488
Fix and enable efficient emotes by default
2017-08-05 12:22:58 -07:00
Calvin Montgomery
0118a6fb15
Refactor socket.io controller
2017-08-01 19:29:11 -07:00
Calvin Montgomery
7bd9934e58
Minor cleanup of no longer used things
2017-07-26 20:32:51 -07:00
Calvin Montgomery
f593f7283c
Replace alert() with modal for ACP password reset
...
Some browsers (e.g. Chrome) don't allow copying text out of alert()
dialogs.
2017-07-24 22:35:15 -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
964feb7243
Add id field to announcements and hide previously closed announcements
2017-07-22 10:35:45 -07:00
Calvin Montgomery
e780e7dadb
Deprecate stats table in favor of prometheus integration
2017-07-17 21:58:58 -07:00
Calvin Montgomery
dd770137e5
Fix error for rtmp player
2017-07-15 20:17:13 -07:00
Calvin Montgomery
d9813e6244
Remove legacy tab complete (no longer used)
2017-07-15 14:48:53 -07:00
Calvin Montgomery
c152a19624
Ignore library cached metadata when queueing
...
The use of the channel library as a cache for metadata to avoid
re-requesting metadata for known media is an optimization that dates
back to 1.0. However, it doesn't have any TTL, is prone to bugs, and is
of dubious value.
This commit ignores the results of the library check when queueing a new
video, opting to always re-request the metadata. This fixes a few bugs:
* Google Drive metadata being lost when storing in library
* Streamable metadata being lost when storing in library
* Videos in the channel library that are now unavailable on their
source website being queueable and then failing to play (e.g. deleted
YouTube videos).
In its place, a small fail-open check is left behind to emit metric
counters on how many queues would have been cache-hits, to provide
insight into whether a proper caching solution (i.e. one not tacked on
top of the library) would be worth pursuing or not. This will be
removed eventually.
2017-07-15 14:41:37 -07:00
Calvin Montgomery
30a5657d62
soundcloud: fix volume issue
...
It took them 4 years, but they finally did actually make the player
accept volume in the range 0-100 like their documentation suggests.
*slow clap*
2017-07-10 21:38:27 -07:00
Calvin Montgomery
5500054b84
Add resolution switcher plugin for video.js
...
Allows switching resolutions via the video.js UI. Also added support on
the player side for 540p, 1440p, and 2160p videos, although the metadata
extractors have not been updated to provide these sources yet.
2017-07-01 16:54:19 -07:00
Xaekai
18bf1b946b
Minor fixes to afk stuff.
2017-06-29 19:04:49 -07:00
Calvin Montgomery
33f632036e
Merge pull request #684 from Xaekai/afk.meta
...
Single source of truth for AFK
2017-06-16 21:42:23 -07:00
Xaekai
2dc6504a77
Use a consistent pattern.
2017-06-16 21:37:30 -07:00
Xaekai
6d4558c978
Allow channel path to be customizable
...
We now allow server operators to customize the /r/ part of the channel links
The new config option in the template is commented and the config module validates and will terminate with status 78 if an improper value is used.
We've also dropped some old cruft and uses a more elegant method to assign CHANNEL.name
Resolves #668
2017-06-16 20:09:36 -07:00
Xaekai
f89832a6d1
Gracefully allow script authors time to update their code
2017-06-15 22:09:09 -07:00
Calvin Montgomery
e9c519c6e2
Add twitch clip support ( #659 )
2017-05-27 11:49:43 -07:00
Xaekai
5163c2acb1
Glory to the dark lord
2017-05-25 08:04:19 -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
02587dbb5c
Merge pull request #664 from Xaekai/emote.rename
...
Emote renaming
2017-05-18 22:02:50 -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
929e1b2c69
Add support for embedded VidMe URLs
2017-05-14 19:21:01 -07:00
Xaekai
8b95b9fc41
Fix UStream URL Generation
2017-05-14 04:02:32 -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
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
0ce6fbba20
Fix an issue with playlist item matching
2017-03-26 11:04:02 -07:00
Calvin Montgomery
9dc82ad444
Enforce stricter validation on polls
2017-03-20 21:37:32 -07:00
Calvin Montgomery
4701e767b6
Another fix for the new emote code
2017-03-03 23:59:07 -08:00
Calvin Montgomery
a56f0d5b10
Adjust google drive userscript prompt
2017-03-03 23:39:38 -08:00
Calvin Montgomery
6672f5f75e
Minor fix to new emote method
2017-03-02 18:53:34 -08:00
Calvin Montgomery
70be35e3fa
Experimental ustream fix
2017-03-02 18:47:47 -08:00
Calvin Montgomery
20326194f7
Add execEmotesEfficient behind feature flag
...
For #645 . Disabled by default, I'll selectively enable it to be sure it
works and then remove the old implementation.
2017-03-01 21:16:55 -08:00
Calvin Montgomery
a80512aa60
Fix #646
2017-02-23 20:10:57 -08:00
Calvin Montgomery
97de993055
Rename shit to avoid breaking backwards compat of currenttitle
2017-01-23 22:00:18 -08:00
Calvin Montgomery
d7c3edfac5
Fix for video resizing
2017-01-23 21:56:11 -08:00
Calvin Montgomery
2c57719318
Support changing the ratio of video:chat width
2017-01-23 21:47:21 -08:00
Calvin Montgomery
b0ff4d5ef0
Make delete from channel library a configurable permission
2017-01-23 21:16:39 -08:00
Calvin Montgomery
27e168ba8b
Integrate new tab completion methods
...
There is now an option to choose which tab completion method to use.
Also, emotes can be tab completed.
2017-01-10 22:26:46 -08:00
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