Add jitter and retry logic to google drive userscript lookups
This commit is contained in:
parent
d0d2002a5f
commit
3c11ac6cf5
5 changed files with 84 additions and 47 deletions
|
|
@ -6,18 +6,30 @@ window.GoogleDrivePlayer = class GoogleDrivePlayer extends VideoJSPlayer
|
|||
super(data)
|
||||
|
||||
load: (data) ->
|
||||
window.maybePromptToUpgradeUserscript()
|
||||
if not window.hasDriveUserscript and not data.meta.direct
|
||||
window.promptToInstallDriveUserscript()
|
||||
else if window.hasDriveUserscript
|
||||
window.maybePromptToUpgradeUserscript()
|
||||
if typeof window.getGoogleDriveMetadata is 'function'
|
||||
window.getGoogleDriveMetadata(data.id, (error, metadata) =>
|
||||
if error
|
||||
console.error(error)
|
||||
alertBox = window.document.createElement('div')
|
||||
alertBox.className = 'alert alert-danger'
|
||||
alertBox.textContent = error
|
||||
document.getElementById('ytapiplayer').appendChild(alertBox)
|
||||
else
|
||||
data.meta.direct = metadata.videoMap
|
||||
super(data)
|
||||
)
|
||||
setTimeout(=>
|
||||
backoffRetry((cb) ->
|
||||
window.getGoogleDriveMetadata(data.id, cb)
|
||||
, (error, metadata) =>
|
||||
if error
|
||||
console.error(error)
|
||||
alertBox = window.document.createElement('div')
|
||||
alertBox.className = 'alert alert-danger'
|
||||
alertBox.textContent = error
|
||||
document.getElementById('ytapiplayer').appendChild(alertBox)
|
||||
else
|
||||
data.meta.direct = metadata.videoMap
|
||||
super(data)
|
||||
, {
|
||||
maxTries: 3
|
||||
delay: 1000
|
||||
factor: 1.2
|
||||
jitter: 500
|
||||
})
|
||||
, Math.random() * 1000)
|
||||
else
|
||||
super(data)
|
||||
|
|
|
|||
|
|
@ -31,14 +31,6 @@ window.loadMediaPlayer = (data) ->
|
|||
window.PLAYER = new VideoJSPlayer(data)
|
||||
catch e
|
||||
console.error e
|
||||
else if data.type is 'gd'
|
||||
try
|
||||
if data.meta.html5hack or window.hasDriveUserscript
|
||||
window.PLAYER = new GoogleDrivePlayer(data)
|
||||
else
|
||||
window.PLAYER = new GoogleDriveYouTubePlayer(data)
|
||||
catch e
|
||||
console.error e
|
||||
else if data.type of TYPE_MAP
|
||||
try
|
||||
window.PLAYER = TYPE_MAP[data.type](data)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue