Refactored AnalVids so studios are channels, excluded most channels from daily update.

This commit is contained in:
DebaucheryLibrarian 2024-10-20 01:59:18 +02:00
parent d89ced2e6e
commit 5374d6fd39
11 changed files with 6139 additions and 11963 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,6 @@
[
"50tinhaxxx",
"aaronrockxxx",
"abuseme",
"adalynnx",
"adelinelafouinestudio",
"adiraallure",
@ -39,7 +38,50 @@
"analmaniacsbyladydee",
"analpantyhoseaddicts",
"analpornworld",
"analvidsabuseme",
"analvidsbaitbus",
"analvidsbarebackattack",
"analvidsbarebackcasting",
"analvidsblackloads",
"analvidsblackpatrol",
"analvidsblacksonmoms",
"analvidsbluepillmen",
"analvidsbrandibelle",
"analvidsbustyadventures",
"analvidscfnmshow",
"analvidscollegerules",
"analvidsculioneros",
"analvidsdancingbear",
"analvidsdontfuckmydaughter",
"analvidsexbf",
"analvidsfilthyfamily",
"analvidsfuckysucky",
"analvidsfutanari",
"analvidsgirlsgonewild",
"analvidsgostosasvideo",
"analvidshazeher",
"analvidshazehim",
"analvidshentaied",
"analvidsimmorallive",
"analvidsitsgonnahurt",
"analvidsjayspov",
"analvidsmiakhalifa",
"analvidsmranal",
"analvidsmygf",
"analvidsoutinpublic",
"analvidspoundhisass",
"analvidsprivateblack",
"analvidsprojectcitybus",
"analvidspublicinvasion",
"analvidsrichardmannsworld",
"analvidsrubhim",
"analvidssausageparty",
"analvidssexbusters",
"analvidstaylorbow",
"analvidstestedefudelidade",
"analvidsthughunter",
"analvidsungloryhole",
"analvidsxxxpawn",
"anastasiagree",
"andrealatina",
"andycasanova",
@ -78,12 +120,9 @@
"badassbitchxx",
"badbardotclub",
"baileybase",
"baitbus",
"bangbros",
"barbaraalves",
"barebackattack",
"barebackbitchgril",
"barebackcasting",
"bazilhornydeer",
"bazinga",
"bbwblackbrazilian",
@ -101,19 +140,14 @@
"bisexcouplefamily",
"bitchstudio",
"bixbaestudio",
"blackloads",
"blackpatrol",
"blackqueen",
"blacksonmoms",
"blessexxx",
"bluepillmen",
"bluezao",
"boliviahot",
"bollocksdooodle",
"boringkate",
"borisschwarzstudio",
"bradmontanastudio",
"brandibelle",
"brebrew",
"brianabanderasstudio",
"briannadymond",
@ -121,7 +155,6 @@
"btsofdesires",
"buddhabangxxx",
"bumbumgigante",
"bustyadventures",
"bustybella",
"bustyworld",
"butterloads",
@ -140,7 +173,6 @@
"catalinacruz",
"cedrikgarcia",
"celineginger",
"cfnmshow",
"chameleonproduction",
"chantalchannel",
"cherryacid",
@ -156,7 +188,6 @@
"clubedapernocas",
"clubtmfr",
"colexchurchstudio",
"collegerules",
"comerz",
"coupleluna",
"coupleotakucuckoldcasalotakucorno",
@ -165,12 +196,10 @@
"crisangelo",
"crisanto999",
"crunchboy",
"culioneros",
"cutiepiiechubby",
"daddyenjoy",
"damasevagabundos",
"danaxmuscles",
"dancingbear",
"dankreamer",
"daphneelecerf",
"darkberry101",
@ -194,7 +223,6 @@
"dirtyvision",
"discoliisa",
"donteinfernostudio",
"dontfuckmydaughter",
"doriandelisla",
"dotmenvideos",
"dreaminskies",
@ -218,7 +246,6 @@
"estudioalarconsherly",
"evaelfie",
"evansjack",
"exbf",
"fabriciolorenco",
"facialcastingstudio",
"faplex",
@ -228,7 +255,6 @@
"fetishaura",
"fetishbody",
"fiftiweive69studio",
"filthyfamily",
"firstanalteensstudio",
"firstgape",
"fit18",
@ -242,8 +268,6 @@
"frenchprod",
"fucktotum",
"fuckyoucracker",
"fuckysucky",
"futanari",
"gabyespecialistaemsexooral",
"gabyhotstudio",
"gallastudio",
@ -258,7 +282,6 @@
"ggwnextgeneration",
"giadasgh",
"girlfriendsfilms",
"girlsgonewild",
"girlsinthewild",
"glassdeskproductions",
"goddessizabel",
@ -276,10 +299,7 @@
"hardpornworld",
"harleenvanhynten",
"harshpleasuremachine",
"hazeher",
"hazehim",
"helenamoellerstudio",
"hentaied",
"herbalsommelier",
"hexxgirlakarubyhexx",
"heygrimystudio",
@ -297,11 +317,9 @@
"hotwifeteen18",
"hpgproduction",
"ieatpinktacoz",
"immorallive",
"infiltrateproxy",
"innofsin",
"irogeniastudio",
"itsgonnahurt",
"ivanamontanastudio",
"ivylopez",
"jackecah",
@ -312,7 +330,6 @@
"japanpornjunky",
"jasonsteelxxxstudio",
"jaxslayhertv",
"jayspov",
"jbstudio",
"jeffsmodels",
"jennanoelle",
@ -446,7 +463,6 @@
"melinamay",
"mentelocodotadoestudio",
"messalinagod",
"miakhalifa",
"miamolotov",
"miax",
"milfliciousstudio",
@ -470,7 +486,6 @@
"monikafoxxxstudio",
"montycash",
"mooneysweety",
"mranal",
"mrandersonsanalacademy",
"mrnuttz",
"mrpussylicking",
@ -484,7 +499,6 @@
"myclearsky",
"mydirtydesires",
"myfilthydaddy",
"mygf",
"myhornyfamily",
"mylaangel",
"myschoollife",
@ -533,7 +547,6 @@
"origimax",
"originalgirlsgonewild",
"ouset",
"outinpublic",
"outsidethestudio",
"oxibendini",
"panporn",
@ -560,21 +573,17 @@
"pornworldvr",
"possiblyneighbours",
"potentialanal",
"poundhisass",
"princepollyproductionz",
"princess18",
"princexpunkin",
"princeyahshua",
"private",
"privateblack",
"privatecastings",
"privateclassics",
"programmerswife",
"projectcitybus",
"projectfundiary",
"prollkingxxl",
"protonvideos",
"publicinvasion",
"pureinfatuation",
"pussykagelovestudio",
"putacalenturastudio",
@ -598,7 +607,6 @@
"reginanoir",
"rhysdunbar",
"riasunnofficial",
"richardmannsworld",
"rickangelstudio",
"rileycyriis",
"robybianchiproduction",
@ -606,7 +614,6 @@
"rockcorp",
"romemajor",
"rpsnstudio",
"rubhim",
"sailorboy69",
"samanthagarmendia",
"samanthasissystudio",
@ -616,11 +623,9 @@
"sarahfonteynacumrecord",
"sarahfonteynaeasysquirter",
"sarahslavestudio",
"sausageparty",
"sbstudio",
"serenitylove001",
"sexartestudio",
"sexbusters",
"sexfoxxxvideos",
"sexwithmilfstella",
"sexxys",
@ -677,9 +682,7 @@
"taradao",
"tarrawhite",
"tayleewoodstudio",
"taylorbow",
"telanua",
"testedefudelidade",
"tgirlplayhouse",
"thanchetbigdick",
"thatredheadskye",
@ -690,7 +693,6 @@
"thewondertoystrainingstudio",
"theyloveflaxk",
"thiagomontestudio",
"thughunter",
"tiffanyleiddi",
"tigresavip",
"timeabellaproduction",
@ -705,7 +707,6 @@
"turndonpodcast",
"tvredfire",
"tylercoxxdzstudio",
"ungloryhole",
"uniquebless",
"unjmdstudio",
"unlimstudio",
@ -734,7 +735,6 @@
"xsanyany",
"xtvstudio",
"xwar555",
"xxxpawn",
"xxxporn",
"xxxtaylornicole",
"you170",

View File

@ -1,3 +1,5 @@
const analvids = require('./analvids.json');
module.exports = {
database: {
owner: {
@ -73,6 +75,8 @@ module.exports = {
},
exclude: {
channels: [
// AnalVids secondary channels
...analvids,
// 21sextreme, no longer updated
'mightymistress',
'dominatedgirls',

View File

@ -0,0 +1,79 @@
exports.up = async (knex) => {
await knex.schema.createTable('actors_revisions', (table) => {
table.increments('id');
table.integer('actor_id')
.references('id')
.inTable('actors')
.onDelete('set null');
table.integer('profile_id')
.references('id')
.inTable('actors_profiles')
.onDelete('set null');
table.integer('user_id')
.references('id')
.inTable('users')
.onDelete('set null');
table.json('base')
.notNullable();
table.json('deltas')
.notNullable();
table.text('hash')
.notNullable();
table.text('comment');
table.boolean('approved');
table.integer('reviewed_by')
.references('id')
.inTable('users')
.onDelete('set null');
table.datetime('reviewed_at');
table.text('feedback');
table.datetime('applied_at');
table.datetime('created_at')
.notNullable()
.defaultTo(knex.fn.now());
});
await knex.schema.alterTable('actors', (table) => {
table.integer('boobs_volume');
table.integer('butt_volume');
table.integer('lips_volume');
table.boolean('natural_butt');
});
await knex.schema.alterTable('actors_profiles', (table) => {
table.integer('boobs_volume');
table.integer('butt_volume');
table.integer('lips_volume');
table.boolean('natural_butt');
});
};
exports.down = async (knex) => {
await knex.schema.dropTable('actors_revisions');
await knex.schema.alterTable('actors', (table) => {
table.dropColumn('boobs_volume');
table.dropColumn('butt_volume');
table.dropColumn('lips_volume');
table.dropColumn('natural_butt');
});
await knex.schema.alterTable('actors_profiles', (table) => {
table.dropColumn('boobs_volume');
table.dropColumn('butt_volume');
table.dropColumn('lips_volume');
table.dropColumn('natural_butt');
});
};

View File

@ -138,6 +138,13 @@ const networks = [
name: 'Amnesiac',
hasLogo: true,
},
{
slug: 'analvids',
name: 'AnalVids',
alias: ['legalporno', 'clip', 'gonzo'],
url: 'https://www.analvids.com',
parent: 'wgcz',
},
{
slug: 'assylum',
name: 'Assylum',

View File

@ -1,4 +1,5 @@
const upsert = require('../src/utils/upsert');
const analvids = require('./analvids');
/* eslint-disable max-len */
const sites = [
@ -5818,16 +5819,8 @@ const sites = [
description: 'Check out what the hottest KinkMen models have for you. Get a test of this kinky private homemade gay BDSM bondage porn made just for you.',
parent: 'kinkmen',
},
// LEGALPORNO
{
slug: 'analvids',
name: 'AnalVids',
alias: ['legalporno', 'clip', 'gonzo'],
url: 'https://www.analvids.com',
independent: true,
showcased: false, // showcased per studio
parent: 'wgcz',
},
// ANALVIDS / LEGALPORNO
...analvids,
// LETS DOE IT
{
name: 'The White Boxxx',
@ -13971,6 +13964,18 @@ const sites = [
},
];
/*
sites.reduce((acc, site) => {
if (acc.has(site.slug)) {
console.log('DUPLICATE!', site.slug);
}
acc.add(site.slug);
return acc;
}, new Set());
*/
/* eslint-disable max-len */
exports.seed = (knex) => Promise.resolve()
.then(async () => {

View File

@ -5,6 +5,7 @@ const channelSlugs = sites.map((site) => site.slug);
const studios = [
// ANALVIDS / LEGALPORNO
/*
{
name: 'Giorgio Grandi',
slug: 'giorgiograndi',
@ -5254,6 +5255,7 @@ const studios = [
parent: 'analvids',
description: 'Producing raw amateur porn leaded by Bluff, the creator, filmmaker and photographer. The models are from a circle of friends that creates and share all together. Through webcam nights, professionally made productions or from spontaneous projects, the general desire always was to produce high quality amateur porn. A wide variety of content is offered. *No custom video request *all models are 18+ and consented to appear in the photos/videos.',
},
*/
// TESTE DE FUDELIDADE
{
name: 'Teste de Fudelidade Exclusivo',

View File

@ -1094,7 +1094,7 @@ exports.seed = (knex) => Promise.resolve()
const entities = await knex('entities')
.whereIn('slug', tagMedia.map((item) => item.entitySlug).filter(Boolean))
.orderBy('type', 'DESC');
.orderBy('type', 'asc');
const entitiesBySlug = entities.reduce((acc, entity) => ({
...acc,

View File

@ -915,13 +915,13 @@ const campaigns = [
comment: 'default offer',
},
{
channel: 'analvids',
network: 'analvids',
banner: 'pornworld_600_120_1',
url: 'https://www.analvids.com/new-videos?aff=BW90MHT1DP____',
comment: 'default offer',
},
{
channel: 'analvids',
network: 'analvids',
banner: 'pornworld_600_120_2',
url: 'https://www.analvids.com/new-videos?aff=BW90MHT1DP____',
comment: 'default offer',

5982
seeds/analvids.js Normal file

File diff suppressed because it is too large Load Diff

View File

@ -25,7 +25,7 @@ function scrapeAll(scenes, channel) {
release.title = query.content('.card-scene__text');
release.shootId = extractTitle(release.title).shootId;
release.date = query.date('.label--time:nth-child(2)', 'YYYY-MM-DD');
release.date = query.date('.label--time:nth-child(2)', 'YYYY-MM-DD'); // only available on front-page, not on studio page
release.duration = query.duration('.label--time:first-child');
release.poster = query.img('.card-scene__view img', { attribute: 'data-src' });
@ -64,10 +64,9 @@ function scrapeScene({ query }, { url }) {
release.tags = query.contents('.genres-list a[href*="/genre"]');
release.studio = slugify(query.content('.genres-list a[href*="/studios"]'), '', { removePunctuation: true });
// release.studio = slugify(query.content('.genres-list a[href*="/studios"]'), '', { removePunctuation: true });
release.poster = query.img('.watch__video video', { attribute: 'data-poster' });
release.photoCount = query.number('.bi-eye');
release.trailer = query.all('.watch__video source').map((el) => ({
src: unprint.query.video(el, null, { attribute: 'src' }),
@ -91,7 +90,8 @@ function scrapeProfile({ query }, url, channel) {
}
async function fetchLatest(channel, page) {
const res = await unprint.get(`${channel.url}/new-videos/${page}`, { selectAll: '.card-scene' });
// const res = await unprint.get(`https://www.analvids.com/new-videos/${page}`, { selectAll: '.card-scene' }); // analvids as channel
const res = await unprint.get(`${channel.url}/latest/${page}`, { selectAll: '.card-scene' }); // studios as channels
if (res.ok) {
return scrapeAll(res.context, channel);