fixes/tweaks

This commit is contained in:
tophf 2021-04-08 05:45:26 +03:00 committed by GitHub
parent c89864490c
commit 0ac8330498
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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;
const auto = URLS.uso + `auto_style_screenshots/${id}${USO_AUTO_PIC_SUFFIX}`; } else {
Object.assign($('.search-result-screenshot', entry), { const auto = URLS.uso + `auto_style_screenshots/${id}${USO_AUTO_PIC_SUFFIX}`;
src: isDirectImageLink ? shotName Object.assign(elShot, {
: shotName && !shotName.endsWith(USO_AUTO_PIC_SUFFIX) src: 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();