Added Killergram.
|
@ -236,7 +236,7 @@ export default {
|
||||||
}
|
}
|
||||||
|
|
||||||
.item {
|
.item {
|
||||||
max-height: 18rem;
|
height: 18rem;
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
box-shadow: 0 0 3px var(--shadow-weak);
|
box-shadow: 0 0 3px var(--shadow-weak);
|
||||||
}
|
}
|
||||||
|
|
After Width: | Height: | Size: 2.4 KiB |
After Width: | Height: | Size: 50 KiB |
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 2.6 KiB |
After Width: | Height: | Size: 2.6 KiB |
After Width: | Height: | Size: 50 KiB |
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 16 KiB |
|
@ -241,6 +241,11 @@ const networks = [
|
||||||
url: 'https://www.kellymadison.com',
|
url: 'https://www.kellymadison.com',
|
||||||
description: 'Home of Kelly Madison and Ryan Madison',
|
description: 'Home of Kelly Madison and Ryan Madison',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
slug: 'killergram',
|
||||||
|
name: 'Killergram',
|
||||||
|
url: 'http://www.killergram.com',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
slug: 'kink',
|
slug: 'kink',
|
||||||
name: 'Kink',
|
name: 'Kink',
|
||||||
|
|
|
@ -2669,6 +2669,281 @@ const sites = [
|
||||||
description: 'Home of Kelly Madison and Ryan Madison',
|
description: 'Home of Kelly Madison and Ryan Madison',
|
||||||
parent: 'kellymadison',
|
parent: 'kellymadison',
|
||||||
},
|
},
|
||||||
|
// KILLERGRAM
|
||||||
|
{
|
||||||
|
name: 'Urban Perversions',
|
||||||
|
url: 'http://killergram.com/episodes.asp?page=episodes&ct=site&site=hard-fi%20sex',
|
||||||
|
slug: 'urbanperversions',
|
||||||
|
alias: [
|
||||||
|
'hardfisex',
|
||||||
|
'hard-fi sex',
|
||||||
|
'hard fi sex',
|
||||||
|
],
|
||||||
|
description: 'Slighly twisted, totally kinky is what its all about. See our masked fuckers slam our fishnet clad sluts in every open wet orifice.',
|
||||||
|
hasLogo: false,
|
||||||
|
parent: 'killergram',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Anal Rehab',
|
||||||
|
url: 'http://killergram.com/episodes.asp?page=episodes&ct=site&site=anal%20rehab',
|
||||||
|
slug: 'analrehab',
|
||||||
|
hasLogo: false,
|
||||||
|
parent: 'killergram',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Sexy Club Babes',
|
||||||
|
url: 'http://killergram.com/episodes.asp?page=episodes&ct=site&site=club%20babes',
|
||||||
|
slug: 'sexyclubbabes',
|
||||||
|
description: 'UK girls are renowned for having a "mad night out with the girls". A bit too much to drink, dancing followed by hardcore sex.',
|
||||||
|
hasLogo: false,
|
||||||
|
parent: 'killergram',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Bitch Funkers',
|
||||||
|
url: 'http://killergram.com/episodes.asp?page=episodes&ct=site&site=bitch%20funkers',
|
||||||
|
slug: 'bitchfunkers',
|
||||||
|
description: 'Welcome to the home of the Bitch Funkers. The domain of hardcore sluts that dish out a serious cunt hammering to hot bitches.',
|
||||||
|
hasLogo: false,
|
||||||
|
parent: 'killergram',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Girly Riders',
|
||||||
|
url: 'http://killergram.com/episodes.asp?page=episodes&ct=site&site=girly%20riders',
|
||||||
|
slug: 'girlyriders',
|
||||||
|
description: 'The "Porno Brat Babes" cruise the streets on their low-rider cycles in search of hard cock & raw fucking action. Feed them.',
|
||||||
|
hasLogo: false,
|
||||||
|
parent: 'killergram',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'College Babes Exposed',
|
||||||
|
url: 'http://killergram.com/episodes.asp?page=episodes&ct=site&site=college%20babes',
|
||||||
|
slug: 'collegebabesexposed',
|
||||||
|
description: 'A collection of the "Hottest UK Porn Babes" in tight ass clinging denim jeans. Super hot sexy babes who are students of "Cockology".',
|
||||||
|
hasLogo: false,
|
||||||
|
parent: 'killergram',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Cum Into My Office',
|
||||||
|
url: 'http://killergram.com/episodes.asp?page=episodes&ct=site&site=office%20antics',
|
||||||
|
slug: 'cumintomyoffice',
|
||||||
|
alias: [
|
||||||
|
'officeantics',
|
||||||
|
'office antics',
|
||||||
|
],
|
||||||
|
description: 'Witness the day to day events of a typical day at our offices. We open up the doors at Killergram Towers for horny hot pornstars.',
|
||||||
|
hasLogo: false,
|
||||||
|
parent: 'killergram',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Space Hoppers',
|
||||||
|
url: 'http://killergram.com/episodes.asp?page=episodes&ct=site&site=space%20hoppers',
|
||||||
|
slug: 'spacehoppers',
|
||||||
|
description: 'Porn School, Teen Nymphos ride their retro Hoppers & chomp on monster candy sticks, dressed in their best Schoolgirl outfits.',
|
||||||
|
hasLogo: false,
|
||||||
|
parent: 'killergram',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Booty Back Packers',
|
||||||
|
url: 'http://killergram.com/episodes.asp?page=episodes&ct=site&site=booty%20packers',
|
||||||
|
slug: 'bootybackpackers',
|
||||||
|
description: 'A selection of some of the finest fuck-slut booty that the UK has to offer. Your "Plump Assed Platoon of Pornstars" get fucked hard.',
|
||||||
|
hasLogo: false,
|
||||||
|
parent: 'killergram',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Pornostatic',
|
||||||
|
url: 'http://killergram.com/episodes.asp?page=episodes&ct=site&site=pornostatic',
|
||||||
|
slug: 'pornostatic',
|
||||||
|
description: 'At Killergram-Pornostatic we aim to bring you the most diverse selection of girls, niches & websites in glorious HD hardcore.',
|
||||||
|
hasLogo: false,
|
||||||
|
parent: 'killergram',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Wife Slut Adventures',
|
||||||
|
url: 'http://killergram.com/episodes.asp?page=episodes&ct=site&site=wife%20sluts',
|
||||||
|
slug: 'wifeslutadventures',
|
||||||
|
description: "From the supermarket to the gym, the daily school run to the shopping malls, these sex hungry MILF's are on the prowl for fat cock.",
|
||||||
|
hasLogo: false,
|
||||||
|
parent: 'killergram',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'The Lady Pimp',
|
||||||
|
url: 'http://killergram.com/episodes.asp?page=episodes&ct=site&site=the%20lady%20pimp',
|
||||||
|
slug: 'theladypimp',
|
||||||
|
description: "It's Hardcore Female Power Porn as our resident Porno Pimps try out a bevy of hopeful studs for their own pleasure.",
|
||||||
|
hasLogo: false,
|
||||||
|
parent: 'killergram',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Tattooed Fuck Sluts',
|
||||||
|
url: 'http://killergram.com/episodes.asp?page=episodes&ct=site&site=tattooed%20sluts',
|
||||||
|
slug: 'tattooedfucksluts',
|
||||||
|
hasLogo: false,
|
||||||
|
parent: 'killergram',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Brown Sugar Rush',
|
||||||
|
url: 'http://killergram.com/episodes.asp?page=episodes&ct=site&site=brown%20sugar',
|
||||||
|
slug: 'brownsugarrush',
|
||||||
|
description: 'Killergram is the natural home of UK Hardcore "Woman of Colour" Ebony, Indian, Arabic are mixed with a plethora of ethnic.',
|
||||||
|
hasLogo: false,
|
||||||
|
parent: 'killergram',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Are You For Hire',
|
||||||
|
url: 'http://killergram.com/episodes.asp?page=episodes&ct=site&site=ru%204%20hire',
|
||||||
|
slug: 'areyouforhire',
|
||||||
|
description: 'The adventures of our Killergram Cabbie, as he cruises the streets of London in search of babes that want a "hard ride" home for free.',
|
||||||
|
hasLogo: false,
|
||||||
|
parent: 'killergram',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Gloryhole Gaggers',
|
||||||
|
url: 'http://killergram.com/episodes.asp?page=episodes&ct=site&site=gloryhole%20girls',
|
||||||
|
slug: 'gloryholegaggers',
|
||||||
|
description: 'Swinger MILF sluts & Porn Star babes are literally gagging to visit the Killergram Glory Hole Venue & suck anonymous cocks.',
|
||||||
|
hasLogo: false,
|
||||||
|
parent: 'killergram',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'The Handy Man',
|
||||||
|
url: 'http://killergram.com/episodes.asp?page=episodes&ct=site&site=the%20handy%20man',
|
||||||
|
slug: 'thehandyman',
|
||||||
|
description: "When a sexy MILF, teen slut or even a hot hard core Porn Star needs a job doing well, it's time to call in the horny Handy Man.",
|
||||||
|
hasLogo: false,
|
||||||
|
parent: 'killergram',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Lets Get Slippy',
|
||||||
|
url: 'http://killergram.com/episodes.asp?page=episodes&ct=site&site=lets%20get%20slippy',
|
||||||
|
slug: 'letsgetslippy',
|
||||||
|
description: "The UK's finest Porn babes, soaped up and hard fucked as they experience some clean but totally filthy hardcore oiled up fun.",
|
||||||
|
hasLogo: false,
|
||||||
|
parent: 'killergram',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Rock Chicks',
|
||||||
|
url: 'http://killergram.com/episodes.asp?page=episodes&ct=site&site=rock%20chicks',
|
||||||
|
slug: 'rockchicks',
|
||||||
|
description: 'Sex, Fucks and Rock n Roll are the order of the day as these groupie porn sluts get their fill of massive hard cocks & hardcore play.',
|
||||||
|
hasLogo: false,
|
||||||
|
parent: 'killergram',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Cum Party Sluts',
|
||||||
|
url: 'http://killergram.com/episodes.asp?page=episodes&ct=site&site=cum%20party%20sluts',
|
||||||
|
slug: 'cumpartysluts',
|
||||||
|
description: "Hardcore British Reality Porn featuring the UK's best MILF's, Pornstars, Amateurs and Housewives, fucking everyday guys.",
|
||||||
|
hasLogo: false,
|
||||||
|
parent: 'killergram',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Baby Loves The Shaft',
|
||||||
|
url: 'http://killergram.com/episodes.asp?page=episodes&ct=site&site=get%20shafted',
|
||||||
|
slug: 'babylovestheshaft',
|
||||||
|
alias: [
|
||||||
|
'getshafted',
|
||||||
|
'get shafted',
|
||||||
|
],
|
||||||
|
description: 'Mr Shaft is back to offer his monster black meat to a host of willing ladies that love to take it "The Dark Way". BBC loving whores.',
|
||||||
|
hasLogo: false,
|
||||||
|
parent: 'killergram',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'UK Street Walkers',
|
||||||
|
url: 'http://killergram.com/episodes.asp?page=episodes&ct=site&site=street%20walkers',
|
||||||
|
slug: 'ukstreetwalkers',
|
||||||
|
description: 'We travel to the inner cities of Britain, visiting seedy red light districts & back street brothels seeking "Street Hustlers".',
|
||||||
|
hasLogo: false,
|
||||||
|
parent: 'killergram',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Cream My Cunt',
|
||||||
|
url: 'http://killergram.com/episodes.asp?page=episodes&ct=site&site=cream%20my%20cunt',
|
||||||
|
slug: 'creammycunt',
|
||||||
|
description: 'A fiesta of "Creampie Cocktails blended with, full on, hardcore fuck scenes". Each and every models cunt is left overflowing.',
|
||||||
|
hasLogo: false,
|
||||||
|
parent: 'killergram',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Chain Smokers',
|
||||||
|
url: 'http://killergram.com/episodes.asp?page=episodes&ct=site&site=chain%20smokers',
|
||||||
|
slug: 'chainsmokers',
|
||||||
|
description: 'A hot smoking series of hot UK porn sluts being chained, smoked and hard fucked. Deep inhaling whores smoke seductively.',
|
||||||
|
hasLogo: false,
|
||||||
|
parent: 'killergram',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Voyeur Cam Sluts',
|
||||||
|
url: 'http://killergram.com/episodes.asp?page=episodes&ct=site&site=voyeur%20cams',
|
||||||
|
slug: 'voyeurcamsluts',
|
||||||
|
description: 'Our perverted Landlord has set up a series of hidden cameras to spy on the day to day sexual encounters of his horny tenants.',
|
||||||
|
hasLogo: false,
|
||||||
|
parent: 'killergram',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Wishes Cum True',
|
||||||
|
url: 'http://killergram.com/episodes.asp?page=episodes&ct=site&site=wishes%20cum%20true',
|
||||||
|
slug: 'wishescumtrue',
|
||||||
|
description: 'A cocktail of POV hardcore action and member participation in which our Porno Fairies are here to give you all you need.',
|
||||||
|
hasLogo: false,
|
||||||
|
parent: 'killergram',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Fetish Sex Clinic',
|
||||||
|
url: 'http://killergram.com/episodes.asp?page=episodes&ct=site&site=fetish%20sex%20clinic',
|
||||||
|
slug: 'fetishsexclinic',
|
||||||
|
description: 'Fetish Sex Clinic tracks the adventures of our hot "Porno Rubber Clad Nurses" and their perverted patients in hardcore action.',
|
||||||
|
hasLogo: false,
|
||||||
|
parent: 'killergram',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Burlesque XXX',
|
||||||
|
url: 'http://killergram.com/episodes.asp?page=episodes&ct=site&site=burlesque%20xxx',
|
||||||
|
slug: 'burlesquexxx',
|
||||||
|
description: 'Creatively shot, erotic slick hardcore action featuring the very best UK Pornstars. Blow Jobs, Rimming, Bareback Fucking, Facials.',
|
||||||
|
hasLogo: false,
|
||||||
|
parent: 'killergram',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'UK Soccer Babes',
|
||||||
|
url: 'http://killergram.com/episodes.asp?page=episodes&ct=site&site=porn%20stars%20utd',
|
||||||
|
slug: 'uksoccerbabes',
|
||||||
|
description: 'The Killergram team of football nymphos that travel the length and breath of country in search of prime cock and hot ball play.',
|
||||||
|
hasLogo: false,
|
||||||
|
parent: 'killergram',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Nylon Cum Sluts',
|
||||||
|
url: 'http://killergram.com/episodes.asp?page=episodes&ct=site&site=nylon%20cum%20sluts',
|
||||||
|
slug: 'nyloncumsluts',
|
||||||
|
description: 'Sexy sluts in sheer Pantyhose play out their Nylon fetish fantasies as they are fucked and creamed by hot horny hung studs.',
|
||||||
|
hasLogo: false,
|
||||||
|
parent: 'killergram',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'On A Dogging Mission',
|
||||||
|
url: 'http://killergram.com/episodes.asp?page=episodes&ct=site&site=dogging%20missions',
|
||||||
|
slug: 'onadoggingmission',
|
||||||
|
description: 'Dogging is real people fucking and sucking in public locations. A craze that has swept the UK and spreading across the globe.',
|
||||||
|
hasLogo: false,
|
||||||
|
parent: 'killergram',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'UK Reality Swingers',
|
||||||
|
url: 'http://killergram.com/episodes.asp?page=episodes&ct=site&site=kinky%20couples',
|
||||||
|
slug: 'ukrealityswingers',
|
||||||
|
description: 'Where real partners play out their bedroom routines on video for your pleasure. We visit the homes of swingers and real amateurs.',
|
||||||
|
hasLogo: false,
|
||||||
|
parent: 'killergram',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Killergram Cuts',
|
||||||
|
url: 'http://killergram.com/episodes.asp?page=episodes&ct=site&site=killergram%20cuts',
|
||||||
|
slug: 'killergramcuts',
|
||||||
|
hasLogo: false,
|
||||||
|
parent: 'killergram',
|
||||||
|
},
|
||||||
// KINK
|
// KINK
|
||||||
{
|
{
|
||||||
slug: 'thirtyminutesoftorment',
|
slug: 'thirtyminutesoftorment',
|
||||||
|
|
|
@ -0,0 +1,77 @@
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
const qu = require('../utils/qu');
|
||||||
|
const slugify = require('../utils/slugify');
|
||||||
|
|
||||||
|
function scrapeAll({ query }) {
|
||||||
|
const urls = query.urls('td > a:not([href*=joinnow])').map(pathname => `http://killergram.com/${encodeURI(pathname)}`);
|
||||||
|
const posters = query.imgs('td > a img');
|
||||||
|
const titles = query.all('.episodeheadertext', true);
|
||||||
|
const actors = query.all('.episodetextinfo:nth-child(3)').map(el => query.all(el, 'a', true));
|
||||||
|
const channels = query.all('.episodetextinfo:nth-child(2) a', true).map(channel => slugify(channel, ''));
|
||||||
|
|
||||||
|
if ([urls.length, posters.length, titles.length, actors.length, channels.length].every((value, index, array) => value === array[0])) { // make sure every set has the same number of items
|
||||||
|
const releases = urls.map((url, index) => ({
|
||||||
|
url,
|
||||||
|
entryId: new URL(url).searchParams.get('id'),
|
||||||
|
title: titles[index],
|
||||||
|
actors: actors[index],
|
||||||
|
channel: channels[index],
|
||||||
|
poster: posters[index],
|
||||||
|
}));
|
||||||
|
|
||||||
|
return releases;
|
||||||
|
}
|
||||||
|
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
function scrapeScene({ query, html }, url) {
|
||||||
|
const release = {};
|
||||||
|
|
||||||
|
release.entryId = new URL(url).searchParams.get('id');
|
||||||
|
release.date = query.date('.episodetext', 'DD MMMM YYYY', /\d{2} \w+ \d{4}/);
|
||||||
|
|
||||||
|
release.description = query.q('.episodetext tr:nth-child(5) td:nth-child(2)', true);
|
||||||
|
release.actors = query.all('.modelstarring a', true);
|
||||||
|
|
||||||
|
const duration = html.match(/(\d+) minutes/)?.[1];
|
||||||
|
if (duration) release.duration = Number(duration) * 60;
|
||||||
|
|
||||||
|
[release.poster, ...release.photos] = query.imgs('img[src*="/models"]');
|
||||||
|
|
||||||
|
return release;
|
||||||
|
}
|
||||||
|
|
||||||
|
function scrapeProfile({ query }, actorName) {
|
||||||
|
const profile = {};
|
||||||
|
|
||||||
|
profile.releases = scrapeAll({ query }).filter(release => release.actors.includes(actorName));
|
||||||
|
|
||||||
|
return profile;
|
||||||
|
}
|
||||||
|
|
||||||
|
async function fetchLatest(channel, page = 1) {
|
||||||
|
const res = await qu.get(`${channel.url}&p=${page}`, '#episodes > table');
|
||||||
|
|
||||||
|
return res.ok ? scrapeAll(res.item, channel) : res.status;
|
||||||
|
}
|
||||||
|
|
||||||
|
async function fetchScene(url, channel) {
|
||||||
|
const res = await qu.get(url, '#episodes > table');
|
||||||
|
|
||||||
|
return res.ok ? scrapeScene(res.item, url, channel) : res.status;
|
||||||
|
}
|
||||||
|
|
||||||
|
async function fetchProfile(actorName) {
|
||||||
|
const url = `http://killergram.com/episodes.asp?page=episodes&model=${encodeURI(actorName)}&ct=model`;
|
||||||
|
const res = await qu.get(url, '#episodes > table');
|
||||||
|
|
||||||
|
return res.ok ? scrapeProfile(res.item, actorName) : res.status;
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
fetchLatest,
|
||||||
|
fetchScene,
|
||||||
|
fetchProfile,
|
||||||
|
};
|
|
@ -28,6 +28,7 @@ const jayrock = require('./jayrock');
|
||||||
const jesseloadsmonsterfacials = require('./jesseloadsmonsterfacials');
|
const jesseloadsmonsterfacials = require('./jesseloadsmonsterfacials');
|
||||||
const julesjordan = require('./julesjordan');
|
const julesjordan = require('./julesjordan');
|
||||||
const kellymadison = require('./kellymadison');
|
const kellymadison = require('./kellymadison');
|
||||||
|
const killergram = require('./killergram');
|
||||||
const kink = require('./kink');
|
const kink = require('./kink');
|
||||||
const legalporno = require('./legalporno');
|
const legalporno = require('./legalporno');
|
||||||
const men = require('./men');
|
const men = require('./men');
|
||||||
|
@ -101,6 +102,7 @@ module.exports = {
|
||||||
jesseloadsmonsterfacials,
|
jesseloadsmonsterfacials,
|
||||||
julesjordan,
|
julesjordan,
|
||||||
kellymadison,
|
kellymadison,
|
||||||
|
killergram,
|
||||||
kink,
|
kink,
|
||||||
legalporno,
|
legalporno,
|
||||||
men,
|
men,
|
||||||
|
@ -177,6 +179,7 @@ module.exports = {
|
||||||
jamesdeen: fullpornnetwork,
|
jamesdeen: fullpornnetwork,
|
||||||
julesjordan,
|
julesjordan,
|
||||||
kellymadison,
|
kellymadison,
|
||||||
|
killergram,
|
||||||
legalporno,
|
legalporno,
|
||||||
men,
|
men,
|
||||||
metrohd,
|
metrohd,
|
||||||
|
|