Refactored AnalVids so studios are channels, excluded most channels from daily update.
This commit is contained in:
parent
d89ced2e6e
commit
5374d6fd39
11903
analvids-studios.json
11903
analvids-studios.json
File diff suppressed because it is too large
Load Diff
|
@ -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",
|
||||
|
|
|
@ -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',
|
||||
|
|
|
@ -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');
|
||||
});
|
||||
};
|
|
@ -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',
|
||||
|
|
|
@ -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 () => {
|
||||
|
|
|
@ -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',
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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',
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue