const Promise = require('bluebird'); const bhttp = require('bhttp'); const fs = require('fs'); const channels = [{ name: 'Analyzed Girls', slug: 'analyzedgirls', url: 'https://analyzedgirls.com', alias: ['ag', ], tags: ['anal', ], parent: 'teencoreclub', parameters: { siteId: 178, }, }, { name: 'Archived Updates', slug: 'archivedupdates', url: 'https://archivedupdates.com', parent: 'teencoreclub', hasLogo: false, parameters: { siteId: 482, }, }, { name: 'Ass Teen Mouth', slug: 'assteenmouth', url: 'https://assteenmouth.com', alias: ['atm', ], tags: ['anal', 'atm', 'teen', ], parent: 'teencoreclub', parameters: { siteId: 180, }, }, { name: 'Bang Teen Pussy', slug: 'bangteenpussy', url: 'https://bangteenpussy.com', alias: ['btp', ], tags: ['teen', ], parent: 'teencoreclub', parameters: { siteId: 182, }, }, { name: 'Brutal Invasion', slug: 'brutalinvasion', url: 'https://brutalinvasion.com', alias: ['bin', ], parent: 'teencoreclub', parameters: { siteId: 184, }, }, { name: 'Clean My Ass', slug: 'cleanmyass', url: 'https://cleanmyass.com', tags: ['ass-eating'], alias: ['cma', ], parent: 'teencoreclub', parameters: { siteId: 362, }, }, { name: 'College Party Time', slug: 'collegepartytime', url: 'https://collegepartytime.com', alias: ['cpt', ], parent: 'teencoreclub', parameters: { siteId: 278, }, }, { name: 'Cumaholic Teens', slug: 'cumaholicteens', url: 'https://cumaholicteens.com', alias: ['ct', 'cumoholic teens', 'cumoholicteens', ], tags: ['teen', ], parent: 'teencoreclub', parameters: { siteId: 186, }, }, { name: 'Cum Filled Throat', slug: 'cumfilledthroat', url: 'https://cumfilledthroat.com', alias: ['cft', ], parent: 'teencoreclub', parameters: { siteId: 280, }, }, { name: 'Cum Sumption Cocktail', slug: 'cumsumptioncocktail', url: 'https://cumsumptioncocktail.com', alias: ['csc', ], parent: 'teencoreclub', parameters: { siteId: 282, }, }, { name: 'Defiled18', slug: 'defiled18', url: 'https://defiled18.com', alias: ['d18', ], parent: 'teencoreclub', parameters: { siteId: 188, }, }, { name: 'Dirty Baby Sitter', slug: 'dirtybabysitter', url: 'https://dirtybabysitter.com', alias: ['dbs', ], parent: 'teencoreclub', parameters: { siteId: 284, }, }, { name: 'Double Teamed Teens', slug: 'doubleteamedteens', url: 'https://doubleteamedteens.com', alias: ['dtt', ], tags: ['teen', 'dp', ], parent: 'teencoreclub', parameters: { siteId: 190, }, }, { name: 'Dreamteens HD', slug: 'dreamteenshd', url: 'https://dreamteenshd.com', alias: ['dhd', ], tags: ['teen', ], parent: 'teencoreclub', parameters: { siteId: 192, }, }, { name: 'Drill Her Butt', slug: 'drillherbutt', url: 'https://drillherbutt.com', tags: ['anal'], alias: ['dhb', ], parent: 'teencoreclub', parameters: { siteId: 288, }, }, { name: 'Dual Throat', slug: 'dualthroat', url: 'https://dualthroat.com', alias: ['dt', ], parent: 'teencoreclub', parameters: { siteId: 290, }, }, { name: 'Gang Land Victims', slug: 'ganglandvictims', url: 'https://ganglandvictims.com', alias: ['glv', ], tags: ['gangbang', ], parent: 'teencoreclub', parameters: { siteId: 292, }, }, { name: 'Girls Got Cream', slug: 'girlsgotcream', url: 'https://girlsgotcream.com', alias: ['ggc', ], parent: 'teencoreclub', parameters: { siteId: 194, }, }, { name: 'Hardcore Youth', slug: 'hardcoreyouth', url: 'https://hardcoreyouth.com', alias: ['hcy', ], parent: 'teencoreclub', parameters: { siteId: 196, }, }, { name: 'Little Hellcat', slug: 'littlehellcat', url: 'https://littlehellcat.com', alias: ['lhc', ], parent: 'teencoreclub', parameters: { siteId: 198, }, }, { name: 'Little Teen Suckers', slug: 'littleteensuckers', url: 'https://littleteensuckers.com', alias: ['lts', ], tags: ['teen', ], parent: 'teencoreclub', parameters: { siteId: 294, }, }, { name: 'MAIKO', slug: 'maiko', url: 'https://maiko.com', parent: 'teencoreclub', hasLogo: false, parameters: { siteId: 566, }, }, { name: 'Make Teen Gape', slug: 'maketeengape', url: 'https://maketeengape.com', alias: ['mtg', ], tags: ['teen', 'gaping', ], parent: 'teencoreclub', parameters: { siteId: 200, }, }, { name: 'Make Teen Moan', slug: 'maketeenmoan', url: 'https://maketeenmoan.com', alias: ['mtm', ], tags: ['teen', ], parent: 'teencoreclub', parameters: { siteId: 296, }, }, { name: 'Mega Penetrations', slug: 'megapenetrations', url: 'https://megapenetrations.com', alias: ['mp', ], parent: 'teencoreclub', parameters: { siteId: 298, }, }, { name: 'Messy Gang Bangs', slug: 'messygangbangs', url: 'https://messygangbangs.com', alias: ['mgb', ], tags: ['gangbang', ], parent: 'teencoreclub', parameters: { siteId: 300, }, }, { name: 'My Black Coeds', slug: 'myblackcoeds', url: 'https://myblackcoeds.com', alias: ['mbc', ], tags: ['ebony', ], parent: 'teencoreclub', hasLogo: false, parameters: { siteId: 302, }, }, { name: 'My Latina Teen', slug: 'mylatinateen', url: 'https://mylatinateen.com', alias: ['mlt', ], tags: ['teen', 'latina', ], parent: 'teencoreclub', hasLogo: false, parameters: { siteId: 304, }, }, { name: 'Nasty Ass Lickers', slug: 'nastyasslickers', url: 'https://nastyasslickers.com', tags: ['ass-eating'], alias: ['nal', ], parent: 'teencoreclub', hasLogo: false, parameters: { siteId: 306, }, }, { name: 'Naughty Little Nymphs', slug: 'naughtylittlenymphs', url: 'https://naughtylittlenymphs.com', alias: ['nln', ], parent: 'teencoreclub', hasLogo: false, parameters: { siteId: 308, }, }, { name: 'NC UK Sinners', slug: 'ncuksinners', url: 'https://ncuksinners.com', parent: 'teencoreclub', hasLogo: false, parameters: { siteId: 568, }, }, { name: 'NC Verso Cinema', slug: 'ncversocinema', url: 'https://ncversocinema.com', parent: 'teencoreclub', hasLogo: false, parameters: { siteId: 570, }, }, { name: 'Network Mixed', slug: 'networkmixed', url: 'https://networkmixed.com', alias: ['anc', ], parent: 'teencoreclub', hasLogo: false, parameters: { siteId: 360, }, }, { name: 'Never Done That Before', slug: 'neverdonethatbefore', url: 'https://neverdonethatbefore.com', alias: ['ndt', ], parent: 'teencoreclub', hasLogo: false, parameters: { siteId: 310, }, }, { name: 'Nylon Sweeties', slug: 'nylonsweeties', url: 'https://nylonsweeties.com', alias: ['nsw', ], parent: 'teencoreclub', parameters: { siteId: 202, }, }, { name: 'Pink Eye Sluts', slug: 'pinkeyesluts', url: 'https://pinkeyesluts.com', alias: ['pes', ], parent: 'teencoreclub', hasLogo: false, parameters: { siteId: 312, }, }, { name: 'Plug2 Holes', slug: 'plug2holes', url: 'https://plug2holes.com', alias: ['p2h', ], parent: 'teencoreclub', hasLogo: false, parameters: { siteId: 314, }, }, { name: 'Pussy Babes', slug: 'pussybabes', url: 'https://pussybabes.com', parent: 'teencoreclub', hasLogo: false, parameters: { siteId: 556, }, }, { name: 'Road Gang Bangs', slug: 'roadgangbangs', url: 'https://roadgangbangs.com', alias: ['rgb', ], tags: ['gangbang', ], parent: 'teencoreclub', hasLogo: false, parameters: { siteId: 316, }, }, { name: 'Russian Teen Updates', slug: 'russianteenupdates', url: 'https://russianteenupdates.com', tags: ['teen', 'russian', ], parent: 'teencoreclub', hasLogo: false, parameters: { siteId: 418, }, }, { name: 'School Bus Chicks', slug: 'schoolbuschicks', url: 'https://schoolbuschicks.com', alias: ['sbc', ], parent: 'teencoreclub', hasLogo: false, parameters: { siteId: 318, }, }, { name: 'Seductive18', slug: 'seductive18', url: 'https://seductive18.com', alias: ['s18', ], parent: 'teencoreclub', parameters: { siteId: 204, }, }, { name: 'Show Me Gape', slug: 'showmegape', url: 'https://showmegape.com', tags: ['gaping'], alias: ['smg', ], parent: 'teencoreclub', hasLogo: false, parameters: { siteId: 320, }, }, { name: 'Shy Teachers Pet', slug: 'shyteacherspet', url: 'https://shyteacherspet.com', alias: ['stp', ], parent: 'teencoreclub', hasLogo: false, parameters: { siteId: 322, }, }, { name: 'Small Tits Hunter', slug: 'smalltitshunter', url: 'https://smalltitshunter.com', alias: ['sth', ], parent: 'teencoreclub', hasLogo: false, parameters: { siteId: 324, }, }, { name: 'Spermantino', slug: 'spermantino', url: 'https://spermantino.com', alias: ['spe', ], parent: 'teencoreclub', parameters: { siteId: 366, }, }, { name: 'TCC Network Archives', slug: 'tccnetworkarchives', url: 'https://tccnetworkarchives.com', alias: ['all', ], parent: 'teencoreclub', hasLogo: false, parameters: { siteId: 176, }, }, { name: 'Teach My Ass', slug: 'teachmyass', url: 'https://teachmyass.com', tags: ['anal'], alias: ['tma', ], parent: 'teencoreclub', parameters: { siteId: 368, }, }, { name: 'Teenagers Going Wild', slug: 'teenagersgoingwild', url: 'https://teenagersgoingwild.com', alias: ['tgw', ], tags: ['teen', ], parent: 'teencoreclub', hasLogo: false, parameters: { siteId: 326, }, }, { name: 'Teen Anal Casting', slug: 'teenanalcasting', url: 'https://teenanalcasting.com', alias: ['tac', ], tags: ['anal', 'teen', ], parent: 'teencoreclub', parameters: { siteId: 206, }, }, { name: 'Teen Drillers', slug: 'teendrillers', url: 'https://teendrillers.com', alias: ['td', ], tags: ['teen', ], parent: 'teencoreclub', parameters: { siteId: 208, }, }, { name: 'Teen Gina', slug: 'teengina', url: 'https://teengina.com', alias: ['tg', ], tags: ['teen', ], parent: 'teencoreclub', hasLogo: false, parameters: { siteId: 210, }, }, { name: 'Teens Love Blacks', slug: 'teensloveblacks', url: 'https://teensloveblacks.com', alias: ['tlb', ], tags: ['interracial', 'bbc', 'teen', ], parent: 'teencoreclub', parameters: { siteId: 328, }, }, { name: 'Teens Natural Way', slug: 'teensnaturalway', url: 'https://teensnaturalway.com', alias: ['tnw', ], tags: ['teen', ], parent: 'teencoreclub', parameters: { siteId: 212, }, }, { name: 'Teens Try Anal', slug: 'teenstryanal', url: 'https://teenstryanal.com', alias: ['tta', ], tags: ['anal', 'teen', ], parent: 'teencoreclub', parameters: { siteId: 330, }, }, { name: 'Teens Try Blacks', slug: 'teenstryblacks', url: 'https://teenstryblacks.com', alias: ['ttb', ], tags: ['interracial', 'bbc', 'teen', ], parent: 'teencoreclub', parameters: { siteId: 214, }, }, { name: 'Teens Want Orgies', slug: 'teenswantorgies', url: 'https://teenswantorgies.com', alias: ['two', ], tags: ['teen', 'threesome', ], parent: 'teencoreclub', hasLogo: false, parameters: { siteId: 332, }, }, { name: 'Try Teens', slug: 'tryteens', url: 'https://tryteens.com', alias: ['tt', ], tags: ['teen', ], parent: 'teencoreclub', hasLogo: false, parameters: { siteId: 216, }, }, { name: 'Tug Job Queens', slug: 'tugjobqueens', url: 'https://tugjobqueens.com', tags: ['handjob'], alias: ['tjq', ], parent: 'teencoreclub', parameters: { siteId: 334, }, }, { name: 'UK Sinners', slug: 'uksinners', url: 'https://uksinners.com', parent: 'teencoreclub', hasLogo: false, parameters: { siteId: 558, }, }, { name: 'White Box Black Cocks', slug: 'whiteboxblackcocks', url: 'https://whiteboxblackcocks.com', alias: ['wbc', ], tags: ['interracial', 'bbc', ], parent: 'teencoreclub', hasLogo: false, parameters: { siteId: 336, }, }, { name: 'White Teens Black Cocks', slug: 'whiteteensblackcocks', url: 'https://whiteteensblackcocks.com', alias: ['wbc', ], tags: ['interracial', 'bbc', 'teen', ], parent: 'teencoreclub', hasLogo: false, parameters: { siteId: 218, }, }, { name: 'Young Throats', slug: 'youngthroats', url: 'https://youngthroats.com', tags: ['blowjob', 'deepthroat', 'facefucking'], alias: ['yt', ], parent: 'teencoreclub', parameters: { siteId: 220, }, }]; async function init() { const results = await Promise.map(channels, async (channel) => { try { const res = await bhttp.head(channel.url, { followRedirects: false, responseTimeout: 30000, }); console.log(res.statusCode, channel.url); if (res.statusCode === 200) { return channel; } throw new Error(`${channel.url} no longer available: ${res.statusCode}`); } catch (error) { console.error(channel.url, error.message); return { name: channel.name, slug: channel.slug, url: `https://teencoreclub.com/browsevideos/site/${channel.parameters.siteId}/${channel.name.replace(/\s+/g, '')}`, ...(channel.tags && { tags: channel.tags }), ...(channel.alias && { alias: channel.alias }), parent: channel.parent, ...(channel.hasLogo !== undefined && { hasLogo: channel.hasLogo }), parameters: channel.parameters, }; } }, { concurrency: 5 }); await fs.promises.writeFile('./tcc.json', JSON.stringify(results, null, 4)); console.log('done!'); } init();