From c860bfebc1e2b6482467900857ec8dfbe1ccc7fd Mon Sep 17 00:00:00 2001 From: DebaucheryLibrarian Date: Sun, 13 Aug 2023 21:57:32 +0200 Subject: [PATCH] Separated error log. Added search/summary update tool. --- seeds/02_sites.js | 27 +++++++++++++++------------ src/logger.js | 7 ++++++- src/scrapers/radical.js | 32 +++++++++++++++++++++++++++++++- src/tools/update-search.js | 12 ++++++++++++ 4 files changed, 64 insertions(+), 14 deletions(-) create mode 100644 src/tools/update-search.js diff --git a/seeds/02_sites.js b/seeds/02_sites.js index 25529c3ad..c154b98ad 100755 --- a/seeds/02_sites.js +++ b/seeds/02_sites.js @@ -8517,16 +8517,6 @@ const sites = [ independent: true, parent: 'radical', }, - { - name: 'Got Filled', - slug: 'gotfilled', - url: 'https://gotfilled.com', - independent: true, - parent: 'radical', - parameters: { - layout: 'metadata', - }, - }, { name: 'Inserted', slug: 'inserted', @@ -8534,7 +8524,19 @@ const sites = [ independent: true, parent: 'radical', parameters: { - layout: 'metadata', + layout: 'api', + endpoint: 'QrQe_TF3broC5P80XTIbd', + }, + }, + { + name: 'Got Filled', + slug: 'gotfilled', + url: 'https://gotfilled.com', + independent: true, + parent: 'radical', + parameters: { + layout: 'api', + endpoint: 'nOpFJJgD_-c5PrBqecVXA', }, }, { @@ -8544,7 +8546,8 @@ const sites = [ independent: true, parent: 'radical', parameters: { - layout: 'metadata', + layout: 'api', + endpoint: 'fnkMPhO2Gd-XwWTZHyftg', }, }, // REALITY KINGS diff --git a/src/logger.js b/src/logger.js index 7dfe1a3e9..5eedb3cb6 100755 --- a/src/logger.js +++ b/src/logger.js @@ -29,9 +29,14 @@ function logger(filepath) { }), new winston.transports.DailyRotateFile({ datePattern: 'YYYY-MM-DD', - filename: path.join('log', '%DATE%.log'), + filename: path.join('log', 'combined_%DATE%.log'), level: 'silly', }), + new winston.transports.DailyRotateFile({ + datePattern: 'YYYY-MM-DD', + filename: path.join('log', 'error_%DATE%.log'), + level: 'error', + }), ], }); } diff --git a/src/scrapers/radical.js b/src/scrapers/radical.js index a49e31870..448c1a4f1 100755 --- a/src/scrapers/radical.js +++ b/src/scrapers/radical.js @@ -15,7 +15,7 @@ function scrapeSceneMetadata(data, channel) { release.description = data.description; release.date = new Date(data.release_date); - release.duration = qu.durationToSeconds(data.videos_duration); + release.duration = data.seconds_duration || qu.durationToSeconds(data.videos_duration); release.actors = data.models.map((model) => ({ entryId: model.id, @@ -50,6 +50,22 @@ function scrapeAllMetadata(scenes, channel) { return scenes.map((data) => scrapeSceneMetadata(data, channel)); } +function scrapeAllApi(scenes, channel) { + return scenes.map((data) => { + const release = {}; + + release.entryId = data.id; + + release.title = data.title; + release.description = data.description; + + console.log(data); + console.log(release); + + return release; + }); +} + function scrapeProfileMetadata(data, channel) { const profile = {}; @@ -95,6 +111,16 @@ async function fetchLatestMetadata(channel, page = 1) { return res.status; } +async function fetchLatestApi(channel, page, { parameters }) { + const res = await http.get(`${channel.url}/_next/data/${parameters.endpoint}/videos.json?order_by=publish_date&sort_by=desc&per_page=30&page=${page}`); + + if (res.ok) { + return scrapeAllApi(res.body.pageProps.contents.data, channel); + } + + return res.status; +} + async function fetchSceneMetadata(url, channel) { const res = await http.get(url, { parse: true, @@ -136,8 +162,12 @@ async function fetchProfileMetadata(actor, channel) { module.exports = { metadata: { + // probably deprecated fetchLatest: fetchLatestMetadata, fetchScene: fetchSceneMetadata, fetchProfile: fetchProfileMetadata, }, + api: { + fetchLatest: fetchLatestApi, + }, }; diff --git a/src/tools/update-search.js b/src/tools/update-search.js new file mode 100644 index 000000000..0e3a22ea9 --- /dev/null +++ b/src/tools/update-search.js @@ -0,0 +1,12 @@ +'use strict'; + +const { updateSceneSearch, updateMovieSearch } = require('../update-search'); + +async function init() { + await updateSceneSearch(); + await updateMovieSearch(); + + process.exit(); +} + +init();