Removed unused scripts using bhttp and removed dependency.
This commit is contained in:
+1
-1
@@ -30,7 +30,7 @@ const { fetchEntityReleaseIds } = require('./entity-releases');
|
||||
const streamQueue = taskQueue();
|
||||
|
||||
// carried over from the legacy HTTP module, unprint's raw request interface would identify as traxxx
|
||||
const mediaUserAgent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36';
|
||||
const mediaUserAgent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/156.0.0.0 Safari/537.36';
|
||||
|
||||
const s3 = new S3Client({
|
||||
region: 'eu-central-1',
|
||||
|
||||
@@ -1,84 +0,0 @@
|
||||
'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();
|
||||
@@ -1,18 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
const bhttp = require('bhttp');
|
||||
|
||||
async function init() {
|
||||
const res = await bhttp.head('https://www.kink.com/consent', {
|
||||
headers: {
|
||||
Host: 'www.kink.com',
|
||||
'User-Agent': 'HTTPie/2.6.0',
|
||||
Accept: '*/*',
|
||||
Connection: 'keep-alive',
|
||||
},
|
||||
});
|
||||
|
||||
console.log(res.body.toString(), res.headers, res.statusCode);
|
||||
}
|
||||
|
||||
init();
|
||||
@@ -1,118 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
const bhttp = require('bhttp');
|
||||
const Promise = require('bluebird');
|
||||
const fsPromises = require('fs').promises;
|
||||
const fs = require('fs');
|
||||
const { PassThrough } = require('stream');
|
||||
const crypto = require('crypto');
|
||||
const argv = require('yargs')(require('yargs/helpers').hideBin(process.argv)).argv;
|
||||
|
||||
const file = 'https://speed.hetzner.de/100MB.bin';
|
||||
// const file = 'https://speed.hetzner.de/1GB.bin';
|
||||
// const file = 'https://speed.hetzner.de/10GB.bin';
|
||||
|
||||
function getMemoryUsage() {
|
||||
return process.memoryUsage().rss / (10 ** 6);
|
||||
}
|
||||
|
||||
const stats = {
|
||||
peakMemoryUsage: getMemoryUsage(),
|
||||
done: false,
|
||||
downloads: {},
|
||||
};
|
||||
|
||||
function render() {
|
||||
const downloads = Object.entries(stats.downloads);
|
||||
|
||||
process.stdout.clearScreenDown();
|
||||
|
||||
process.stdout.write(`peak memory: ${stats.peakMemoryUsage.toFixed(2)} MB\n`);
|
||||
|
||||
downloads.forEach(([download, progress]) => {
|
||||
process.stdout.write(`${download}: ${progress}${typeof progress === 'string' ? '' : '%'}\n`);
|
||||
});
|
||||
|
||||
process.stdout.moveCursor(0, -(downloads.length + 1));
|
||||
process.stdout.cursorTo(0);
|
||||
|
||||
if (downloads.length === 0 || !downloads.every(([_label, download]) => typeof download === 'string')) {
|
||||
setTimeout(() => render(), 1000);
|
||||
return;
|
||||
}
|
||||
|
||||
process.stdout.moveCursor(0, downloads.length + 1);
|
||||
}
|
||||
|
||||
function setProgress(label, completedBytes, totalBytes, hash) {
|
||||
const memory = getMemoryUsage();
|
||||
|
||||
stats.peakMemoryUsage = Math.max(memory, stats.peakMemoryUsage);
|
||||
stats.downloads[label] = hash || Math.round((completedBytes / totalBytes) * 100);
|
||||
}
|
||||
|
||||
async function buffered(label) {
|
||||
const hash = crypto.createHash('blake2b512');
|
||||
|
||||
const imageRes = await bhttp.get(file, {
|
||||
onDownloadProgress(completedBytes, totalBytes) {
|
||||
setProgress(label, completedBytes, totalBytes);
|
||||
},
|
||||
});
|
||||
|
||||
hash.update(imageRes.body);
|
||||
setProgress(label, null, null, hash.digest('hex'));
|
||||
|
||||
await fsPromises.writeFile(`/mnt/stor/Pictures/traxxx/temp/buffered-${label}.bin`, imageRes.body);
|
||||
}
|
||||
|
||||
async function streamed(label) {
|
||||
const hash = crypto.createHash('blake2b512');
|
||||
hash.setEncoding('hex');
|
||||
|
||||
const hashStream = new PassThrough();
|
||||
const targetStream = fs.createWriteStream(`/mnt/stor/Pictures/traxxx/temp/streamed-${label}.bin`);
|
||||
|
||||
const imageRes = await bhttp.get(file, {
|
||||
stream: true,
|
||||
});
|
||||
|
||||
const stream = imageRes
|
||||
.pipe(hashStream)
|
||||
.pipe(targetStream);
|
||||
|
||||
imageRes.on('progress', (completedBytes, totalBytes) => {
|
||||
setProgress(label, completedBytes, totalBytes);
|
||||
});
|
||||
|
||||
hashStream.on('data', (chunk) => {
|
||||
hash.write(chunk);
|
||||
});
|
||||
|
||||
stream.on('finish', () => {
|
||||
hash.end();
|
||||
setProgress(label, null, null, hash.read());
|
||||
});
|
||||
}
|
||||
|
||||
async function init() {
|
||||
const n = argv.n || 1;
|
||||
|
||||
if (argv._.includes('stream')) {
|
||||
console.log('using streams');
|
||||
render();
|
||||
|
||||
await Promise.map(Array.from({ length: n }), async (value, index) => streamed(index + 1));
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (argv._.includes('buffer')) {
|
||||
console.log('using buffers');
|
||||
render();
|
||||
|
||||
await Promise.map(Array.from({ length: n }), async (value, index) => buffered(index + 1));
|
||||
}
|
||||
}
|
||||
|
||||
init();
|
||||
@@ -1,18 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
const bhttp = require('bhttp');
|
||||
const sharp = require('sharp');
|
||||
const { argv } = require('yargs')(require('yargs/helpers').hideBin(process.argv));
|
||||
|
||||
const url = argv.url || 'http://localhost:5000/media/actors/tommy-pistol/1580341442712.jpeg';
|
||||
|
||||
async function scan() {
|
||||
console.log(url);
|
||||
|
||||
const res = await bhttp.get(url);
|
||||
const stats = await sharp(res.body).stats();
|
||||
|
||||
console.log(stats);
|
||||
}
|
||||
|
||||
scan();
|
||||
@@ -1,21 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
const Promise = require('bluebird');
|
||||
const bhttp = require('bhttp');
|
||||
|
||||
const knex = require('../knex');
|
||||
|
||||
async function run() {
|
||||
const network = await knex('networks').where('slug', 'mofos').first();
|
||||
const sites = await knex('sites').where('network_id', network.id);
|
||||
|
||||
await Promise.map(sites, async (site) => {
|
||||
const res = await bhttp.get(site.url);
|
||||
|
||||
console.log(site.url, res.statusCode);
|
||||
}, {
|
||||
concurrency: 5,
|
||||
});
|
||||
}
|
||||
|
||||
run();
|
||||
@@ -1,37 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
const Promise = require('bluebird');
|
||||
const bhttp = require('bhttp');
|
||||
const fs = require('fs-extra');
|
||||
const knex = require('../knex');
|
||||
|
||||
async function init() {
|
||||
const sites = await knex('sites')
|
||||
.select('networks.name', 'sites.slug')
|
||||
.join('networks', 'networks.id', 'sites.network_id')
|
||||
.where('networks.slug', 'score');
|
||||
|
||||
await Promise.map(sites, async (site) => {
|
||||
const url = `https://cdn77.scoreuniverse.com/${site.slug}/images/logo.png`;
|
||||
|
||||
console.log(url);
|
||||
|
||||
const res = await bhttp.get(url, {
|
||||
responseTimeout: 5000,
|
||||
});
|
||||
|
||||
if (res.statusCode === 200) {
|
||||
console.log(`Saving logo for ${site.slug}`);
|
||||
|
||||
await fs.writeFile(`./score/${site.slug}.png`, res.body);
|
||||
}
|
||||
|
||||
console.log(`No logo found for ${site.slug}`);
|
||||
}, {
|
||||
concurrency: 10,
|
||||
});
|
||||
|
||||
knex.destroy();
|
||||
}
|
||||
|
||||
init();
|
||||
@@ -1,55 +0,0 @@
|
||||
'use strict';
|
||||
|
||||
const config = require('config');
|
||||
const { PassThrough } = require('stream');
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const bhttp = require('bhttp');
|
||||
const crypto = require('crypto');
|
||||
const sharp = require('sharp');
|
||||
|
||||
const url = 'https://thumbs.julesjordan.com/trial/content//upload/dl03/julesjordan/oil_overload_16_scene2//photos/alina_lopez_jules_jordan_com_77.jpg';
|
||||
|
||||
async function init() {
|
||||
const hash = crypto.createHash('blake2b512');
|
||||
hash.setEncoding('hex');
|
||||
|
||||
const res = await bhttp.get(url, {
|
||||
stream: true,
|
||||
});
|
||||
|
||||
const metaStream = sharp();
|
||||
const hashStream = new PassThrough();
|
||||
const target = fs.createWriteStream(path.join(config.media.path, 'temp', 'alina.jpg'));
|
||||
const thumbTarget = fs.createWriteStream(path.join(config.media.path, 'temp', 'alina_thumb.jpg'));
|
||||
|
||||
hashStream.on('data', (chunk) => {
|
||||
hash.write(chunk);
|
||||
});
|
||||
|
||||
metaStream.clone()
|
||||
.resize(320)
|
||||
.pipe(thumbTarget);
|
||||
|
||||
const stream = res
|
||||
.pipe(metaStream)
|
||||
.pipe(hashStream)
|
||||
.pipe(target);
|
||||
|
||||
stream.on('finish', () => {
|
||||
hash.end();
|
||||
const digest = hash.read();
|
||||
|
||||
console.log('stream', digest);
|
||||
});
|
||||
|
||||
metaStream.on('info', (info) => {
|
||||
console.log('info', info);
|
||||
});
|
||||
|
||||
const stats = await metaStream.stats();
|
||||
|
||||
console.log('stats', stats);
|
||||
}
|
||||
|
||||
init();
|
||||
@@ -1,827 +0,0 @@
|
||||
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();
|
||||
Reference in New Issue
Block a user