mirror of
https://github.com/stashapp/CommunityScrapers.git
synced 2025-12-11 11:18:56 -06:00
Fix date selector for Kink
Updates the studio name map based on their currently listed channels Changes Details postprocessing to attempt to replicate the linebreaks as displayed on the scene page Closes #1909
This commit is contained in:
parent
c34b2a3b53
commit
c118e0d973
@ -41,7 +41,7 @@ xPathScrapers:
|
|||||||
selector: //div[@data-setup]/@data-setup
|
selector: //div[@data-setup]/@data-setup
|
||||||
postProcess:
|
postProcess:
|
||||||
- replace:
|
- replace:
|
||||||
- regex: ^.*"publishedDate":"([^T]+).*$
|
- regex: ^.*"publishedDate":"([^"]+).*$
|
||||||
with: $1
|
with: $1
|
||||||
- parseDate: 2006-01-02
|
- parseDate: 2006-01-02
|
||||||
Director: //span[contains(@class, "director-name")]
|
Director: //span[contains(@class, "director-name")]
|
||||||
@ -53,32 +53,15 @@ xPathScrapers:
|
|||||||
- regex: /channel/
|
- regex: /channel/
|
||||||
with: ""
|
with: ""
|
||||||
- map:
|
- map:
|
||||||
# List of sites as of 2024-01-04 from https://www.kink.com/channels
|
# List of sites as of 2024-06-18 from https://www.kink.com/channels
|
||||||
# [...new Set([...document.querySelectorAll('h3 > a')]
|
# [...new Set([...document.querySelectorAll('a.h5[href^="/channel"]')]
|
||||||
# .map(a => a.href.split("/").pop() + ": " + a.innerText))]
|
# .map(a => a.href.split("/").pop() + ": " + a.innerText))]
|
||||||
# .toSorted()
|
# .toSorted()
|
||||||
# .join("\n")
|
# .join("\n")
|
||||||
analized: Analized
|
behind-kink: Behind Kink
|
||||||
animated-kink: Animated Kink
|
|
||||||
ashley-fires-scifi-dreamgirls: Ashley Fires SciFi Dreamgirls
|
|
||||||
aziani-iron: Aziani Iron
|
|
||||||
badfam-pov: Bad Family POV
|
|
||||||
ball-gaggers: Ball Gaggers
|
|
||||||
banana-jacks: Banana Jacks
|
|
||||||
bifuck: BiFUCK
|
|
||||||
bizarre-video-transsexual: Bizarre Video Transsexual
|
|
||||||
bizarre-video: Bizarre Video
|
|
||||||
bleu-films: Bleu Films
|
|
||||||
bondage-liberation: Bondage Liberation
|
bondage-liberation: Bondage Liberation
|
||||||
bound-gang-bangs: Bound Gang Bangs
|
bound-gang-bangs: Bound Gang Bangs
|
||||||
bound-men-wanked: Bound Men Wanked
|
|
||||||
brutal-sessions: Brutal Sessions
|
|
||||||
carmen-rivera: Carmen Rivera
|
|
||||||
cfnmeu: CFNMEU
|
|
||||||
ddf-network: DDF Network
|
|
||||||
deviant-hardcore: Deviant Hardcore
|
|
||||||
device-bondage: Device Bondage
|
device-bondage: Device Bondage
|
||||||
digital-sin: Digital Sin
|
|
||||||
divine-bitches: Divine Bitches
|
divine-bitches: Divine Bitches
|
||||||
dungeon-sex: Dungeon Sex
|
dungeon-sex: Dungeon Sex
|
||||||
electrosluts: Electrosluts
|
electrosluts: Electrosluts
|
||||||
@ -86,64 +69,32 @@ xPathScrapers:
|
|||||||
evolved-fights-lesbian-edition: Evolved Fights Lesbian Edition
|
evolved-fights-lesbian-edition: Evolved Fights Lesbian Edition
|
||||||
evolved-fights: Evolved Fights
|
evolved-fights: Evolved Fights
|
||||||
families-tied: Families Tied
|
families-tied: Families Tied
|
||||||
fembot-academy: Fembot Academy
|
|
||||||
femdum: FemDum
|
|
||||||
femme-fatale-films: Femme Fatale Films
|
|
||||||
fetishnetwork: FetishNetwork
|
|
||||||
filth-syndicate: Filth Syndicate
|
|
||||||
filthy-femdom: Filthy Femdom
|
filthy-femdom: Filthy Femdom
|
||||||
foot-worship: Foot Worship
|
foot-worship: Foot Worship
|
||||||
fucking-machines: Fucking Machines
|
fucking-machines: Fucking Machines
|
||||||
gangbang-chief: Gangbang Chief
|
|
||||||
gloryhole-secrets: Gloryhole Secrets
|
|
||||||
hardcore-gangbang: Hardcore Gangbang
|
hardcore-gangbang: Hardcore Gangbang
|
||||||
hardcore-punishments: Hardcore Punishments
|
|
||||||
harmony-fetish: Harmony Fetish
|
harmony-fetish: Harmony Fetish
|
||||||
hogtied-up: Hogtied Up
|
|
||||||
hogtied: Hogtied
|
hogtied: Hogtied
|
||||||
hot-legs-and-feet: Hot Legs & Feet
|
|
||||||
house-of-taboo: House Of Taboo
|
|
||||||
kink-classics: Kink Classics
|
kink-classics: Kink Classics
|
||||||
kink-features: Kink Features
|
kink-features: Kink Features
|
||||||
kink-test-shoots: Kink Test Shoots
|
kink-test-shoots: Kink Test Shoots
|
||||||
kink-university: Kink University
|
kink-university: Kink University
|
||||||
kinklive: KinkLive
|
kinklive: KinkLive
|
||||||
kinky-bites: Kinky Bites
|
kinky-bites: Kinky Bites
|
||||||
lakeview-entertainment: Lakeview Entertainment
|
|
||||||
machine-dom: Machine Dom
|
|
||||||
mean-bitch: Mean Bitch
|
mean-bitch: Mean Bitch
|
||||||
medical-y-sado: Medical Y Sado
|
|
||||||
men-in-pain: Men In Pain
|
men-in-pain: Men In Pain
|
||||||
pascals-sub-sluts: Pascals Sub Sluts
|
|
||||||
pegging: Pegging
|
|
||||||
peghim: PegHim
|
|
||||||
plumperd: Plumperd
|
|
||||||
pornforce: Porn Force
|
|
||||||
pornstar-platinum: Pornstar Platinum
|
|
||||||
pov-pickups: POV Pickups
|
|
||||||
public-disgrace: Public Disgrace
|
public-disgrace: Public Disgrace
|
||||||
revenge-of-the-baroness: Revenge Of The Baroness
|
quality-control: Quality Control
|
||||||
royal-fetish-films: Royal Fetish Films
|
|
||||||
savage-gangbang: Savage Gangbang
|
savage-gangbang: Savage Gangbang
|
||||||
severe-sex-films: Severe Sex Films
|
severe-sex-films: Severe Sex Films
|
||||||
sex-and-submission: Sex And Submission
|
sex-and-submission: Sex And Submission
|
||||||
sexual-disgrace: Sexual Disgrace
|
submissed: Submissed
|
||||||
sister-wives: Sister Wives
|
|
||||||
slutinspection: Slut Inspection
|
|
||||||
spizoo: Spizoo
|
|
||||||
strapon-squad: Strapon Squad
|
|
||||||
struggling-babes: Struggling Babes
|
|
||||||
submissive-x: Submissive X
|
submissive-x: Submissive X
|
||||||
submissived: Submissived
|
tease-and-thank-you: Tease And Thank You
|
||||||
sweet-femdom: Sweet FemDom
|
|
||||||
the-training-of-o: The Training Of O
|
the-training-of-o: The Training Of O
|
||||||
the-upper-floor: The Upper Floor
|
the-upper-floor: The Upper Floor
|
||||||
the-venus-girls: The Venus Girls
|
|
||||||
torment-time: Torment Time
|
|
||||||
transerotica: TransErotica
|
|
||||||
ts-pussy-hunters: TS Pussy Hunters
|
ts-pussy-hunters: TS Pussy Hunters
|
||||||
ts-seduction: TS Seduction
|
ts-seduction: TS Seduction
|
||||||
twisted-visual: Twisted Visual
|
|
||||||
ultimate-surrender: Ultimate Surrender
|
ultimate-surrender: Ultimate Surrender
|
||||||
wasteland: Wasteland
|
wasteland: Wasteland
|
||||||
water-bondage: Water Bondage
|
water-bondage: Water Bondage
|
||||||
@ -168,7 +119,7 @@ xPathScrapers:
|
|||||||
with: ""
|
with: ""
|
||||||
Details:
|
Details:
|
||||||
selector: //h4[contains(text(), "Description")]/following-sibling::*[1]//text()
|
selector: //h4[contains(text(), "Description")]/following-sibling::*[1]//text()
|
||||||
concat: "\n"
|
concat: "\n\n"
|
||||||
Image:
|
Image:
|
||||||
selector: //div[@data-setup]/@data-setup
|
selector: //div[@data-setup]/@data-setup
|
||||||
postProcess:
|
postProcess:
|
||||||
@ -212,7 +163,7 @@ xPathScrapers:
|
|||||||
postProcess:
|
postProcess:
|
||||||
- replace:
|
- replace:
|
||||||
- regex: .+
|
- regex: .+
|
||||||
with: 'Yes'
|
with: "Yes"
|
||||||
Piercings:
|
Piercings:
|
||||||
selector: //div/span[contains(text(),'tags:')]/following-sibling::a[contains(@href,'/pierced')]/span/text()
|
selector: //div/span[contains(text(),'tags:')]/following-sibling::a[contains(@href,'/pierced')]/span/text()
|
||||||
concat: "\n"
|
concat: "\n"
|
||||||
@ -225,65 +176,64 @@ xPathScrapers:
|
|||||||
- replace:
|
- replace:
|
||||||
- regex: "(?i)<a[^>]*>"
|
- regex: "(?i)<a[^>]*>"
|
||||||
with: ""
|
with: ""
|
||||||
FakeTits:
|
FakeTits:
|
||||||
selector: >
|
selector: >
|
||||||
//div/span[contains(text(),'tags:')]/following-sibling::a[contains(@href,'/fake-boobs')]/span/text()
|
//div/span[contains(text(),'tags:')]/following-sibling::a[contains(@href,'/fake-boobs') or contains(@href,'/natural-boobs')]/span/text()
|
||||||
| //div/span[contains(text(),'tags:')]/following-sibling::a[contains(@href,'/natural-boobs')]/span/text()
|
|
||||||
postProcess:
|
postProcess:
|
||||||
- replace:
|
- replace:
|
||||||
- regex: .*?Fake.+
|
- regex: .*?Fake.+
|
||||||
with: 'Yes'
|
with: "Yes"
|
||||||
- regex: .*?Natural.+
|
- regex: .*?Natural.+
|
||||||
with: 'No'
|
with: "No"
|
||||||
HairColor:
|
HairColor:
|
||||||
selector: >
|
selector: >
|
||||||
//div/span[contains(text(),'tags:')]/following-sibling::a[contains(@href,'/black-hair')]/span/text()
|
//div/span[contains(text(),'tags:')]/following-sibling::a[contains(@href,'/black-hair')]/span/text()
|
||||||
| //div/span[contains(text(),'tags:')]/following-sibling::a[contains(@href,'/brunet')]/span/text()
|
| //div/span[contains(text(),'tags:')]/following-sibling::a[contains(@href,'/brunet')]/span/text()
|
||||||
| //div/span[contains(text(),'tags:')]/following-sibling::a[contains(@href,'/brunette')]/span/text()
|
| //div/span[contains(text(),'tags:')]/following-sibling::a[contains(@href,'/brunette')]/span/text()
|
||||||
| //div/span[contains(text(),'tags:')]/following-sibling::a[contains(@href,'/blond')]/span/text()
|
| //div/span[contains(text(),'tags:')]/following-sibling::a[contains(@href,'/blond')]/span/text()
|
||||||
| //div/span[contains(text(),'tags:')]/following-sibling::a[contains(@href,'/blonde')]/span/text()
|
| //div/span[contains(text(),'tags:')]/following-sibling::a[contains(@href,'/blonde')]/span/text()
|
||||||
| //div/span[contains(text(),'tags:')]/following-sibling::a[contains(@href,'/redhead')]/span/text()
|
| //div/span[contains(text(),'tags:')]/following-sibling::a[contains(@href,'/redhead')]/span/text()
|
||||||
postProcess:
|
postProcess:
|
||||||
- replace:
|
- replace:
|
||||||
- regex: \sHair
|
- regex: \sHair
|
||||||
with: ''
|
with: ""
|
||||||
Ethnicity:
|
Ethnicity:
|
||||||
selector: >
|
selector: >
|
||||||
//div/span[contains(text(),'tags:')]/following-sibling::a[contains(@href,'/asian')]/span/text()
|
//div/span[contains(text(),'tags:')]/following-sibling::a[contains(@href,'/asian')]/span/text()
|
||||||
| //div/span[contains(text(),'tags:')]/following-sibling::a[contains(@href,'/black')]/span/text()
|
| //div/span[contains(text(),'tags:')]/following-sibling::a[contains(@href,'/black')]/span/text()
|
||||||
| //div/span[contains(text(),'tags:')]/following-sibling::a[contains(@href,'/latin')]/span/text()
|
| //div/span[contains(text(),'tags:')]/following-sibling::a[contains(@href,'/latin')]/span/text()
|
||||||
| //div/span[contains(text(),'tags:')]/following-sibling::a[contains(@href,'/mixed')]/span/text()
|
| //div/span[contains(text(),'tags:')]/following-sibling::a[contains(@href,'/mixed')]/span/text()
|
||||||
| //div/span[contains(text(),'tags:')]/following-sibling::a[contains(@href,'/white')]/span/text()
|
| //div/span[contains(text(),'tags:')]/following-sibling::a[contains(@href,'/white')]/span/text()
|
||||||
Circumcised:
|
Circumcised:
|
||||||
selector: >
|
selector: >
|
||||||
//div/span[contains(text(),'tags:')]/following-sibling::a[contains(@href,'/circumcised')]/span/text()
|
//div/span[contains(text(),'tags:')]/following-sibling::a[contains(@href,'/circumcised')]/span/text()
|
||||||
| //div/span[contains(text(),'tags:')]/following-sibling::a[contains(@href,'/uncircumcised')]/span/text()
|
| //div/span[contains(text(),'tags:')]/following-sibling::a[contains(@href,'/uncircumcised')]/span/text()
|
||||||
postProcess:
|
postProcess:
|
||||||
- replace:
|
- replace:
|
||||||
- regex: Uncircumcised
|
- regex: Uncircumcised
|
||||||
with: 'Uncut'
|
with: "Uncut"
|
||||||
- regex: Circumcised
|
- regex: Circumcised
|
||||||
with: 'Cut'
|
with: "Cut"
|
||||||
Gender:
|
Gender:
|
||||||
selector: //script[contains(.,'KinkyTracking.all')]
|
selector: //script[contains(.,'KinkyTracking.all')]
|
||||||
postProcess:
|
postProcess:
|
||||||
- replace:
|
- replace:
|
||||||
- regex: .+?"((modelGender)|(genderIds))":"((woman)|(man)|(nonbinary)|(tsman)|(tswoman)|(unknown))".+
|
- regex: .+?"((modelGender)|(genderIds))":"((woman)|(man)|(nonbinary)|(tsman)|(tswoman)|(unknown))".+
|
||||||
with: '%%%$4' # This little trick will make sure we're left
|
with: "%%%$4" # This little trick will make sure we're left
|
||||||
- regex: ^[^%].+ # with an empty string if we don't match anything
|
- regex: ^[^%].+ # with an empty string if we don't match anything
|
||||||
with: '' # in the regex above.
|
with: "" # in the regex above.
|
||||||
- regex: ^%+
|
- regex: ^%+
|
||||||
with: ''
|
with: ""
|
||||||
- map:
|
- map:
|
||||||
woman: Female
|
woman: Female
|
||||||
man: Male
|
man: Male
|
||||||
tswoman: Transgender Female
|
tswoman: Transgender Female
|
||||||
tsman: Transgender Male
|
tsman: Transgender Male
|
||||||
nonbinary: Non-Binary
|
nonbinary: Non-Binary
|
||||||
unknown: ''
|
unknown: ""
|
||||||
URL:
|
URL:
|
||||||
selector: //script[contains(.,'KinkyTracking.all')] | //button[@data-id]/@data-id
|
selector: //script[contains(.,'KinkyTracking.all')] | //button[@data-id]/@data-id
|
||||||
concat: '__SEP__'
|
concat: "__SEP__"
|
||||||
postProcess:
|
postProcess:
|
||||||
- replace:
|
- replace:
|
||||||
- regex: ^.+?multiSite:'([^']+).+?__SEP__(.+)
|
- regex: ^.+?multiSite:'([^']+).+?__SEP__(.+)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user