From 6ef5c82c6a00d28562f0cfac2b44ea9f899dec2e Mon Sep 17 00:00:00 2001 From: Niels Simenon Date: Thu, 23 Jan 2020 23:32:51 +0100 Subject: [PATCH] Added URL helper to q. Getting social links from Boobpedia. --- src/actors.js | 5 +++++ src/scrapers/boobpedia.js | 8 +++----- src/utils/q.js | 6 ++++++ 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/actors.js b/src/actors.js index 9594df53..0923e028 100644 --- a/src/actors.js +++ b/src/actors.js @@ -177,6 +177,11 @@ function curateSocialEntry(url, actorId) { pattern: 'http(s)\\://(*)modelhub.com/:username(/)(?*)', format: username => `https://www.modelhub.com/${username}`, }, + { + label: 'imdb', + pattern: 'http(s)\\://(*)imdb.com/name/:userId(/)(?*)', + format: userId => `https://www.imdb.com/name/${userId}/`, + }, ]; const match = platforms.reduce((acc, platform) => { diff --git a/src/scrapers/boobpedia.js b/src/scrapers/boobpedia.js index d0d85e83..e8e50971 100644 --- a/src/scrapers/boobpedia.js +++ b/src/scrapers/boobpedia.js @@ -5,7 +5,7 @@ const bhttp = require('bhttp'); const { ex } = require('../utils/q'); function scrapeProfile(html) { - const { q, qa, qd, qi } = ex(html); /* eslint-disable-line object-curly-newline */ + const { q, qa, qd, qi, qu } = ex(html); /* eslint-disable-line object-curly-newline */ const profile = {}; const bio = qa('.infobox tr[valign="top"]') @@ -61,11 +61,9 @@ function scrapeProfile(html) { profile.avatar = `http://www.boobpedia.com${avatarPath}`; } - const socials = qa('.infobox a.external'); + profile.social = qu('.infobox a.external'); - console.log(socials); - - // return profile; + return profile; } async function fetchProfile(actorName) { diff --git a/src/utils/q.js b/src/utils/q.js index 732e89ad..8b4ec345 100644 --- a/src/utils/q.js +++ b/src/utils/q.js @@ -42,6 +42,10 @@ function qimages(context, selector = 'img', attr = 'src') { return qall(context, selector, attr); } +function qurls(context, selector = 'a', attr = 'href') { + return qall(context, selector, attr); +} + function qposter(context, selector = 'video', attr = 'poster') { return q(context, selector, attr); } @@ -71,12 +75,14 @@ const funcs = { qposter, qlength, qtrailer, + qurls, qa: qall, qd: qdate, qi: qimages, qp: qposter, ql: qlength, qt: qtrailer, + qu: qurls, }; function ctx(element, window) {