From 66a85390be312c8075c0b7c488a7a072392ac275 Mon Sep 17 00:00:00 2001 From: diamondpete <87245367+diamondpete@users.noreply.github.com> Date: Sun, 8 Feb 2026 12:15:05 -0500 Subject: [PATCH 1/3] feat(nubiles): Add Newly Required Headers --- Contents/Code/networkNubiles.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/Contents/Code/networkNubiles.py b/Contents/Code/networkNubiles.py index 96fb89def..efff221f4 100644 --- a/Contents/Code/networkNubiles.py +++ b/Contents/Code/networkNubiles.py @@ -4,9 +4,10 @@ def search(results, lang, siteNum, searchData): cookies = {'18-plus-modal': 'hidden'} + headers = {'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8'} if searchData.date: url = PAsearchSites.getSearchSearchURL(siteNum) + 'date/' + searchData.date + '/' + searchData.date - req = PAutils.HTTPRequest(url, cookies=cookies) + req = PAutils.HTTPRequest(url, cookies=cookies, headers=headers) searchResults = HTML.ElementFromString(req.text) for searchResult in searchResults.xpath('//div[contains(@class, "content-grid-item")]'): title = searchResult.xpath('.//span[@class="title"]/a')[0].text_content().split('-') @@ -25,7 +26,7 @@ def search(results, lang, siteNum, searchData): sceneID = searchData.title.split()[0] if unicode(sceneID, 'utf-8').isdigit(): sceneURL = PAsearchSites.getSearchBaseURL(siteNum) + '/video/watch/' + sceneID - req = PAutils.HTTPRequest(sceneURL, cookies=cookies) + req = PAutils.HTTPRequest(sceneURL, cookies=cookies, headers=headers) detailsPageElements = HTML.ElementFromString(req.text) detailsPageElements = detailsPageElements.xpath('//div[contains(@class, "content-pane-title")]')[0] @@ -42,9 +43,10 @@ def search(results, lang, siteNum, searchData): def update(metadata, lang, siteNum, movieGenres, movieActors, movieCollections, art): cookies = {'18-plus-modal': 'hidden'} + headers = {'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8'} metadata_id = str(metadata.id).split('|') sceneURL = PAsearchSites.getSearchBaseURL(siteNum) + '/video/watch/' + metadata_id[0] - req = PAutils.HTTPRequest(sceneURL, cookies=cookies) + req = PAutils.HTTPRequest(sceneURL, cookies=cookies, headers=headers) detailsPageElements = HTML.ElementFromString(req.text) # Title @@ -61,7 +63,7 @@ def update(metadata, lang, siteNum, movieGenres, movieActors, movieCollections, for paragraph in detailsPageElements.xpath('//div[@class="col-12 content-pane-column"]//p'): description += '\n\n' + paragraph.text_content() else: - description = description[0].text_content() + description = description[0].text_content().split('Show More')[0] metadata.summary = description.strip() @@ -91,7 +93,7 @@ def update(metadata, lang, siteNum, movieGenres, movieActors, movieCollections, actorName = actorLink.text_content().strip() actorPageURL = PAsearchSites.getSearchBaseURL(siteNum) + actorLink.get('href') - req = PAutils.HTTPRequest(actorPageURL, cookies=cookies) + req = PAutils.HTTPRequest(actorPageURL, cookies=cookies, headers=headers) actorPage = HTML.ElementFromString(req.text) actorPhotoURL = 'http:' + actorPage.xpath('//div[contains(@class, "model-profile")]//img/@src')[0] @@ -148,7 +150,7 @@ def update(metadata, lang, siteNum, movieGenres, movieActors, movieCollections, sceneID = match.group(0) galleryURL = '%s/galleries/%s/screenshots' % (PAsearchSites.getSearchBaseURL(siteNum), sceneID) - req = PAutils.HTTPRequest(galleryURL, cookies=cookies) + req = PAutils.HTTPRequest(galleryURL, cookies=cookies, headers=headers) photoPageElements = HTML.ElementFromString(req.text) for poster in photoPageElements.xpath('//div[@class="img-wrapper"]//picture/source[1]/@srcset'): if not poster.startswith('http'): From 40c96bb5a3920ebda3c63488182315d042b108ad Mon Sep 17 00:00:00 2001 From: diamondpete <87245367+diamondpete@users.noreply.github.com> Date: Sun, 8 Feb 2026 14:02:15 -0500 Subject: [PATCH 2/3] feat(nubiles): Add New Sites --- Contents/Code/PAsiteList.py | 9 ++++++++- docs/sitelist.md | 7 +++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/Contents/Code/PAsiteList.py b/Contents/Code/PAsiteList.py index 00dbc1ee5..a4e58ca3d 100644 --- a/Contents/Code/PAsiteList.py +++ b/Contents/Code/PAsiteList.py @@ -2000,6 +2000,13 @@ 1908: ('VRB Gay', 'https://www.vrbgay.com', '/api/content/v1/search/'), 1909: ('MyGF', 'https://www.mygf.com', 'https://site-api.project1service.com'), 1910: ('DP Diva', 'https://www.dpdiva.com', '/'), + 1911: ('Caught My Coach', 'https://www.caughtmycoach.com', '/video/gallery/'), + 1912: ('Cheating Sis', 'https://www.cheatingsis.com', '/video/gallery/'), + 1913: ('Reality Sis', 'https://www.realitysis.com', '/video/gallery/'), + 1914: ('She\'s Breeding Material', 'https://www.shesbreedingmaterial.com', '/video/gallery/'), + 1915: ('Dating My Stepson', 'https://datingmystepson.com', '/video/gallery/'), + 1916: ('Cheating Mommy', 'https://cheatingmommy.com', '/video/gallery/'), + 1917: ('MILF Coach', 'https://milfcoach.com', '/video/gallery/'), } abbreviations = ( @@ -2562,7 +2569,7 @@ def getProviderFromSiteNum(siteNum): provider = networkKink # Nubiles - elif (525 <= siteNum <= 545) or (755 <= siteNum <= 756) or siteNum == 766 or (995 <= siteNum <= 996) or siteNum == 1040 or siteNum == 1256 or siteNum == 1360 or (1396 <= siteNum <= 1397) or siteNum == 1551 or (1575 <= siteNum <= 1582) or siteNum == 1686: + elif (525 <= siteNum <= 545) or (755 <= siteNum <= 756) or siteNum == 766 or (995 <= siteNum <= 996) or siteNum == 1040 or siteNum == 1256 or siteNum == 1360 or (1396 <= siteNum <= 1397) or siteNum == 1551 or (1575 <= siteNum <= 1582) or siteNum == 1686 or (1911 <= siteNum <= 1917): provider = networkNubiles # BellaPass diff --git a/docs/sitelist.md b/docs/sitelist.md index c9a2156b0..3b25026eb 100644 --- a/docs/sitelist.md +++ b/docs/sitelist.md @@ -1028,6 +1028,8 @@ If you're having difficulty finding the SceneID, double-check [PAsiteList.py](.. + #### Nubiles Porn Network | ❌ - **SceneID** - Bad Teens Punished - Bountyhunter Porn + - Caught My Coach + - Cheating Sis - Cum Swapping Sis - Daddy's Lil Angel - Detention Girls @@ -1042,6 +1044,8 @@ If you're having difficulty finding the SceneID, double-check [PAsiteList.py](.. - Petite Ballerinas Fucked - Petite Hd Porn - Princess Cum + - Reality Sis + - She's Breeding Material - Smashed - Step Siblings Caught - Teacher Fucks Teens @@ -1049,7 +1053,10 @@ If you're having difficulty finding the SceneID, double-check [PAsiteList.py](.. #### Mom Comes First | ✅ #### Mom Lover (Nubiles) Sites | ❌ - **SceneID** - Bratty MILF + - Cheating Mommy + - Dating My Stepson - I'm Not Your Mommmy + - MILF Coach - Mom Lover - Mom Swapped - Mom Wants Creampie From 1b30ee6bb88748c3669b92c1cfaf40096f9804dc Mon Sep 17 00:00:00 2001 From: diamondpete <87245367+diamondpete@users.noreply.github.com> Date: Sun, 8 Feb 2026 23:08:09 -0500 Subject: [PATCH 3/3] fix(titleparser): Add New Manually Fixed Word --- Contents/Code/PAutils.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Contents/Code/PAutils.py b/Contents/Code/PAutils.py index c769f45f1..4b31482da 100644 --- a/Contents/Code/PAutils.py +++ b/Contents/Code/PAutils.py @@ -483,12 +483,12 @@ def manualWordFix(word): exceptions = ( 'im', 'theyll', 'cant', 'ive', 'shes', 'theyre', 'tshirt', 'dont', 'wasnt', 'youre', 'ill', 'whats', 'didnt', 'isnt', 'senor', 'senorita', 'thats', 'gstring', 'milfs', 'oreilly', 'bangbros', 'bday', 'dms', 'bffs', - 'ohmy', 'wont', 'whos', 'shouldnt', 'lasirena', 'espanol' + 'ohmy', 'wont', 'whos', 'shouldnt', 'lasirena', 'espanol', 'youd' ) corrections = ( 'I\'m', 'They\'ll', 'Can\'t', 'I\'ve', 'She\'s', 'They\'re', 'T-Shirt', 'Don\'t', 'Wasn\'t', 'You\'re', 'I\'ll', 'What\'s', 'Didn\'t', 'Isn\'t', 'Señor', 'Señorita', 'That\'s', 'G-String', 'MILFs', 'O\'Reilly', 'BangBros', 'B-Day', 'DMs', 'BFFs', - 'OhMy', 'Won\'t', 'Who\'s', 'Shouldn\'t', 'LaSirena', 'español' + 'OhMy', 'Won\'t', 'Who\'s', 'Shouldn\'t', 'LaSirena', 'español', 'You\'d' ) pattern = re.compile(r'\d|\W') cleanWord = re.sub(pattern, '', word)