improved server-whisper, user join/leave messages, layout/UI overhaul

This commit is contained in:
rainbownapkin 2022-07-10 03:31:30 +00:00
parent e7adec32d7
commit 5f97baffc6
23 changed files with 729 additions and 917 deletions

View file

@ -48,5 +48,8 @@ window.Player = class Player
getVolume: (cb) ->
cb(VOLUME)
getRes: (cb) ->
cb();
destroy: ->

View file

@ -36,6 +36,7 @@ window.DailymotionPlayer = class DailymotionPlayer extends Player
@dm.addEventListener('pause', =>
@paused = true
setMini();
if CLIENT.leader
sendVideoUpdate()
else
@ -44,6 +45,7 @@ window.DailymotionPlayer = class DailymotionPlayer extends Player
@dm.addEventListener('playing', =>
@paused = false
setMini();
if CLIENT.leader
sendVideoUpdate()
@ -57,6 +59,19 @@ window.DailymotionPlayer = class DailymotionPlayer extends Player
@unlatch()
)
@dm.addEventListener('timeupdate', =>
setDur();
)
@dm.addEventListener('volumechange', =>
setMini();
)
@player.on('canplay', =>
handleVideoResize()
console.log(@player.children)
)
# Once the video stops, the internal state of the player
# becomes unusable and attempting to load() will corrupt it and
# crash the player with an error. As a shortmedium term
@ -67,6 +82,8 @@ window.DailymotionPlayer = class DailymotionPlayer extends Player
)
@dm.addEventListener('playback_ready', =>
@dmReady = true
handleVideoResize()
if @playbackReadyCb
@playbackReadyCb()
@playbackReadyCb = null
@ -79,10 +96,13 @@ window.DailymotionPlayer = class DailymotionPlayer extends Player
if @dm and @dmReady
@dm.load(data.id)
@dm.seek(data.currentTime)
else if @dm
# TODO: Player::load() needs to be made asynchronous in the future
console.log('Warning: load() called before DM is ready, queueing callback')
@playbackReadyCb = () =>
handleVideoResize()
@dm.load(data.id)
@dm.seek(data.currentTime)
else
@ -127,6 +147,11 @@ window.DailymotionPlayer = class DailymotionPlayer extends Player
else
cb(VOLUME)
getRes: (cb) ->
if @dm and @dmReady
cb([@dm.width, @dm.height])
else
cb()
mapQuality: (quality) ->
switch String(quality)
when '240', '480', '720', '1080' then String(quality)

View file

@ -40,8 +40,6 @@ window.loadMediaPlayer = (data) ->
window.handleMediaUpdate = (data) ->
PLAYER = window.PLAYER
#bodge for fcyp.js layout
#handleWindowResize()
#update airdate
dispSTimes();

View file

@ -141,6 +141,7 @@ window.VideoJSPlayer = class VideoJSPlayer extends Player
@player.on('pause', =>
@paused = true
setMini();
if CLIENT.leader
sendVideoUpdate()
else
@ -150,9 +151,14 @@ window.VideoJSPlayer = class VideoJSPlayer extends Player
@player.on('play', =>
@paused = false
setMini();
if CLIENT.leader
sendVideoUpdate()
)
@player.on('volumechange', =>
setMini();
)
# Workaround for IE-- even after seeking completes, the loading
# spinner remains.
@ -163,6 +169,16 @@ window.VideoJSPlayer = class VideoJSPlayer extends Player
)
@player.on('canplay', =>
handleVideoResize()
console.log(@player.children)
)
@player.on('timeupdate', =>
setDur();
)
# Workaround for Chrome-- it seems that the click bindings for
# the subtitle menu aren't quite set up until after the ready
# event finishes, so set a timeout for 1ms to force this code
@ -241,6 +257,12 @@ window.VideoJSPlayer = class VideoJSPlayer extends Player
else
cb(VOLUME)
getRes: (cb) ->
if @player
cb([@player.videoWidth(), @player.videoHeight()])
else
cb()
destroy: ->
removeOld()
if @player

View file

@ -4,6 +4,8 @@ window.VimeoPlayer = class VimeoPlayer extends Player
return new VimeoPlayer(data)
@load(data)
@resx = 0
@resy = 0
load: (data) ->
@setMediaProperties(data)
@ -31,6 +33,7 @@ window.VimeoPlayer = class VimeoPlayer extends Player
@vimeo.on('pause', =>
@paused = true
setMini();
if CLIENT.leader
sendVideoUpdate()
else
@ -40,6 +43,8 @@ window.VimeoPlayer = class VimeoPlayer extends Player
@vimeo.on('play', =>
@paused = false
setMini();
handleVideoResize()
if CLIENT.leader
sendVideoUpdate()
)
@ -49,8 +54,30 @@ window.VimeoPlayer = class VimeoPlayer extends Player
@unlatch()
)
@vimeo.on('timeupdate', =>
setDur();
)
@vimeo.on('volumechange', =>
setMini();
)
@play()
@setVolume(VOLUME)
@vimeo.getVideoWidth().then((wid) ->
window.PLAYER.resx = wid
).catch((error) ->
console.error('vimeo::getVideoWidth():', error)
)
@vimeo.getVideoHeight().then((hgt) ->
window.PLAYER.resy = hgt
).catch((error) ->
console.error('vimeo::getVideoHeight():', error)
)
)
play: ->
@ -98,3 +125,9 @@ window.VimeoPlayer = class VimeoPlayer extends Player
)
else
cb(VOLUME)
getRes: (cb) ->
if @vimeo
cb([@resx,@resy])
else
cb()