traxxx/src/utils/tcc.js

828 lines
13 KiB
JavaScript
Executable File

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();