diff --git a/src/scrapers/hookuphotshot.js b/src/scrapers/hookuphotshot.js index f5e37059..cdea7e98 100755 --- a/src/scrapers/hookuphotshot.js +++ b/src/scrapers/hookuphotshot.js @@ -29,6 +29,17 @@ function scrapeAll(scenes, _channel) { }); } +async function fetchLatest(channel, page = 1) { + const url = `${channel.url}/categories/movies/${page}/latest/`; + const res = await unprint.get(url, { selectAll: '.items .item-video' }); + + if (res.ok) { + return scrapeAll(res.context, channel); + } + + return res.status; +} + function scrapeScene({ query, html }, { url, entity, baseRelease }) { const release = {}; @@ -50,19 +61,21 @@ function scrapeScene({ query, html }, { url, entity, baseRelease }) { release.trailer = unprint.prefixUrl(html.match(/src="(\/trailers\/.*\.mp4)"/)?.[1], entity.url); - const posterUrl = unprint.prefixUrl(html.match(/poster="(\/content\/.*\.jpg)"/)?.[1], entity.url); + const posterUrl = query.img('img.update_thumb', { attribute: 'src0_1x' }) || unprint.prefixUrl(html.match(/poster="(\/content\/.*\.jpg)"/)?.[1], entity.url); - const posterFallbacks = [ - posterUrl.replace('-1x', '-2x'), - posterUrl.replace('-1x', '-3x'), - posterUrl, - ]; + if (posterUrl) { + const posterFallbacks = [ + posterUrl.replace('-1x', '-2x'), + posterUrl.replace('-1x', '-3x'), + posterUrl, + ]; - // scene page poster does not appear on update page - if (baseRelease?.poster) { - release.photos = [posterFallbacks, ...(baseRelease.photos || [])]; - } else { - release.poster = posterFallbacks; + // scene page poster does not appear on update page + if (baseRelease?.poster) { + release.photos = [posterFallbacks, ...(baseRelease.photos || [])]; + } else { + release.poster = posterFallbacks; + } } return release; @@ -83,17 +96,6 @@ function scrapeProfile({ query }) { return profile; } -async function fetchLatest(channel, page = 1) { - const url = `${channel.url}/categories/movies/${page}/latest/`; - const res = await unprint.get(url, { selectAll: '.items .item-video' }); - - if (res.ok) { - return scrapeAll(res.context, channel); - } - - return res.status; -} - async function fetchProfile(actor, entity) { const url = actor.url || `${entity.url}/models/${actor.slug}.html`; const res = await unprint.get(url);