name: "GammaEntertainment" sceneByURL: - action: scrapeXPath url: - alettaoceanempire.com/en/video/ - analacrobats.com/en/video/ - ashleyfires.com/ - bigfatcreampie.com/ - bskow.com/en/video/ - bushybushy.com/ - buttman.com/ - cumshotoasis.com/ - currycreampie.com/ - devilsfilmparodies.com/ - devilsgangbangs.com/ - devonlee.com/ - dylanryder.com/ - familycreep.com/ - fistingcentral.com/ - gapingangels.com/ - girlsandstuds.com/ - grannyghetto.com/ - jaysinxxx.com/ - jonnidarkkoxxx.com/ - lanesisters.com/ - lesbianfactor.com/ - lexingtonsteele.com/ - maledigital.com/en/video/ - maskurbate.com/en/video/ - motherfuckerxxx.com/ - myteenoasis.com/ - openlife.com/ - pantypops.com/ - povblowjobs.com/ - povthis.com/ - silverstonedvd.com/ - silviasaint.com/ - squirtalicious.com/ - squirtinglesbian.com/en/video/ - squirtingorgies.com/en/scene/ - strapattackers.com/ - sunnyleone.com/ - tittycreampies.com/ - transsexualangel.com/en/video/ - transsexualroadtrip.com/ - whiteghetto.com/ scraper: sceneScraper performerByURL: - action: scrapeXPath url: - activeduty.com/en/pornstar/ - assholefever.com/en/pornstar/ - evilangel.com/en/pornstar/ scraper: performerScraper movieByURL: - action: scrapeXPath url: - darkx.com/en/movie/ - hardx.com/en/movie/ - xempire.com/en/movie/ scraper: movieScraper xPathScrapers: sceneScraper: common: $info: //div[@id="sceneInfoPlayer"]/div $actors: //div[@class="sceneCol sceneColActors"] $tags: //div[@class="sceneCol sceneColCategories"] $detailscript: //script[contains(text(), 'sceneDetails')]/text() scene: Title: //div[@id="breadcrumb"]/span[3]/text()|//div[@id="breadCrumb"]/span[3]/text()|//div[@id="BreadcrumbMenu"]/span[3]/text()|//h1[@class="sceneTitle"]/text()|//div[@id="playerWrapper"]//h1/text()|//div[@id="scenePlayer"]//h1/text()|//div[@id="scenePlayerScene"]//h1/text()|//h3[@class="sceneTitle"]/text() Date: selector: //li[@class="updatedDate"]/text()[2]|//div[@class="updatedDate"]/text()[2]|//p[@class="updatedDate"]/text()[2]|//div[@class="sceneCol updatedDate"]/span/text()|//p[@class="p-updated"]/text() postProcess: - replace: - regex: (\d{4})-(\d{2})-(\d{2}) with: $2-$3-$1 - regex: (\d{2})\/(\d{2})\/(\d{4}) with: $1-$2-$3 - regex: ":" with: - parseDate: 01-02-2006 Details: selector: $detailscript postProcess: - replace: - regex: .+(?:sceneDescription":")(.+)(?:","sceneActors).+ with: $1 # Second regex in case no description is provided. - regex: .+(?:"sceneDescription":"").+ with: - regex: <\\\/br>||
| with: "\n" - regex: |<\\\/strong> with: Tags: Name: $tags/a/text()|//div[@class="sceneCol categories"]/a/text()|//div[@class="sceneCol sceneColCategories"]//span[not(@class="categorySeparator")]/text()|//div[@class="sceneCategories"]/a/text() Performers: Name: $actors/a/text()|$actors//span[not(@class="actorSeparator")]/text()|//div[@class="sceneCol actors"]/a/text()|//span[@class="slide-title"]/text()|//a[@class="pornstarName"]/strong/text()|//p[@class="starringLinks"]/a/text()|//p[@class="p-actors"]/a/text() Movies: Name: selector: $info/a/img/@title|//a[@class="sceneLink "]/@title|//a[@class="dvdLink "]/@title URL: selector: //link[@rel='canonical']/@href|$info/a/@href concat: "|" postProcess: - replace: - regex: \.com.*[|] with: ".com" Image: selector: //script[contains(text(), 'picPreview')]/text() postProcess: - replace: - regex: .+(?:picPreview":")([\w:]+)(?:[\\\/]+)([\w-\.]+)(?:[\\\/]+)(\w+)(?:[\\\/]+)(\d+)(?:[\\\/]+)([\d_]+)(?:[\\\/]+)(\w+)(?:[\\\/]+)(\d+)(?:[\\\/]+)(\d+)(?:[\\\/]+)([\w]+)(?:[\\\/]+)([\w.]+).+ with: $1//$2/$3/$4/$5/$6/$7/$8/$9/$10 # if using the transport subdomain, parameters need to be passed # otherwise a cropped square image is returned by default - regex: (https:\/\/transform.+) with: $1?width=1920&height=1080&enlarge=true Studio: Name: selector: //*[local-name()="div" or local-name()=p][contains(text(),"is a site owned and operated by Gamma")]|//meta[@name="twitter:domain"]/@content postProcess: - replace: - regex: ([^\.]+)\.com(\s+)is(.+) with: $1 - regex: \.com$ with: "" - map: activeduty: Active Duty alettaoceanempire: Aletta Ocean Empire allblackx: All Black X analacrobats: Anal Acrobats ashleyfires: Ashley Fires bigfatcreampie: Big Fat Cream Pie bskow: BsKow bushybushy: Bushy Bushy buttman: Buttman cumshotoasis: Cumshot Oasis currycreampie: Curry Creampie darkx: DarkX devilsfilmparodies: Devil's Film Parodies devilsgangbangs: Devil's Gangbangs devonlee: Devon Lee dylanryder: Dylan Ryder eroticax: EroticaX evilangel: Evil Angel familycreep: Family Creep fistingcentral: Fisting Central gapingangels: Gaping Angels girlsandstuds: Girls And Studs grannyghetto: Granny Ghetto jaysinxxx: Jay Sin XXX jonnidarkkoxxx: Jonni Darkko XXX lanesisters: Lane Sisters lesbianfactor: Lesbian Factor lesbianx: Lesbian X lexingtonsteele: Lexington Steele maledigital: Male Digital maskurbate: Maskurbate motherfuckerxxx: Mother Fucker XXX myteenoasis: My Teen Oasis openlife: Open Life outofthefamily: Out Of The Family pantypops: Panty Pops povblowjobs: POV Blowjobs povthis: POV This silverstonedvd: Silverstone DVD silviasaint: Silvia Saint squirtalicious: Squirtalicious squirtinglesbian: Squirting Lesbian squirtingorgies: Squirting Orgies strapattackers: Strap Attackers sunnyleone: Sunny Leone tittycreampies: Titty Creampies transsexualangel: Transsexual Angel transsexualroadtrip: Transsexual Roadtrip whiteghetto: White Ghetto xempire: XEmpire performerScraper: performer: Name: //h1[@class='actorName'] Image: //img[@class='actorPicture']/@src movieScraper: movie: Name: //h3[@class='dvdTitle']//text() Director: //ul[@class='directedBy']/li/a/text() Duration: //li[@class='length']/text() Date: selector: //li[@class='updatedOn']/text() postProcess: - parseDate: 2006-01-02 Synopsis: //p[@class='descriptionText']/text() Studio: Name: //a[contains(@class, 'GA_Id_headerLogo')]/span[@class='linkMainCaption']/text() FrontImage: //a[@class='frontCoverImg']/@href BackImage: //a[@class='backCoverImg']/@href # Last Updated February 24, 2024