name: "StasyQ"
sceneByURL:
  - action: scrapeXPath
    url:
      - stasyq.com/r/
    scraper: sceneScraper
performerByURL:
  - action: scrapeXPath
    url:
      - stasyq.com/m/
    scraper: performerScraper
performerByName:
  action: scrapeXPath
  queryURL: https://www.stasyq.com/search/{}
  scraper: performerSearch
xPathScrapers:
  sceneScraper:
    common:
      $script: //script[contains(.,'VideoObject')]/text()
      $performer: //div[@class="release-card"]//a[@class="custom-link"]
    scene:
      Title: //h1/text()
      Details: //div[@class="about-section__text"]
      Date:
        selector: $script
        postProcess:
          - replace:
              - regex: .+(?:uploadDate":\s")([^"]+).+
                with: $1
              - regex: .+schema\.org.+
                with:
          - parseDate: 2006-01-02
      Image:
        selector: $script
        postProcess:
          - replace:
              - regex: .+(?:thumbnailUrl":\s")([^"]+).+
                with: $1
              - regex: .+schema\.org.+
                with:
      Studio:
        Name:
          fixed: StasyQ
      Tags:
        Name: //a[contains(@href,'/search/')]//text()

      Performers:
        Name: $performer//text()
        URL: $performer/@href
      URL: //link[@rel='canonical']/@href
  performerSearch:
    performer:
      Name: //div[@class="model-preview-card__info"]//a[contains(@href,'/m/')]/text()
      URL:
        selector: //div[@class="model-preview-card__info"]//a[contains(@href,'/m/')]/@href
  performerScraper:
    common:
      $script: //script[contains(.,'schema')]/text()
    performer:
      Name:
        selector: $script
        postProcess:
          - replace:
              - regex: .+(?:name":\s")([^"]+).+
                with: $1
              - regex: .+schema\.org.+
                with:
      Aliases:
        selector: $script
        postProcess:
          - replace:
              - regex: .+(?:alternateName":.")([^"]+).+
                with: $1
              - regex: .+schema\.org.+
                with:
      Gender:
        selector: $script
        postProcess:
          - replace:
              - regex: .+(?:gender"\s:\s")([^"]+).+
                with: $1
              - regex: .+schema\.org.+
                with:
      Country:
        selector: $script
        postProcess:
          - replace:
              - regex: .+(?:birthPlace":\s")([^"]+).+
                with: $1
              - regex: .+schema\.org.+
                with:
      Height:
        selector: $script
        postProcess:
          - replace:
              - regex: .+(?:height":\s")(\d+).+
                with: $1
              - regex: .+schema\.org.+
                with:
      Weight:
        selector: $script
        postProcess:
          - replace:
              - regex: .+(?:weight":\s")(\d+).+
                with: $1
              - regex: .+schema\.org.+
                with:
      Image:
        selector: $script
        postProcess:
          - replace:
              - regex: .+(?:image":\s")([^"]+).+
                with: $1
              - regex: .+schema\.org.+
                with:
      Details:
        selector: $script
        postProcess:
          - replace:
              - regex: (\\u2019|&#39;|&rsquo;)
                with: "'"
              - regex: \\
                with:
              - regex: .+(?:description":")(.+)",".+
                with: $1
              - regex: .+schema\.org.+
                with:
      URL: //link[@rel='canonical']/@href
# Last Updated July 17, 2022
