fixes/tweaks
This commit is contained in:
parent
c89864490c
commit
0ac8330498
|
@ -20,6 +20,7 @@
|
||||||
const BUSY_DELAY = .5e3;
|
const BUSY_DELAY = .5e3;
|
||||||
const USO_AUTO_PIC_SUFFIX = '-after.png';
|
const USO_AUTO_PIC_SUFFIX = '-after.png';
|
||||||
const BLANK_PIXEL = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';
|
const BLANK_PIXEL = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';
|
||||||
|
const RX_IMAGE_URL = /\.(jpe?g|webp|avif|png|gif)([#?].*)?$/i;
|
||||||
const dom = {};
|
const dom = {};
|
||||||
/**
|
/**
|
||||||
* @typedef IndexEntry
|
* @typedef IndexEntry
|
||||||
|
@ -34,7 +35,7 @@
|
||||||
* @prop {Number} ai - authorId
|
* @prop {Number} ai - authorId
|
||||||
* @prop {string} an - authorName
|
* @prop {string} an - authorName
|
||||||
* @prop {string} sn - screenshotName
|
* @prop {string} sn - screenshotName
|
||||||
* @prop {boolean} sa - screenshotArchivedis
|
* @prop {boolean} sa - screenshotArchived
|
||||||
*/
|
*/
|
||||||
/** @type IndexEntry[] */
|
/** @type IndexEntry[] */
|
||||||
let results;
|
let results;
|
||||||
|
@ -96,7 +97,6 @@
|
||||||
}
|
}
|
||||||
ready = ready.then(start);
|
ready = ready.then(start);
|
||||||
};
|
};
|
||||||
|
|
||||||
$('#search-order').value = order;
|
$('#search-order').value = order;
|
||||||
$('#search-order').onchange = function () {
|
$('#search-order').onchange = function () {
|
||||||
order = this.value;
|
order = this.value;
|
||||||
|
@ -141,15 +141,11 @@
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
function calcId(style) {
|
|
||||||
return calcUsoId(style) || calcUswId(style);
|
|
||||||
}
|
|
||||||
|
|
||||||
window.on('styleAdded', async ({detail: {style}}) => {
|
window.on('styleAdded', async ({detail: {style}}) => {
|
||||||
restoreScrollPosition();
|
restoreScrollPosition();
|
||||||
const supportedId = calcId(style) || calcId(await API.styles.get(style.id));
|
const id = calcId(style) || calcId(await API.styles.get(style.id));
|
||||||
if (supportedId && results.find(r => r.id === supportedId)) {
|
if (id && results.find(r => r.id === id)) {
|
||||||
renderActionButtons(supportedId, style.id);
|
renderActionButtons(id, style.id);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -191,14 +187,14 @@
|
||||||
for (let retry = 0; !results.length && retry <= 2; retry++) {
|
for (let retry = 0; !results.length && retry <= 2; retry++) {
|
||||||
results = await search({retry});
|
results = await search({retry});
|
||||||
}
|
}
|
||||||
if (!results.length && !$('#search-query').value) {
|
if (!results.length) {
|
||||||
const installedStyles = await API.styles.getAll();
|
const installedStyles = await API.styles.getAll();
|
||||||
const allSupportedIds = new Set(installedStyles.map(calcUsoId || calcUswId));
|
const allSupportedIds = new Set(installedStyles.map(calcUsoId || calcUswId));
|
||||||
results = results.filter(r => !allSupportedIds.has(r.i));
|
results = results.filter(r => !allSupportedIds.has(r.i));
|
||||||
}
|
}
|
||||||
render();
|
render();
|
||||||
(results.length ? show : hide)(dom.list);
|
(results.length ? show : hide)(dom.list);
|
||||||
if (!results.length) {
|
if (!results.length && !$('#search-query').value) {
|
||||||
error(t('searchResultNoneFound'));
|
error(t('searchResultNoneFound'));
|
||||||
}
|
}
|
||||||
} catch (reason) {
|
} catch (reason) {
|
||||||
|
@ -279,6 +275,7 @@
|
||||||
an: author,
|
an: author,
|
||||||
sa: shotArchived,
|
sa: shotArchived,
|
||||||
sn: shotName,
|
sn: shotName,
|
||||||
|
isUsw,
|
||||||
} = entry._result = result;
|
} = entry._result = result;
|
||||||
entry.id = RESULT_ID_PREFIX + id;
|
entry.id = RESULT_ID_PREFIX + id;
|
||||||
// title
|
// title
|
||||||
|
@ -288,19 +285,20 @@
|
||||||
});
|
});
|
||||||
$('.search-result-title span', entry).textContent =
|
$('.search-result-title span', entry).textContent =
|
||||||
t.breakWord(name.length < 300 ? name : name.slice(0, 300) + '...');
|
t.breakWord(name.length < 300 ? name : name.slice(0, 300) + '...');
|
||||||
|
// screenshot
|
||||||
// Note to Tophf, we send a direct image link over shotName, as we are currently not
|
const elShot = $('.search-result-screenshot', entry);
|
||||||
// hosting any images. Which soon will be different.
|
if (isUsw) {
|
||||||
const isDirectImageLink = /(.jpg|.webp|.avif|.jpeg|.png)$/g.test(shotName);
|
elShot.src = /^https?:/i.test(shotName) ? shotName : BLANK_PIXEL;
|
||||||
|
} else {
|
||||||
const auto = URLS.uso + `auto_style_screenshots/${id}${USO_AUTO_PIC_SUFFIX}`;
|
const auto = URLS.uso + `auto_style_screenshots/${id}${USO_AUTO_PIC_SUFFIX}`;
|
||||||
Object.assign($('.search-result-screenshot', entry), {
|
Object.assign(elShot, {
|
||||||
src: isDirectImageLink ? shotName
|
src: shotName && !shotName.endsWith(USO_AUTO_PIC_SUFFIX)
|
||||||
: shotName && !shotName.endsWith(USO_AUTO_PIC_SUFFIX)
|
|
||||||
? `${shotArchived ? URLS.usoArchiveRaw : URLS.uso + 'style_'}screenshots/${shotName}`
|
? `${shotArchived ? URLS.usoArchiveRaw : URLS.uso + 'style_'}screenshots/${shotName}`
|
||||||
: auto,
|
: auto,
|
||||||
_src: auto,
|
_src: auto,
|
||||||
onerror: fixScreenshot,
|
onerror: fixScreenshot,
|
||||||
});
|
});
|
||||||
|
}
|
||||||
// author
|
// author
|
||||||
Object.assign($('[data-type="author"] a', entry), {
|
Object.assign($('[data-type="author"] a', entry), {
|
||||||
textContent: author,
|
textContent: author,
|
||||||
|
@ -545,6 +543,10 @@
|
||||||
return URLS.extractUSwId(installationUrl) || 0;
|
return URLS.extractUSwId(installationUrl) || 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function calcId(style) {
|
||||||
|
return calcUsoId(style) || calcUswId(style);
|
||||||
|
}
|
||||||
|
|
||||||
function calcHaystack(res) {
|
function calcHaystack(res) {
|
||||||
if (!res._nLC) res._nLC = res.n.toLocaleLowerCase();
|
if (!res._nLC) res._nLC = res.n.toLocaleLowerCase();
|
||||||
if (!res._year) res._year = new Date(res.u * 1000).getFullYear();
|
if (!res._year) res._year = new Date(res.u * 1000).getFullYear();
|
||||||
|
|
Loading…
Reference in New Issue
Block a user