mirror of https://github.com/calzoneman/sync.git
Fix some drive userscript issues
This commit is contained in:
parent
7c3f2d0a8b
commit
d0d2002a5f
|
@ -7,7 +7,7 @@
|
|||
// @grant GM_xmlhttpRequest
|
||||
// @connect docs.google.com
|
||||
// @run-at document-end
|
||||
// @version 1.1.0
|
||||
// @version 1.2.0
|
||||
// ==/UserScript==
|
||||
|
||||
try {
|
||||
|
@ -67,18 +67,14 @@ try {
|
|||
});
|
||||
|
||||
if (data.status === 'fail') {
|
||||
error = new Error('Google Docs request failed: ' +
|
||||
'metadata indicated status=fail');
|
||||
error.response = res.responseText;
|
||||
error.reason = 'RESPONSE_STATUS_FAIL';
|
||||
var error = 'Google Docs request failed: ' +
|
||||
unescape(data.reason).replace(/\+/g, ' ');
|
||||
return cb(error);
|
||||
}
|
||||
|
||||
if (!data.fmt_stream_map) {
|
||||
error = new Error('Google Docs request failed: ' +
|
||||
'metadata lookup returned no valid links');
|
||||
error.response = res.responseText;
|
||||
error.reason = 'MISSING_LINKS';
|
||||
var error = 'Google Docs request failed: ' +
|
||||
'metadata lookup returned no valid links';
|
||||
return cb(error);
|
||||
}
|
||||
|
||||
|
@ -96,8 +92,8 @@ try {
|
|||
},
|
||||
|
||||
onerror: function () {
|
||||
var error = new Error('Google Docs request failed: ' +
|
||||
'metadata lookup HTTP request failed');
|
||||
var error = 'Google Docs request failed: ' +
|
||||
'metadata lookup HTTP request failed';
|
||||
error.reason = 'HTTP_ONERROR';
|
||||
return cb(error);
|
||||
}
|
||||
|
@ -205,6 +201,7 @@ try {
|
|||
|
||||
unsafeWindow.console.log('Initialized userscript Google Drive player');
|
||||
unsafeWindow.hasDriveUserscript = true;
|
||||
unsafeWindow.driveUserscriptVersion = '1.2';
|
||||
} catch (error) {
|
||||
unsafeWindow.console.error(error);
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"author": "Calvin Montgomery",
|
||||
"name": "CyTube",
|
||||
"description": "Online media synchronizer and chat",
|
||||
"version": "3.23.2",
|
||||
"version": "3.23.3",
|
||||
"repository": {
|
||||
"url": "http://github.com/calzoneman/sync"
|
||||
},
|
||||
|
|
|
@ -6,13 +6,14 @@ window.GoogleDrivePlayer = class GoogleDrivePlayer extends VideoJSPlayer
|
|||
super(data)
|
||||
|
||||
load: (data) ->
|
||||
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.message
|
||||
alertBox.textContent = error
|
||||
document.getElementById('ytapiplayer').appendChild(alertBox)
|
||||
else
|
||||
data.meta.direct = metadata.videoMap
|
||||
|
|
|
@ -49,7 +49,7 @@ html(lang="en")
|
|||
| Tampermonkey supports many browsers besides Chrome.
|
||||
p.
|
||||
Once you have installed the userscript manager addon for your browser,
|
||||
you can <a href="/js/cytube-google-drive.user.js?v=1.1" target="_blank">
|
||||
you can <a href="/js/cytube-google-drive.user.js" target="_blank">
|
||||
install the userscript</a>. If this link 404s, it means the administrator
|
||||
of this server hasn't generated it yet.
|
||||
p.
|
||||
|
@ -58,17 +58,3 @@ html(lang="en")
|
|||
|
||||
include footer
|
||||
+footer()
|
||||
script(type="text/javascript").
|
||||
function showEmail(btn, email, key) {
|
||||
email = unescape(email);
|
||||
key = unescape(key);
|
||||
var dest = new Array(email.length);
|
||||
for (var i = 0; i < email.length; i++) {
|
||||
dest[i] = String.fromCharCode(email.charCodeAt(i) ^ key.charCodeAt(i % key.length));
|
||||
}
|
||||
email = dest.join("");
|
||||
$("<a/>").attr("href", "mailto:" + email)
|
||||
.text(email)
|
||||
.insertBefore(btn);
|
||||
$(btn).remove();
|
||||
}
|
||||
|
|
|
@ -679,6 +679,7 @@
|
|||
}
|
||||
|
||||
GoogleDrivePlayer.prototype.load = function(data) {
|
||||
window.maybePromptToUpgradeUserscript();
|
||||
if (typeof window.getGoogleDriveMetadata === 'function') {
|
||||
return window.getGoogleDriveMetadata(data.id, (function(_this) {
|
||||
return function(error, metadata) {
|
||||
|
@ -687,7 +688,7 @@
|
|||
console.error(error);
|
||||
alertBox = window.document.createElement('div');
|
||||
alertBox.className = 'alert alert-danger';
|
||||
alertBox.textContent = error.message;
|
||||
alertBox.textContent = error;
|
||||
return document.getElementById('ytapiplayer').appendChild(alertBox);
|
||||
} else {
|
||||
data.meta.direct = metadata.videoMap;
|
||||
|
@ -1019,7 +1020,7 @@
|
|||
};
|
||||
|
||||
TwitchPlayer.prototype.load = function(data) {
|
||||
var error, error1;
|
||||
var error;
|
||||
this.setMediaProperties(data);
|
||||
try {
|
||||
if (data.type === 'tv') {
|
||||
|
@ -1034,7 +1035,7 @@
|
|||
};
|
||||
|
||||
TwitchPlayer.prototype.pause = function() {
|
||||
var error, error1;
|
||||
var error;
|
||||
try {
|
||||
this.twitch.pause();
|
||||
return this.paused = true;
|
||||
|
@ -1045,7 +1046,7 @@
|
|||
};
|
||||
|
||||
TwitchPlayer.prototype.play = function() {
|
||||
var error, error1;
|
||||
var error;
|
||||
try {
|
||||
this.twitch.play();
|
||||
return this.paused = false;
|
||||
|
@ -1056,7 +1057,7 @@
|
|||
};
|
||||
|
||||
TwitchPlayer.prototype.seekTo = function(time) {
|
||||
var error, error1;
|
||||
var error;
|
||||
try {
|
||||
return this.twitch.seek(time);
|
||||
} catch (error1) {
|
||||
|
@ -1066,7 +1067,7 @@
|
|||
};
|
||||
|
||||
TwitchPlayer.prototype.getTime = function(cb) {
|
||||
var error, error1;
|
||||
var error;
|
||||
try {
|
||||
return cb(this.twitch.getCurrentTime());
|
||||
} catch (error1) {
|
||||
|
@ -1076,7 +1077,7 @@
|
|||
};
|
||||
|
||||
TwitchPlayer.prototype.setVolume = function(volume) {
|
||||
var error, error1;
|
||||
var error;
|
||||
try {
|
||||
this.twitch.setVolume(volume);
|
||||
if (volume > 0) {
|
||||
|
@ -1089,7 +1090,7 @@
|
|||
};
|
||||
|
||||
TwitchPlayer.prototype.getVolume = function(cb) {
|
||||
var error, error1;
|
||||
var error;
|
||||
try {
|
||||
if (this.twitch.isPaused()) {
|
||||
return cb(0);
|
||||
|
@ -1513,7 +1514,7 @@
|
|||
};
|
||||
|
||||
window.loadMediaPlayer = function(data) {
|
||||
var e, error, error1, error2, error3, error4;
|
||||
var e, error;
|
||||
try {
|
||||
if (window.PLAYER) {
|
||||
window.PLAYER.destroy();
|
||||
|
@ -1525,8 +1526,8 @@
|
|||
if (data.meta.direct && data.type !== 'gd') {
|
||||
try {
|
||||
return window.PLAYER = new VideoJSPlayer(data);
|
||||
} catch (error2) {
|
||||
e = error2;
|
||||
} catch (error1) {
|
||||
e = error1;
|
||||
return console.error(e);
|
||||
}
|
||||
} else if (data.type === 'gd') {
|
||||
|
@ -1536,15 +1537,15 @@
|
|||
} else {
|
||||
return window.PLAYER = new GoogleDriveYouTubePlayer(data);
|
||||
}
|
||||
} catch (error3) {
|
||||
e = error3;
|
||||
} catch (error1) {
|
||||
e = error1;
|
||||
return console.error(e);
|
||||
}
|
||||
} else if (data.type in TYPE_MAP) {
|
||||
try {
|
||||
return window.PLAYER = TYPE_MAP[data.type](data);
|
||||
} catch (error4) {
|
||||
e = error4;
|
||||
} catch (error1) {
|
||||
e = error1;
|
||||
return console.error(e);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3205,3 +3205,54 @@ function stopQueueSpinner(data) {
|
|||
$("#queueprogress").remove();
|
||||
}
|
||||
}
|
||||
|
||||
function maybePromptToUpgradeUserscript() {
|
||||
if (document.getElementById('prompt-upgrade-drive-userscript')) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!window.hasDriveUserscript) {
|
||||
return;
|
||||
}
|
||||
|
||||
var currentVersion = [1, 2];
|
||||
var userscriptVersion = window.driveUserscriptVersion;
|
||||
if (!userscriptVersion) {
|
||||
userscriptVersion = '1.0';
|
||||
}
|
||||
userscriptVersion = userscriptVersion.split('.').map(function (part) {
|
||||
return parseInt(part, 10);
|
||||
});
|
||||
|
||||
var older = false;
|
||||
for (var i = 0; i < currentVersion.length; i++) {
|
||||
if (userscriptVersion[i] < currentVersion[i]) {
|
||||
older = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!older) {
|
||||
return;
|
||||
}
|
||||
|
||||
var alertBox = document.createElement('div');
|
||||
alertBox.id = 'prompt-upgrade-drive-userscript';
|
||||
alertBox.className = 'alert alert-info'
|
||||
alertBox.innerHTML = 'A newer version of the Google Drive userscript is available.';
|
||||
alertBox.appendChild(document.createElement('br'));
|
||||
var infoLink = document.createElement('a');
|
||||
infoLink.className = 'btn btn-info';
|
||||
infoLink.href = '/google_drive_userscript';
|
||||
infoLink.textContent = 'Click here for installation instructions';
|
||||
infoLink.target = '_blank';
|
||||
alertBox.appendChild(infoLink);
|
||||
|
||||
var closeButton = document.createElement('button');
|
||||
closeButton.className = 'close pull-right';
|
||||
closeButton.innerHTML = '×';
|
||||
closeButton.onclick = function () {
|
||||
alertBox.parentNode.removeChild(alertBox);
|
||||
}
|
||||
alertBox.insertBefore(closeButton, alertBox.firstChild)
|
||||
document.getElementById('videowrap').appendChild(alertBox);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue