diff --git a/public/img/logos/nubiles/favicon.png b/public/img/logos/nubiles/favicon.png new file mode 100644 index 00000000..e82d54d3 Binary files /dev/null and b/public/img/logos/nubiles/favicon.png differ diff --git a/public/img/logos/nubiles/network.png b/public/img/logos/nubiles/network.png new file mode 100644 index 00000000..ebcc7d1f Binary files /dev/null and b/public/img/logos/nubiles/network.png differ diff --git a/seeds/02_sites.js b/seeds/02_sites.js index 29e1bc08..a3bb8674 100644 --- a/seeds/02_sites.js +++ b/seeds/02_sites.js @@ -4269,6 +4269,7 @@ const sites = [ name: 'Teens Love Anal', description: '', url: 'https://www.teensloveanal.com', + tags: ['anal'], parameters: { id: 'tla' }, network: 'teamskeet', }, diff --git a/src/scrapers/insex.js b/src/scrapers/insex.js index 68644773..e6927702 100644 --- a/src/scrapers/insex.js +++ b/src/scrapers/insex.js @@ -4,7 +4,9 @@ const bhttp = require('bhttp'); const { get, exa, fd } = require('../utils/q'); function scrapeLatest(html, site) { - const scenes = exa(html, 'body > table'); + const scenes = site.slug === 'paintoy' + ? exa(html, '#articleTable table[cellspacing="2"]') + : exa(html, 'body > table'); return scenes.map(({ q, qd, qi, qu, ql }) => { // if (q('.articleTitleText')) return scrapeFirstLatest(ctx(el), site); @@ -77,14 +79,17 @@ function scrapeScene({ q, qd, ql, qu, qis, qp, qt }, site) { } async function fetchLatest(site, page = 1) { - const url = `${site.url}/scripts/switch_tour.php?type=brief&page=${page}`; + const url = site.slug === 'paintoy' // paintoy's site is partially broken, use front page + ? `${site.url}/corporal/punishment/gallery.php?type=brief&page=${page}` + : `${site.url}/scripts/switch_tour.php?type=brief&page=${page}`; + const res = await bhttp.get(url, { type: 'brief', page, }); if (res.statusCode === 200) { - return scrapeLatest(res.body.html, site); + return scrapeLatest(site.slug === 'paintoy' ? res.body.toString() : res.body.html, site); } return null;