forked from DebaucheryLibrarian/traxxx
				
			Added Amateur Allure.
This commit is contained in:
		
							parent
							
								
									3290a5f686
								
							
						
					
					
						commit
						e57f440665
					
				|  | @ -219,6 +219,17 @@ export default { | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | .networks { | ||||||
|  |     display: grid; | ||||||
|  |     grid-gap: 0 1rem; | ||||||
|  |     flex-grow: 1; | ||||||
|  |     padding: 1rem; | ||||||
|  |     grid-template-columns: 1fr; | ||||||
|  |     grid-template-rows: min-content; | ||||||
|  |     overflow-y: auto; | ||||||
|  |     scrollbar-color: $highlight-weak $profile; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| .logo { | .logo { | ||||||
|     width: 100%; |     width: 100%; | ||||||
|     max-height: 8rem; |     max-height: 8rem; | ||||||
|  |  | ||||||
|  | @ -26,6 +26,8 @@ | ||||||
|                 :alt="release.title" |                 :alt="release.title" | ||||||
|                 class="item trailer-video" |                 class="item trailer-video" | ||||||
|                 controls |                 controls | ||||||
|  |                 @playing="playing = true" | ||||||
|  |                 @pause="playing = false" | ||||||
|             >Sorry, the tailer cannot be played in your browser</video> |             >Sorry, the tailer cannot be played in your browser</video> | ||||||
| 
 | 
 | ||||||
|             <video |             <video | ||||||
|  | @ -35,6 +37,8 @@ | ||||||
|                 :alt="release.title" |                 :alt="release.title" | ||||||
|                 class="item trailer-video" |                 class="item trailer-video" | ||||||
|                 controls |                 controls | ||||||
|  |                 @playing="playing = true" | ||||||
|  |                 @pause="playing = false" | ||||||
|             >Sorry, the tailer cannot be played in your browser</video> |             >Sorry, the tailer cannot be played in your browser</video> | ||||||
| 
 | 
 | ||||||
|             <img |             <img | ||||||
|  | @ -43,6 +47,15 @@ | ||||||
|                 :alt="release.title" |                 :alt="release.title" | ||||||
|                 class="item trailer-video" |                 class="item trailer-video" | ||||||
|             > |             > | ||||||
|  | 
 | ||||||
|  |             <a | ||||||
|  |                 v-if="release.poster" | ||||||
|  |                 :href="`/media/${release.poster.path}`" | ||||||
|  |                 :class="{ playing }" | ||||||
|  |                 target="_blank" | ||||||
|  |                 rel="noopener noreferrer" | ||||||
|  |                 class="poster-link" | ||||||
|  |             ><Icon icon="image" /></a> | ||||||
|         </div> |         </div> | ||||||
| 
 | 
 | ||||||
|         <a |         <a | ||||||
|  | @ -86,6 +99,11 @@ export default { | ||||||
|             default: null, |             default: null, | ||||||
|         }, |         }, | ||||||
|     }, |     }, | ||||||
|  |     data() { | ||||||
|  |         return { | ||||||
|  |             playing: false, | ||||||
|  |         }; | ||||||
|  |     }, | ||||||
|     computed: { |     computed: { | ||||||
|         photos, |         photos, | ||||||
|     }, |     }, | ||||||
|  | @ -114,6 +132,7 @@ export default { | ||||||
| 
 | 
 | ||||||
| .trailer { | .trailer { | ||||||
|     display: inline-block; |     display: inline-block; | ||||||
|  |     position: relative; | ||||||
|     max-width: 100vw; |     max-width: 100vw; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -122,6 +141,32 @@ export default { | ||||||
|     object-fit: cover; |     object-fit: cover; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | .poster-link { | ||||||
|  |     position: absolute; | ||||||
|  |     top: .5rem; | ||||||
|  |     right: .5rem; | ||||||
|  |     transition: opacity .1s ease; | ||||||
|  | 
 | ||||||
|  |     .icon { | ||||||
|  |         width: 1.5rem; | ||||||
|  |         height: 1.5rem; | ||||||
|  |         fill: $highlight; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     &.playing { | ||||||
|  |         opacity: 0; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     &:hover { | ||||||
|  |         cursor: pointer; | ||||||
|  |         opacity: 1; | ||||||
|  | 
 | ||||||
|  |         .icon { | ||||||
|  |             fill: $highlight-strong; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
| .item { | .item { | ||||||
|     height: 18rem; |     height: 18rem; | ||||||
|     vertical-align: middle; |     vertical-align: middle; | ||||||
|  |  | ||||||
|  | @ -71,6 +71,7 @@ export default { | ||||||
|     flex-grow: 1; |     flex-grow: 1; | ||||||
|     padding: 1rem; |     padding: 1rem; | ||||||
|     grid-template-columns: 1fr; |     grid-template-columns: 1fr; | ||||||
|  |     grid-template-rows: min-content; | ||||||
|     overflow-y: auto; |     overflow-y: auto; | ||||||
|     scrollbar-color: $highlight-weak $profile; |     scrollbar-color: $highlight-weak $profile; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -17,3 +17,11 @@ | ||||||
|         margin: 0; |         margin: 0; | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | :focus { | ||||||
|  |     outline: none; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | ::-moz-focus-inner { | ||||||
|  |     border: 0; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -38,6 +38,7 @@ function initReleasesActions(store, _router) { | ||||||
|                     release { |                     release { | ||||||
|                         id |                         id | ||||||
|                         title |                         title | ||||||
|  |                         slug | ||||||
|                         date |                         date | ||||||
|                         url |                         url | ||||||
|                         batch |                         batch | ||||||
|  |  | ||||||
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 61 KiB | 
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 1.5 KiB | 
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 61 KiB | 
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 135 KiB | 
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 1.6 KiB | 
|  | @ -866,6 +866,18 @@ const aliases = [ | ||||||
|         name: 'ball gag', |         name: 'ball gag', | ||||||
|         for: 'gag', |         for: 'gag', | ||||||
|     }, |     }, | ||||||
|  |     { | ||||||
|  |         name: 'ball lick', | ||||||
|  |         for: 'ball-licking', | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         name: 'ball suck', | ||||||
|  |         for: 'ball-licking', | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         name: 'ball sucking', | ||||||
|  |         for: 'ball-licking', | ||||||
|  |     }, | ||||||
|     { |     { | ||||||
|         name: 'boob fucking', |         name: 'boob fucking', | ||||||
|         for: 'titty-fuck', |         for: 'titty-fuck', | ||||||
|  | @ -878,6 +890,10 @@ const aliases = [ | ||||||
|         name: 'fmf', |         name: 'fmf', | ||||||
|         for: 'mff', |         for: 'mff', | ||||||
|     }, |     }, | ||||||
|  |     { | ||||||
|  |         name: 'mff', | ||||||
|  |         for: 'mff', | ||||||
|  |     }, | ||||||
|     { |     { | ||||||
|         name: 'ffm', |         name: 'ffm', | ||||||
|         for: 'mff', |         for: 'mff', | ||||||
|  |  | ||||||
|  | @ -48,6 +48,11 @@ const networks = [ | ||||||
|         description: 'Adult Time is a premium streaming service for adults! Watch adult movies, series, and channels from the top names in the industry.', |         description: 'Adult Time is a premium streaming service for adults! Watch adult movies, series, and channels from the top names in the industry.', | ||||||
|         parent: 'gamma', |         parent: 'gamma', | ||||||
|     }, |     }, | ||||||
|  |     { | ||||||
|  |         slug: 'amateurallure', | ||||||
|  |         name: 'Amateur Allure', | ||||||
|  |         url: 'https://www.amateurallure.com', | ||||||
|  |     }, | ||||||
|     { |     { | ||||||
|         slug: 'assylum', |         slug: 'assylum', | ||||||
|         name: 'Assylum', |         name: 'Assylum', | ||||||
|  |  | ||||||
|  | @ -388,6 +388,29 @@ const sites = [ | ||||||
|         description: 'LadyGonzo.com is a new Adult Time porn series featuring Joanna Angel shooting hardcore sex and gonzo porn movies the way she\'d like to see it!', |         description: 'LadyGonzo.com is a new Adult Time porn series featuring Joanna Angel shooting hardcore sex and gonzo porn movies the way she\'d like to see it!', | ||||||
|         network: 'adulttime', |         network: 'adulttime', | ||||||
|     }, |     }, | ||||||
|  |     // AMATEUR ALLURE
 | ||||||
|  |     { | ||||||
|  |         name: 'Amateur Allure', | ||||||
|  |         slug: 'amateurallure', | ||||||
|  |         url: 'https://www.amateurallure.com', | ||||||
|  |         parameters: { | ||||||
|  |             upcoming: false, | ||||||
|  |             latest: 'https://www.amateurallure.com/tour/updates/page_%d.html', | ||||||
|  |             photos: 'https://www.amateurallure.com/tour/gallery.php', | ||||||
|  |         }, | ||||||
|  |         network: 'amateurallure', | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         name: 'Swallow Salon', | ||||||
|  |         slug: 'swallowsalon', | ||||||
|  |         url: 'https://www.swallowsalon.com', | ||||||
|  |         parameters: { | ||||||
|  |             upcoming: false, | ||||||
|  |             latest: 'https://www.swallowsalon.com/categories/movies_%d_d.html', | ||||||
|  |             photos: 'https://www.swallowsalon.com/gallery.php', | ||||||
|  |         }, | ||||||
|  |         network: 'amateurallure', | ||||||
|  |     }, | ||||||
|     // ASSYLUM
 |     // ASSYLUM
 | ||||||
|     { |     { | ||||||
|         slug: 'assylum', |         slug: 'assylum', | ||||||
|  |  | ||||||
|  | @ -94,6 +94,8 @@ async function extractItem(source) { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| async function fetchItem(source, index, existingItemsBySource, domain, role, attempt = 1, originalSource = null) { | async function fetchItem(source, index, existingItemsBySource, domain, role, attempt = 1, originalSource = null) { | ||||||
|  |     if (!source) return null; | ||||||
|  | 
 | ||||||
|     try { |     try { | ||||||
|         if (Array.isArray(source)) { |         if (Array.isArray(source)) { | ||||||
|             if (source.every(sourceX => !!sourceX.quality)) { |             if (source.every(sourceX => !!sourceX.quality)) { | ||||||
|  | @ -124,7 +126,12 @@ async function fetchItem(source, index, existingItemsBySource, domain, role, att | ||||||
|         logger.verbose(`Fetching ${domain} ${role} from ${source.src || source}`); |         logger.verbose(`Fetching ${domain} ${role} from ${source.src || source}`); | ||||||
| 
 | 
 | ||||||
|         // const res = await bhttp.get(source.src || source);
 |         // const res = await bhttp.get(source.src || source);
 | ||||||
|         const res = await get(source.src || source); |         const res = await get(source.src || source, { | ||||||
|  |             headers: { | ||||||
|  |                 ...(source.referer && { referer: source.referer }), | ||||||
|  |                 ...(source.host && { host: source.host }), | ||||||
|  |             }, | ||||||
|  |         }); | ||||||
| 
 | 
 | ||||||
|         if (res.statusCode === 200) { |         if (res.statusCode === 200) { | ||||||
|             const { pathname } = new URL(source.src || source); |             const { pathname } = new URL(source.src || source); | ||||||
|  |  | ||||||
|  | @ -0,0 +1,49 @@ | ||||||
|  | 'use strict'; | ||||||
|  | 
 | ||||||
|  | const { fetchLatest, fetchScene } = require('./julesjordan'); | ||||||
|  | 
 | ||||||
|  | function extractActors(scene) { | ||||||
|  |     const release = scene; | ||||||
|  | 
 | ||||||
|  |     if (!scene.actors || scene.actors.length === 0) { | ||||||
|  |         const introActorMatches = scene.title.match(/(?:presents|introduces|features|welcomes) (\w+ \w+)/i); | ||||||
|  |         const introTwoActorMatches = scene.title.match(/(?:presents|introduces|features|welcomes) (?:(\w+)|(\w+ \w+)) and (\w+ \w+)/i); | ||||||
|  |         const returnActorMatches = scene.title.match(/(?:(^\w+)|(\w+ \w+))(?:,| (?:return|visit|pov|give|suck|lick|milk|love|enjoy|service|is))/i); | ||||||
|  |         const returnTwoActorMatches = scene.title.match(/(\w+ \w+) and (?:(\w+)|(\w+ \w+)) (?:return|visit|give|suck|lick|milk|love|enjoy|service|are)/i); | ||||||
|  | 
 | ||||||
|  |         const rawActors = (introTwoActorMatches || introActorMatches || returnTwoActorMatches || returnActorMatches)?.slice(1); | ||||||
|  |         const actors = rawActors?.filter((actor) => { | ||||||
|  |             if (!actor) return false; | ||||||
|  |             if (/swallow|\bcum|fuck|suck|give|giving|take|takes|taking|head|teen|babe|cute|beaut|naughty|teacher|nanny|adorable|brunette|blonde|bust|audition|from|\band\b|\bto\b/i.test(actor)) return false; | ||||||
|  | 
 | ||||||
|  |             return true; | ||||||
|  |         }); | ||||||
|  | 
 | ||||||
|  |         if (actors) { | ||||||
|  |             release.actors = actors; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     if (release.actors?.length > 1 || /threesome|threeway/.test(scene.title)) { | ||||||
|  |         release.tags = scene.tags ? [...scene.tags, 'mff'] : ['mff']; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     return release; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | async function fetchLatestWrap(site, page = 1) { | ||||||
|  |     const latest = await fetchLatest(site, page); | ||||||
|  | 
 | ||||||
|  |     return latest.map(scene => extractActors(scene)); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | async function fetchSceneWrap(url, site) { | ||||||
|  |     const scene = await fetchScene(url, site); | ||||||
|  | 
 | ||||||
|  |     return extractActors(scene); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | module.exports = { | ||||||
|  |     fetchLatest: fetchLatestWrap, | ||||||
|  |     fetchScene: fetchSceneWrap, | ||||||
|  | }; | ||||||
|  | @ -1,5 +1,6 @@ | ||||||
| 'use strict'; | 'use strict'; | ||||||
| 
 | 
 | ||||||
|  | const util = require('util'); | ||||||
| const Promise = require('bluebird'); | const Promise = require('bluebird'); | ||||||
| const bhttp = require('bhttp'); | const bhttp = require('bhttp'); | ||||||
| const cheerio = require('cheerio'); | const cheerio = require('cheerio'); | ||||||
|  | @ -78,7 +79,7 @@ async function getPhotosLegacy(entryId, site, type = 'highres', page = 1) { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| async function getPhotos(entryId, site, type = 'highres', page = 1) { | async function getPhotos(entryId, site, type = 'highres', page = 1) { | ||||||
|     const albumUrl = `${site.url}/trial/gallery.php?id=${entryId}&type=${type}&page=${page}`; |     const albumUrl = `${site.parameters?.photos || `${site.url}/gallery.php`}?id=${entryId}&type=${type}&page=${page}`; | ||||||
| 
 | 
 | ||||||
|     const res = await bhttp.get(albumUrl); |     const res = await bhttp.get(albumUrl); | ||||||
|     const html = res.body.toString(); |     const html = res.body.toString(); | ||||||
|  | @ -86,7 +87,10 @@ async function getPhotos(entryId, site, type = 'highres', page = 1) { | ||||||
|     const sourceLines = html.split(/\n/).filter(line => line.match(/ptx\["\w+"\]/)); |     const sourceLines = html.split(/\n/).filter(line => line.match(/ptx\["\w+"\]/)); | ||||||
|     const sources = sourceLines.reduce((acc, sourceLine) => { |     const sources = sourceLines.reduce((acc, sourceLine) => { | ||||||
|         const quality = sourceLine.match(/\["\w+"\]/)[0].slice(2, -2); |         const quality = sourceLine.match(/\["\w+"\]/)[0].slice(2, -2); | ||||||
|         const source = sourceLine.slice(sourceLine.indexOf('/trial'), sourceLine.indexOf('.jpg') + 4); |         const sourceStart = sourceLine.match(/\/trial|\/tour|\/content/); | ||||||
|  | 
 | ||||||
|  |         if (!sourceStart) return acc; | ||||||
|  |         const source = sourceLine.slice(sourceStart.index, sourceLine.indexOf('.jpg') + 4); | ||||||
| 
 | 
 | ||||||
|         if (!source) return acc; |         if (!source) return acc; | ||||||
|         if (!acc[quality]) acc[quality] = []; |         if (!acc[quality]) acc[quality] = []; | ||||||
|  | @ -120,9 +124,9 @@ function scrapeLatest(html, site) { | ||||||
|     return scenesElements.map((element) => { |     return scenesElements.map((element) => { | ||||||
|         const release = {}; |         const release = {}; | ||||||
| 
 | 
 | ||||||
|         const sceneLinkElement = $(element).find('a[title*=" "]'); |         const sceneLinkElement = $(element).find('a[title], .update_title a'); | ||||||
|         release.url = sceneLinkElement.attr('href'); |         release.url = sceneLinkElement.attr('href'); | ||||||
|         release.title = sceneLinkElement.text(); |         release.title = sceneLinkElement.text()?.trim() || sceneLinkElement.attr('alt')?.trim(); | ||||||
| 
 | 
 | ||||||
|         release.entryId = $(element).attr('data-setid'); |         release.entryId = $(element).attr('data-setid'); | ||||||
| 
 | 
 | ||||||
|  | @ -135,14 +139,16 @@ function scrapeLatest(html, site) { | ||||||
|             .toArray(); |             .toArray(); | ||||||
| 
 | 
 | ||||||
|         const photoElement = $(element).find('a img.thumbs'); |         const photoElement = $(element).find('a img.thumbs'); | ||||||
|         const photoCount = Number(photoElement.attr('cnt')); |         const photoCount = Number(photoElement.attr('cnt')) || 1; | ||||||
|         [release.poster, ...release.photos] = Array.from({ length: photoCount }, (value, index) => { |         [release.poster, ...release.photos] = Array.from({ length: photoCount }, (value, index) => { | ||||||
|             const src = photoElement.attr(`src${index}_1x`) || photoElement.attr(`src${index}`); |             const src = photoElement.attr(`src${index}_1x`) || photoElement.attr(`src${index}`) || photoElement.attr('src'); | ||||||
| 
 | 
 | ||||||
|             if (!src) return null; |             if (!src) return null; | ||||||
|             if (src.match(/^http/)) return src; |  | ||||||
| 
 | 
 | ||||||
|             return `${site.url}${src}`; |             return { | ||||||
|  |                 src: /^http/.test(src) ? src : `${site.url}${src}`, | ||||||
|  |                 referer: site.url, | ||||||
|  |             }; | ||||||
|         }).filter(photoUrl => photoUrl); |         }).filter(photoUrl => photoUrl); | ||||||
| 
 | 
 | ||||||
|         const teaserScript = $(element).find('script').html(); |         const teaserScript = $(element).find('script').html(); | ||||||
|  | @ -249,21 +255,39 @@ async function scrapeScene(html, url, site) { | ||||||
|         .split('\n'); |         .split('\n'); | ||||||
| 
 | 
 | ||||||
|     const posterPath = infoLines.find(line => line.match('useimage')).replace('useimage = "', '').slice(0, -2); |     const posterPath = infoLines.find(line => line.match('useimage')).replace('useimage = "', '').slice(0, -2); | ||||||
|     if (posterPath) release.poster = posterPath.match(/^http/) ? posterPath : `${site.url}${posterPath}`; |  | ||||||
| 
 | 
 | ||||||
|     const trailerLine = infoLines.find(line => line.match('movie["Trailer_720"]')); |     if (posterPath) { | ||||||
|  |         const poster = /^http/.test(posterPath) ? posterPath : `${site.url}${posterPath}`; | ||||||
|  | 
 | ||||||
|  |         if (poster) { | ||||||
|  |             release.poster = { | ||||||
|  |                 src: poster, | ||||||
|  |                 referer: site.url, | ||||||
|  |             }; | ||||||
|  |         } | ||||||
|  |     } | ||||||
| 
 | 
 | ||||||
|     if (site.slug !== 'manuelferrara') { |     if (site.slug !== 'manuelferrara') { | ||||||
|         release.trailer = { |         const trailerLines = infoLines.filter(line => /movie\["Trailer\w*"\]\[/.test(line)); | ||||||
|             src: trailerLine.slice(trailerLine.indexOf('path:"') + 6, trailerLine.indexOf('",movie')), | 
 | ||||||
|             quality: 720, |         if (trailerLines.length) { | ||||||
|  |             release.trailer = trailerLines.map((trailerLine) => { | ||||||
|  |                 const src = trailerLine.match(/path:"([\w:/.&=?%]+)"/)?.[1]; | ||||||
|  |                 const quality = trailerLine.match(/movie_height:'(\d+)/)?.[1]; | ||||||
|  | 
 | ||||||
|  |                 return src && { | ||||||
|  |                     src: /^http/.test(src) ? src : `${site.url}${src}`, | ||||||
|  |                     quality: quality && Number(quality), | ||||||
|                 }; |                 }; | ||||||
|  |             }).filter(Boolean); | ||||||
|  |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     release.photos = await getPhotos(release.entryId, site); |     release.photos = await getPhotos(release.entryId, site); | ||||||
| 
 |  | ||||||
|     release.tags = $('.update_tags a').map((tagIndex, tagElement) => $(tagElement).text()).toArray(); |     release.tags = $('.update_tags a').map((tagIndex, tagElement) => $(tagElement).text()).toArray(); | ||||||
|     release.movie = $('.update_dvds a').attr('href'); | 
 | ||||||
|  |     const movie = $('.update_dvds a').attr('href'); | ||||||
|  |     if (movie) release.movie = movie; | ||||||
| 
 | 
 | ||||||
|     release.stars = Number($('.avg_rating').text().trim().replace(/[\s|Avg Rating:]/g, '')); |     release.stars = Number($('.avg_rating').text().trim().replace(/[\s|Avg Rating:]/g, '')); | ||||||
| 
 | 
 | ||||||
|  | @ -320,15 +344,27 @@ function scrapeProfile(html, url, actorName) { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| async function fetchLatest(site, page = 1) { | async function fetchLatest(site, page = 1) { | ||||||
|     const res = await bhttp.get(`${site.url}/trial/categories/movies_${page}_d.html`); |     const url = site.parameters?.latest ? util.format(site.parameters.latest, page) : `${site.url}/trial/categories/movies_${page}_d.html`; | ||||||
|  |     const res = await bhttp.get(url); | ||||||
| 
 | 
 | ||||||
|  |     if (res.statusCode === 200) { | ||||||
|         return scrapeLatest(res.body.toString(), site); |         return scrapeLatest(res.body.toString(), site); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     return res.statusCode; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| async function fetchUpcoming(site) { | async function fetchUpcoming(site) { | ||||||
|     const res = await bhttp.get(`${site.url}/trial/index.php`); |     if (site.parameters?.upcoming === false) return null; | ||||||
| 
 | 
 | ||||||
|  |     const url = site.parameters?.upcoming ? util.format(site.parameters.upcoming) : `${site.url}/trial/index.php`; | ||||||
|  |     const res = await bhttp.get(url); | ||||||
|  | 
 | ||||||
|  |     if (res.statusCode === 200) { | ||||||
|         return scrapeUpcoming(res.body.toString(), site); |         return scrapeUpcoming(res.body.toString(), site); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     return res.statusCode; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| async function fetchScene(url, site) { | async function fetchScene(url, site) { | ||||||
|  |  | ||||||
|  | @ -2,6 +2,7 @@ | ||||||
| 
 | 
 | ||||||
| const adulttime = require('./adulttime'); | const adulttime = require('./adulttime'); | ||||||
| const assylum = require('./assylum'); | const assylum = require('./assylum'); | ||||||
|  | const amateurallure = require('./amateurallure'); | ||||||
| const babes = require('./babes'); | const babes = require('./babes'); | ||||||
| const bang = require('./bang'); | const bang = require('./bang'); | ||||||
| const bangbros = require('./bangbros'); | const bangbros = require('./bangbros'); | ||||||
|  | @ -65,6 +66,7 @@ module.exports = { | ||||||
|         '21sextreme': sextreme, |         '21sextreme': sextreme, | ||||||
|         '21sextury': sextury, |         '21sextury': sextury, | ||||||
|         adulttime, |         adulttime, | ||||||
|  |         amateurallure, | ||||||
|         assylum, |         assylum, | ||||||
|         babes, |         babes, | ||||||
|         bang, |         bang, | ||||||
|  | @ -83,6 +85,7 @@ module.exports = { | ||||||
|         fantasymassage, |         fantasymassage, | ||||||
|         fullpornnetwork, |         fullpornnetwork, | ||||||
|         girlsway, |         girlsway, | ||||||
|  |         girlgirl: julesjordan, | ||||||
|         insex, |         insex, | ||||||
|         jayrock, |         jayrock, | ||||||
|         julesjordan, |         julesjordan, | ||||||
|  | @ -106,6 +109,7 @@ module.exports = { | ||||||
|         puretaboo, |         puretaboo, | ||||||
|         realitykings, |         realitykings, | ||||||
|         score, |         score, | ||||||
|  |         swallowsalon: julesjordan, | ||||||
|         teamskeet, |         teamskeet, | ||||||
|         twistys, |         twistys, | ||||||
|         vivid, |         vivid, | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue