Files
compose-projects-arr/stash/config/scrapers/community/FreeonesCommunity/FreeonesCommunity.yml
Christoph Califice 0a5f88d75a stash
2025-10-10 09:50:30 -03:00

205 lines
6.1 KiB
YAML

name: FreeonesCommunity
performerByName:
action: scrapeXPath
queryURL: https://www.freeones.com/babes?q={}&v=teasers&s=relevance&l=96&m%5BcanPreviewFeatures%5D=0
scraper: performerSearch
performerByURL:
- action: scrapeXPath
url:
- freeones.xxx
- freeones.com
scraper: performerScraper
sceneByName:
action: scrapeXPath
queryURL: https://www.freeones.com/vod?q={}
scraper: sceneSearch
sceneByQueryFragment:
action: scrapeXPath
queryURL: "{url}"
scraper: sceneScraper
sceneByURL:
- action: scrapeXPath
url:
- www.freeones.com
scraper: sceneScraper
movieByURL:
- action: scrapeXPath
url:
- www.freeones.com
scraper: movieScraper
xPathScrapers:
performerSearch:
performer:
Name: //div[@id="search-result"]//p[@data-test="subject-name"]/text()
URL:
selector: //div[@id="search-result"]//div[@data-test="teaser-subject"]/a/@href
postProcess:
- replace:
- regex: ^
with: https://www.freeones.com
- regex: /feed$
with: /bio
sceneSearch:
common:
$movieTitle: //div[@data-test="teaser-vod"]//img
scene:
Title: $movieTitle/@alt
Image: $movieTitle/@src
URL:
selector: //div[@data-test="teaser-vod"]/a/@href
postProcess:
- replace:
- regex: ^
with: "https://www.freeones.com"
sceneScraper:
common:
$commonRoot: //*[@id="description"]
$performerName: //a[@data-test="link_Cast"]
scene:
Title: //h1
URL: //link[@rel="alternate"][1]/@href
Details: $commonRoot//div[contains(concat(' ',normalize-space(@class),' '),' pb-2 ')]
Studio:
Name: $commonRoot//span[@data-test="link_span_Studio"]
Director: $commonRoot//span[@data-test="link_span_Director"]
Date:
selector: //div[contains(concat(' ',normalize-space(@class),' '),' mid-content-pr-past-date ')]
postProcess:
- replace:
- regex: .+?(\w+\s\d{1,2},\s\d{4}).+
with: $1
- parseDate: January 2, 2006
Movies:
Name: //h1
URL: //link[@rel="alternate"][1]/@href
Performers:
Name: $performerName/span
Tags:
Name: //li[@class="list-inline-item"]/a
# URL:
# selector: $performerName/@href
# postProcess:
# - replace:
# - regex: ^
# with: "https://www.freeones.com"
movieScraper:
common:
$commonRoot: //*[@id="description"]
$performerName: //a[@data-test="link_Cast"]
movie:
Name: //h1
Synopsis: $commonRoot//div[contains(concat(' ',normalize-space(@class),' '),' pb-2 ')]
Duration: $commonRoot//span[@data-test="link_span_Duration"]
Studio:
Name: $commonRoot//span[@data-test="link_span_Studio"]
Director: $commonRoot//span[@data-test="link_span_Director"]
Date:
selector: //div[contains(concat(' ',normalize-space(@class),' '),' mid-content-pr-past-date ')]
postProcess:
- replace:
- regex: .+?(\w+\s\d{1,2},\s\d{4}).+
with: $1
- parseDate: January 2, 2006
FrontImage: //*[@id="fxgp-gallery"]/a[1]/@href
BackImage: //*[@id="fxgp-gallery"]/a[2]/@href
performerScraper:
performer:
Name:
selector: //h1
postProcess:
- replace:
- regex: (.+)\sidentifies.+
with: $1
URL: //link[@rel="alternate" and @hreflang="x-default"]/@href
Twitter: //form//a[contains(@href,'twitter.com/')]/@href
Instagram: //form//a[contains(@href,'instagram.com/')]/@href
Birthdate:
selector: //span[@data-test="link_span_dateOfBirth"]/text()
postProcess:
- parseDate: January 2, 2006
Ethnicity:
selector: //span[@data-test="link_span_ethnicity"]
postProcess:
- map:
Asian: Asian
Caucasian: White
Black: Black
Latin: Hispanic
Country:
selector: //a[@data-test="link_placeOfBirth"][contains(@href, 'country')]/span/text()
postProcess:
- map:
United States: "USA"
EyeColor: //span[text()='Eye Color:']/following-sibling::span/a/span/text()
Height:
selector: //span[text()='Height:']/following-sibling::span/a
postProcess:
- replace:
- regex: \scm
with: ""
- map:
Unknown: ""
Measurements:
selector: //span[(@data-test='link_span_bra') or (@data-test='link_span_waist') or (@data-test='link_span_hip')]
concat: " - "
postProcess:
- replace:
- regex: \sIn
with: ""
- map:
Unknown: ""
FakeTits:
selector: //span[text()='Boobs:']/following-sibling::span/a
postProcess:
- map:
Unknown: ""
Fake: "Yes"
Natural: "No"
CareerLength:
selector: //div[contains(@class,'timeline-horizontal')]//p[@class='m-0']
concat: "-"
Aliases:
selector: //span[@data-test='link_span_aliases']/text()
concat: ", "
Tattoos:
selector: //span[text()='Tattoo locations:']/following-sibling::span
postProcess:
- map:
Unknown: ""
Piercings:
selector: //span[text()='Piercing locations:']/following-sibling::span
postProcess:
- map:
Unknown: ""
Image:
selector: //div[contains(@class,'image-container')]//a/img/@src
Gender:
fixed: "Female"
#Details: //div[@data-test="biography"]
DeathDate:
selector: //div[contains(text(),'Passed away on')]
postProcess:
- replace:
- regex: Passed away on (.+) at the age of \d+
with: $1
- parseDate: January 2, 2006
HairColor: //span[@data-test="link_span_hair_color"]
Weight:
selector: //span[@data-test="link_span_weight"]
postProcess:
- replace:
- regex: \skg
with: ""
# Last Updated January 2, 2024