update USO-archive urls (#1308)

This commit is contained in:
tophf 2021-08-12 20:35:56 +03:00 committed by GitHub
parent 49af723078
commit 1e5f118d2d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 23 additions and 22 deletions

View File

@ -277,7 +277,7 @@ const updateMan = (() => {
} }
function getDateFromVer(style) { function getDateFromVer(style) {
const m = style.updateUrl.startsWith(URLS.usoArchiveRaw) && const m = URLS.extractUsoArchiveId(style.updateUrl) &&
style.usercssData.version.match(RX_DATE2VER); style.usercssData.version.match(RX_DATE2VER);
if (m) { if (m) {
m[2]--; // month is 0-based in `Date` constructor m[2]--; // month is 0-based in `Date` constructor

View File

@ -35,10 +35,9 @@ bgReady.all.then(() => {
chrome.webRequest.onBeforeSendHeaders.addListener(maybeInstallFromDistro, { chrome.webRequest.onBeforeSendHeaders.addListener(maybeInstallFromDistro, {
urls: [ urls: [
URLS.usoArchiveRaw + 'usercss/*.user.css',
URLS.usw + 'api/style/*.user.css', URLS.usw + 'api/style/*.user.css',
'*://greasyfork.org/scripts/*/code/*.user.css', ...URLS.usoArchiveRaw.map(s => s + 'usercss/*.user.css'),
'*://sleazyfork.org/scripts/*/code/*.user.css', ...['greasy', 'sleazy'].map(s => `*://${s}fork.org/scripts/*/code/*.user.css`),
...[].concat( ...[].concat(
...Object.entries(maybeDistro) ...Object.entries(maybeDistro)
.map(([host, {glob}]) => makeUsercssGlobs(host, glob))), .map(([host, {glob}]) => makeUsercssGlobs(host, glob))),

View File

@ -77,20 +77,23 @@ const URLS = {
uso: 'https://userstyles.org/', uso: 'https://userstyles.org/',
usoJson: 'https://userstyles.org/styles/chrome/', usoJson: 'https://userstyles.org/styles/chrome/',
usoArchive: 'https://33kk.github.io/uso-archive/', usoArchive: 'https://uso.kkx.one/',
usoArchiveRaw: 'https://raw.githubusercontent.com/33kk/uso-archive/flomaster/data/', usoArchiveRaw: [
'https://cdn.jsdelivr.net/gh/33kk/uso-archive@flomaster/data/',
'https://raw.githubusercontent.com/33kk/uso-archive/flomaster/data/',
],
usw: 'https://userstyles.world/', usw: 'https://userstyles.world/',
extractUsoArchiveId: url => extractUsoArchiveId: url =>
url && url &&
url.startsWith(URLS.usoArchiveRaw) && URLS.usoArchiveRaw.some(u => url.startsWith(u)) &&
Number(url.match(/\/(\d+)\.user\.css|$/)[1]), Number(url.match(/\/(\d+)\.user\.css|$/)[1]),
extractUsoArchiveInstallUrl: url => { extractUsoArchiveInstallUrl: url => {
const id = URLS.extractUsoArchiveId(url); const id = URLS.extractUsoArchiveId(url);
return id ? `${URLS.usoArchive}?style=${id}` : ''; return id ? `${URLS.usoArchive}/style/${id}` : '';
}, },
makeUsoArchiveCodeUrl: id => `${URLS.usoArchiveRaw}usercss/${id}.user.css`, makeUsoArchiveCodeUrl: id => `${URLS.usoArchiveRaw[0]}usercss/${id}.user.css`,
extractGreasyForkInstallUrl: url => extractGreasyForkInstallUrl: url =>
/^(https:\/\/(?:greasy|sleazy)fork\.org\/scripts\/\d+)[^/]*\/code\/[^/]*\.user\.css$|$/.exec(url)[1], /^(https:\/\/(?:greasy|sleazy)fork\.org\/scripts\/\d+)[^/]*\/code\/[^/]*\.user\.css$|$/.exec(url)[1],

View File

@ -83,7 +83,7 @@ function createStyleElement({style, name: nameLC}) {
parts.homepage.href = parts.homepage.title = style.url || ''; parts.homepage.href = parts.homepage.title = style.url || '';
parts.infoVer.textContent = ud ? ud.version : ''; parts.infoVer.textContent = ud ? ud.version : '';
parts.infoVer.dataset.value = ud ? ud.version : ''; parts.infoVer.dataset.value = ud ? ud.version : '';
if (`${style.updateUrl}`.startsWith(URLS.usoArchiveRaw)) { if (URLS.extractUsoArchiveId(style.updateUrl)) {
parts.infoVer.dataset.isDate = ''; parts.infoVer.dataset.isDate = '';
} else { } else {
delete parts.infoVer.dataset.isDate; delete parts.infoVer.dataset.isDate;

View File

@ -11,7 +11,7 @@
require(['/popup/search.css']); require(['/popup/search.css']);
const RESULT_ID_PREFIX = 'search-result-'; const RESULT_ID_PREFIX = 'search-result-';
const INDEX_URL = URLS.usoArchiveRaw + 'search-index.json'; const INDEX_URL = URLS.usoArchiveRaw[0] + 'search-index.json';
const USW_INDEX_URL = URLS.usw + 'api/index/uso-format'; const USW_INDEX_URL = URLS.usw + 'api/index/uso-format';
const USW_ICON = $create('img', { const USW_ICON = $create('img', {
src: `${URLS.usw}favicon.ico`, src: `${URLS.usw}favicon.ico`,
@ -275,17 +275,17 @@
u: updateTime, u: updateTime,
w: weeklyInstalls, w: weeklyInstalls,
t: totalInstalls, t: totalInstalls,
ai: authorId,
an: author, an: author,
sa: shotArchived, sa: shotArchived,
sn: shotName, sn: shot,
isUsw, isUsw,
} = entry._result = result; } = entry._result = result;
entry.id = RESULT_ID_PREFIX + id; entry.id = RESULT_ID_PREFIX + id;
// title // title
Object.assign($('.search-result-title', entry), { Object.assign($('.search-result-title', entry), {
onclick: Events.openURLandHide, onclick: Events.openURLandHide,
href: isUsw ? `${URLS.usw}style/${id}` : href: `${isUsw ? URLS.usw : URLS.usoArchive}style/${id}`,
`${URLS.usoArchive}?category=${category}&style=${id}`,
}); });
if (isUsw) $('.search-result-title', entry).prepend(USW_ICON.cloneNode(true)); if (isUsw) $('.search-result-title', entry).prepend(USW_ICON.cloneNode(true));
$('.search-result-title span', entry).textContent = $('.search-result-title span', entry).textContent =
@ -293,26 +293,25 @@
// screenshot // screenshot
const elShot = $('.search-result-screenshot', entry); const elShot = $('.search-result-screenshot', entry);
if (isUsw) { if (isUsw) {
elShot.src = !/^https?:/i.test(shotName) ? BLANK_PIXEL : elShot.src = !/^https?:/i.test(shot) ? BLANK_PIXEL :
imgType !== '.jpg' ? shotName.replace(/\.jpg$/, imgType) : imgType !== '.jpg' ? shot.replace(/\.jpg$/, imgType) :
shotName; shot;
} else { } 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(elShot, { Object.assign(elShot, {
src: shotName && !shotName.endsWith(USO_AUTO_PIC_SUFFIX) src: shot && !shot.endsWith(USO_AUTO_PIC_SUFFIX)
? `${shotArchived ? URLS.usoArchiveRaw : URLS.uso + 'style_'}screenshots/${shotName}` ? `${shotArchived ? URLS.usoArchiveRaw[0] : URLS.uso + 'style_'}screenshots/${shot}`
: auto, : auto,
_src: auto, _src: auto,
onerror: fixScreenshot, onerror: fixScreenshot,
}); });
} }
// author // author
const eAuthor = encodeURIComponent(author);
Object.assign($('[data-type="author"] a', entry), { Object.assign($('[data-type="author"] a', entry), {
textContent: author, textContent: author,
title: author, title: author,
href: isUsw ? `${URLS.usw}user/${eAuthor}` : href: isUsw ? `${URLS.usw}user/${encodeURIComponent(author)}` :
`${URLS.usoArchive}?author=${eAuthor.replace(/%20/g, '+')}`, `${URLS.usoArchive}browse/styles?search=%40${authorId}`,
onclick: Events.openURLandHide, onclick: Events.openURLandHide,
}); });
// rating // rating