Fix: don't install duplicate styles on USO
This commit is contained in:
parent
8906cbbb1a
commit
a194f7eb26
|
@ -130,8 +130,18 @@
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
onClick.processing = true;
|
onClick.processing = true;
|
||||||
(event.type.includes('Update') ? onUpdate() : onInstall())
|
doInstall()
|
||||||
.then(done, done);
|
.then(() => {
|
||||||
|
if (!event.type.includes('Update')) {
|
||||||
|
// FIXME: sometimes the button is broken i.e. the button sends
|
||||||
|
// 'install' instead of 'update' event while the style is already
|
||||||
|
// install.
|
||||||
|
// This triggers an incorrect install count but we don't really care.
|
||||||
|
return getResource(getMeta('stylish-install-ping-url-chrome'));
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(console.error)
|
||||||
|
.then(done);
|
||||||
function done() {
|
function done() {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
onClick.processing = false;
|
onClick.processing = false;
|
||||||
|
@ -139,26 +149,26 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function doInstall() {
|
||||||
function onInstall() {
|
let oldStyle;
|
||||||
return getResource(getMeta('stylish-description'))
|
return API.findStyle({
|
||||||
.then(name => saveStyleCode('styleInstall', name))
|
|
||||||
.then(() => getResource(getMeta('stylish-install-ping-url-chrome')));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function onUpdate() {
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
API.findStyle({
|
|
||||||
md5Url: getMeta('stylish-md5-url') || location.href
|
md5Url: getMeta('stylish-md5-url') || location.href
|
||||||
}, true).then(style => {
|
}, true)
|
||||||
saveStyleCode('styleUpdate', style.name, {id: style.id})
|
.then(_oldStyle => {
|
||||||
.then(resolve, reject);
|
oldStyle = _oldStyle;
|
||||||
});
|
return oldStyle ?
|
||||||
|
oldStyle.name :
|
||||||
|
getResource(getMeta('stylish-description'));
|
||||||
|
})
|
||||||
|
.then(name => {
|
||||||
|
const props = {};
|
||||||
|
if (oldStyle) {
|
||||||
|
props.id = oldStyle.id;
|
||||||
|
}
|
||||||
|
return saveStyleCode(oldStyle ? 'styleUpdate' : 'styleInstall', name, props);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function saveStyleCode(message, name, addProps = {}) {
|
function saveStyleCode(message, name, addProps = {}) {
|
||||||
const isNew = message === 'styleInstall';
|
const isNew = message === 'styleInstall';
|
||||||
const needsConfirmation = isNew || !saveStyleCode.confirmed;
|
const needsConfirmation = isNew || !saveStyleCode.confirmed;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user