Random improvements to skins database

This commit is contained in:
Jordan Eldredge 2021-08-17 01:30:57 -04:00
parent ec87522c51
commit 7a21513a8d
5 changed files with 38 additions and 2 deletions

View file

@ -341,26 +341,32 @@ test("/stylegan.json", async () => {
Array [
Object {
"fileName": "Zelda_Amp_3.wsz",
"nsfw": false,
"url": "https://cdn.webampskins.org/screenshots/48bbdbbeb03d347e59b1eebda4d352d0.png",
},
Object {
"fileName": "path.wsz",
"nsfw": false,
"url": "https://cdn.webampskins.org/screenshots/a_fake_md5.png",
},
Object {
"fileName": "nsfw.wsz",
"nsfw": true,
"url": "https://cdn.webampskins.org/screenshots/a_nsfw_md5.png",
},
Object {
"fileName": "rejected.wsz",
"nsfw": false,
"url": "https://cdn.webampskins.org/screenshots/a_rejected_md5.png",
},
Object {
"fileName": "tweeted.wsz",
"nsfw": false,
"url": "https://cdn.webampskins.org/screenshots/a_tweeted_md5.png",
},
Object {
"fileName": "approved.wsz",
"nsfw": false,
"url": "https://cdn.webampskins.org/screenshots/an_approved_md5.png",
},
]

View file

@ -153,6 +153,7 @@ async function getSitemapUrls() {
const allowList = [
/https:\/\/skins\.webamp\.org/,
/https:\/\/winamp-skin-museum\.pages\.dev/,
/http:\/\/localhost:3000/,
/netlify.app/,
];

View file

@ -139,6 +139,25 @@ router.get(
})
);
router.get(
"/skins/:md5/metadata",
asyncHandler(async (req, res) => {
const { md5 } = req.params;
const skin = await SkinModel.fromMd5(req.ctx, md5);
if (skin == null) {
req.log(`Details for hash "${md5}" NOT FOUND`);
res.status(404).json();
return;
}
res.json({
md5: skin.getMd5(),
nsfw: await skin.getIsNsfw(),
fileName: await skin.getFileName(),
readme: skin.getReadme(),
});
})
);
router.get(
"/skins/:md5/debug",
asyncHandler(async (req, res) => {

View file

@ -78,26 +78,32 @@ describe("seeded", () => {
Array [
Object {
"fileName": "Zelda_Amp_3.wsz",
"nsfw": false,
"url": "https://cdn.webampskins.org/screenshots/48bbdbbeb03d347e59b1eebda4d352d0.png",
},
Object {
"fileName": "path.wsz",
"nsfw": false,
"url": "https://cdn.webampskins.org/screenshots/a_fake_md5.png",
},
Object {
"fileName": "nsfw.wsz",
"nsfw": true,
"url": "https://cdn.webampskins.org/screenshots/a_nsfw_md5.png",
},
Object {
"fileName": "rejected.wsz",
"nsfw": false,
"url": "https://cdn.webampskins.org/screenshots/a_rejected_md5.png",
},
Object {
"fileName": "tweeted.wsz",
"nsfw": false,
"url": "https://cdn.webampskins.org/screenshots/a_tweeted_md5.png",
},
Object {
"fileName": "approved.wsz",
"nsfw": false,
"url": "https://cdn.webampskins.org/screenshots/an_approved_md5.png",
},
]

View file

@ -584,16 +584,20 @@ export async function getAllClassicScreenshotUrls(): Promise<
const skins = await knex.raw(
`
SELECT skins.md5,
files.file_path
files.file_path,
skin_reviews.review
FROM skins
LEFT JOIN files ON files.skin_md5 = skins.md5
LEFT JOIN skin_reviews ON skin_reviews.skin_md5 = skins.md5 AND skin_reviews.review = "NSFW"
WHERE skin_type = 1
GROUP BY skins.md5`,
[]
);
return skins.map(({ md5, file_path }) => {
return skins.map(({ md5, file_path, review }) => {
return {
md5,
nsfw: review != null,
fileName: path.basename(file_path),
url: getScreenshotUrl(md5),
};