'use strict'; const fs = require('fs').promises; const bhttp = require('bhttp'); const slugify = require('../utils/slugify'); const { studios: oldStudios } = require('../../seeds/03_studios'); const slugMap = { thay_ksada: 'thayksada2', }; async function init() { const res = await bhttp.get('https://pornbox.com/studio/list'); if (!res.statusCode === 200) { throw new Error(`Failed to retrieve studios (${res.statusCode}): ${res.body.toString()}`); } const newStudios = res.body.map((studio) => { const slug = slugify(studio.name, ''); const oldStudio = oldStudios.find((oldStudioX) => oldStudioX.slug === slug); const tags = oldStudio?.tags || []; const newStudio = { name: studio.name, slug, originalSlug: slugify(studio.alias, ''), url: `https://www.analvids.com/studios/${studio.alias}`, parent: 'analvids', }; if (oldStudio?.alias) { newStudio.alias = oldStudio.alias; } if (studio.description && studio.description.toLowerCase() !== studio.name.toLowerCase()) { newStudio.description = studio.description; } if (studio.directions?.includes('gay')) { tags.push('gay'); } if (studio.directions?.includes('lesbian')) { tags.push('lesbian'); } if (studio.directions?.includes('trans')) { tags.push('transsexual'); } if (tags.length > 0) { newStudio.tags = Array.from(new Set(tags)); } return newStudio; }); await fs.writeFile('./analvids-studios.json', JSON.stringify(newStudios, null, 4)); newStudios.reduce((acc, studio) => { const existingStudio = acc.get(studio.slug); if (existingStudio) { if (!acc.has(studio.originalSlug)) { console.log('REWRITE', studio.slug, studio.originalSlug); studio.slug = studio.originalSlug; // eslint-disable-line } console.log('slug already exists!', existingStudio, studio, studio.originalSlug, studio.slug); } acc.set(studio.slug, studio); return acc; }, new Map()); // console.log(newStudios); } init();