Added Amnesiac (Hentaied) scraper.

This commit is contained in:
DebaucheryLibrarian 2024-07-08 04:59:28 +02:00
parent 4d8ef20735
commit c62a529e76
5 changed files with 183 additions and 0 deletions

View File

@ -1227,6 +1227,30 @@ const tags = [
name: 'real orgasm', name: 'real orgasm',
slug: 'real-orgasm', slug: 'real-orgasm',
}, },
{
name: 'timestop',
slug: 'timestop',
},
{
name: 'futanari',
slug: 'futanari',
},
{
name: 'gore',
slug: 'gore',
},
{
name: 'tentacle',
slug: 'tentacle',
},
{
name: 'parasite',
slug: 'parasite',
},
{
name: 'voodoo',
slug: 'voodoo',
},
]; ];
const aliases = [ const aliases = [
@ -2495,6 +2519,22 @@ const aliases = [
name: 'outdoor', name: 'outdoor',
for: 'outdoors', for: 'outdoors',
}, },
{
name: 'timefreeze',
for: 'timestop',
},
{
name: 'freeze',
for: 'timestop',
},
{
name: 'tentacles',
for: 'tentacle',
},
{
name: 'parasites',
for: 'parasite',
},
]; ];
const priorities = [ // higher index is higher priority const priorities = [ // higher index is higher priority

View File

@ -127,6 +127,11 @@ const networks = [
url: 'https://amateureuro.com', url: 'https://amateureuro.com',
parent: 'porndoe', parent: 'porndoe',
}, },
{
slug: 'amnesiac',
name: 'Amnesiac',
hasLogo: false,
},
{ {
slug: 'assylum', slug: 'assylum',
name: 'Assylum', name: 'Assylum',

View File

@ -635,6 +635,61 @@ const sites = [
}, },
parent: 'amateurallure', parent: 'amateurallure',
}, },
// AMNESIAC
{
name: 'Hentaied',
slug: 'hentaied',
url: 'https://hentaied.com',
tags: ['tentacle'],
parent: 'amnesiac',
},
{
name: 'Futanari',
slug: 'futanari',
url: 'https://futanari.xxx',
tags: ['futanari'],
parent: 'amnesiac',
},
{
name: 'Freeze',
slug: 'freeze',
url: 'https://freeze.xxx',
tags: ['timestop'],
parent: 'amnesiac',
},
{
name: 'Somegore',
slug: 'somegore',
url: 'https://somegore.com',
tags: ['gore'],
parent: 'amnesiac',
},
{
name: 'Defeated',
slug: 'defeated',
url: 'https://defeatedsexfight.com',
parent: 'amnesiac',
},
{
name: 'Plants vs Cunts',
slug: 'plantsvscunts',
url: 'https://plantsvscunts.com',
tags: ['tentacle'],
parent: 'amnesiac',
},
{
name: 'Voodooed',
slug: 'voodooed',
url: 'https://voodooed.com',
tags: ['voodoo'],
parent: 'amnesiac',
},
{
name: 'Vored',
slug: 'vored',
url: 'https://vored.com',
parent: 'amnesiac',
},
// AMATEUR EURO // AMATEUR EURO
{ {
name: 'La Cochonne', name: 'La Cochonne',

81
src/scrapers/amnesiac.js Normal file
View File

@ -0,0 +1,81 @@
'use strict';
const unprint = require('unprint');
function scrapeAll(scenes) {
return scenes.map(({ query }) => {
if (query.exists('.crowdfunding-post')) {
return null;
}
const release = {};
release.url = query.url('a');
release.entryId = new URL(release.url).pathname.split('/')[1];
release.title = query.content('.allvideostitle p, .allvideostitle h2');
release.actors = query.contents('.tagsmodels a');
release.poster = query.sourceSet('.vidcont .attachment-thumbnail');
release.teaser = query.video('.vidcont video', { attribute: 'data-src' });
return release;
}).filter(Boolean);
}
function scrapeScene({ query }, { url }) {
const release = {};
release.entryId = new URL(url).pathname.split('/')[1];
release.title = query.content('.title-fav h1');
release.description = query.contents('.description #fullstory, .title-fav .cont > p').join(' ');
release.date = query.date('.datesingle', 'MMMM D, YYYY');
release.duration = query.duration('.duration');
release.actors = query.contents('.tagsmodels:not(.director) a');
release.director = query.content('.director a');
release.poster = [
query.img('.preview .attachment-full'),
query.img('meta[property="og:image"]', { attribute: 'content' }),
];
release.caps = query.all('.gallery a').map((photoEl) => [
unprint.query.url(photoEl, null),
unprint.query.img(photoEl, 'img'),
]);
release.trailer = {
src: query.video('.preview video'),
referer: url,
expectType: {
'binary/octet-stream': 'video/mp4',
},
};
release.tags = query.contents('.post-categories a');
return release;
}
async function fetchLatest(channel, page = 1) {
const url = `${channel.url}/all-videos/${page}/`;
const res = await unprint.get(url, { selectAll: '.catposts > div:not(.clearfix):not(.flexcont)' });
if (res.ok) {
return scrapeAll(res.context, channel);
}
return res.status;
}
module.exports = {
fetchLatest,
scrapeScene: {
scraper: scrapeScene,
unprint: true,
},
};

View File

@ -5,6 +5,7 @@ const archangel = require('./archangel');
const assylum = require('./assylum'); const assylum = require('./assylum');
const amateurallure = require('./amateurallure'); const amateurallure = require('./amateurallure');
const americanpornstar = require('./americanpornstar'); const americanpornstar = require('./americanpornstar');
const amnesiac = require('./amnesiac');
const badoink = require('./badoink'); const badoink = require('./badoink');
const bamvisions = require('./bamvisions'); const bamvisions = require('./bamvisions');
const bang = require('./bang'); const bang = require('./bang');
@ -82,6 +83,7 @@ const scrapers = {
amateurallure, amateurallure,
americanpornstar, americanpornstar,
amateureuro: porndoe, amateureuro: porndoe,
amnesiac,
archangel, archangel,
asiam: modelmedia, asiam: modelmedia,
assylum, assylum,