|
1 | 1 | // ==UserScript== |
2 | 2 | // @name Improve Adult Experience |
3 | | -// @description Skip intros, set better default quality/duration filters, make unwanted video previews transparent, workaround load failures, make input more consistent across the websites, remove spammy elements. Usually affects every media player it can find, designed to be used on a separate browser profile. Supported websites: anysex.com, beeg.com, bingato.com, drtuber.com, hqporner.com, hdzog.tube, hypnotube.com, incestporno.vip, inporn.com, manysex.com, mat6tube.com, pmvhaven.com, porn00.tv, pornhits.com, pornhub.com, porno365.best, pornone.com, porntrex.com, pornxp.com, redtube.com, spankbang.com, taboodude.com, tnaflix.com, tube8.com, txxx.com, veporn.com, vxxx.com, whoreshub.com, xgroovy.com, xhamster.com, xnxx.com, xvideos.com, xxxbp.tv, youporn.com, рус-порно.tv |
| 3 | +// @description Skip intros, set better default quality/duration filters, make unwanted video previews transparent, workaround load failures, make input more consistent across the websites, remove spammy elements. Usually affects every media player it can find, designed to be used on a separate browser profile. Supported websites: anysex.com, beeg.com, bingato.com, drtuber.com, hqporner.com, hdzog.tube, hypnotube.com, incestporno.vip, inporn.com, manysex.com, mat6tube.com, pmvhaven.com, porn00.tv, pornheed.com, pornhits.com, pornhub.com, porno365.best, pornone.com, porntati.com, porntrex.com, pornxp.com, redtube.com, spankbang.com, taboodude.com, tnaflix.com, tube8.com, txxx.com, veporn.com, vxxx.com, whoreshub.com, xgroovy.com, xhamster.com, xnxx.com, xvideos.com, xxxbp.tv, youporn.com, рус-порно.tv |
4 | 4 | // @icon https://external-content.duckduckgo.com/ip3/pornhub.com.ico |
5 | | -// @version 0.69 |
| 5 | +// @version 0.70 |
6 | 6 | // @downloadURL https://userscripts.codonaft.com/improve-adult-experience.user.js |
7 | 7 | // @grant GM_addStyle |
8 | 8 | // ==/UserScript== |
9 | 9 |
|
10 | | -// TODO: cumlouder.com, pornone.com, pornheed.com, tubeon.com, xtits.xxx, eporner.com, pervclips.com, bigbumfun.com, momvids.com, zbporn.com, ok.xxx / perfectgirls.xxx, tubev.sex, youjizz.com, empflix.com, babestube.com, pornwhite.com, pornomira.net, videosection.com, upornia.com, free.brazzers.com, hdsex.org, gay0day.com, collectionofbestporn.com, pissjapantv.com, pervertslut.com, luxuretv.com, 4kporn.xxx, minuporno.com, prndb.net, familyporn.tv, porntati.com |
| 10 | +// TODO: cumlouder.com, tubeon.com, xtits.xxx, eporner.com, pervclips.com, bigbumfun.com, momvids.com, zbporn.com, ok.xxx / perfectgirls.xxx, tubev.sex, youjizz.com, empflix.com, babestube.com, pornwhite.com, pornomira.net, videosection.com, upornia.com, free.brazzers.com, hdsex.org, gay0day.com, collectionofbestporn.com, pissjapantv.com, pervertslut.com, luxuretv.com, 4kporn.xxx, minuporno.com, prndb.net, familyporn.tv |
11 | 11 |
|
12 | 12 | (_ => { |
13 | 13 | 'use strict'; |
@@ -601,7 +601,7 @@ const sites = { |
601 | 601 | const isVideoUrl = href => href.includes('/video/'); |
602 | 602 | init({ |
603 | 603 | searchInputSelector: 'input[type="text"][name="q"][placeholder="Search"], input#search-form[type="text"][name="q"]', |
604 | | - searchFilter: query => ['search/', { 'q': query }], |
| 604 | + searchFilter: q => ['search/', { q }], |
605 | 605 | searchFilterParams, |
606 | 606 | fullscreenSelector: 'div#main_video_fluid_control_fullscreen', |
607 | 607 | thumbnailSelector: 'div.item', |
@@ -652,7 +652,7 @@ const sites = { |
652 | 652 | const searchFilterParams = { [sort]: 'longest' }; |
653 | 653 | init({ |
654 | 654 | searchInputSelector: 'div.search-text input[type="text"][name="q"]', |
655 | | - searchFilter: query => ['s', { 'q': query }], |
| 655 | + searchFilter: q => ['s', { q }], |
656 | 656 | searchFilterParams, |
657 | 657 | thumbnailSelector: 'div.item', |
658 | 658 | qualitySelector: 'span.is-hd', |
@@ -929,6 +929,36 @@ const sites = { |
929 | 929 | }); |
930 | 930 | }, |
931 | 931 |
|
| 932 | + 'pornheed.com': _ => { |
| 933 | + const searchFilter = query => [`s/top-rated/all-time/all-tubes/all-words/long-duration/${query}/1`, {}]; |
| 934 | + const thumbnailSelector = 'li.video-item'; |
| 935 | + const qualitySelector = 'div.res'; |
| 936 | + init({ |
| 937 | + searchInputSelector: 'input#searchterm[type="text"], input[type="text"][name="searchterm"]', |
| 938 | + searchFilter, |
| 939 | + thumbnailSelector, |
| 940 | + qualitySelector, |
| 941 | + durationSelector: 'div.runtime', |
| 942 | + isUnwantedQuality: text => (parseFloat(text.split('p')[0]) || 0) < MIN_VIDEO_HEIGHT, |
| 943 | + isUnwantedDuration: text => text.includes(':') && timeToSeconds(text) < MIN_DURATION_MINS * 60, |
| 944 | + onNodeChange: node => { |
| 945 | + if (node.matches(thumbnailSelector) && !node.querySelector(qualitySelector)) { |
| 946 | + node.classList.add(UNWANTED); |
| 947 | + return; |
| 948 | + } |
| 949 | + |
| 950 | + if (!validLink(node)) return; |
| 951 | + |
| 952 | + const url = new URL(node.href); |
| 953 | + const ps = parts(url.pathname); |
| 954 | + if (ps.length === 2 && ['s', 'search'].includes(ps[0])) { |
| 955 | + url.pathname = searchFilter(ps[1])[0]; |
| 956 | + updateUrl(node, url); |
| 957 | + } |
| 958 | + }, |
| 959 | + }); |
| 960 | + }, |
| 961 | + |
932 | 962 | 'pornhits.com': _ => { |
933 | 963 | init({ |
934 | 964 | thumbnailSelector: 'article.item', |
@@ -1184,6 +1214,20 @@ const sites = { |
1184 | 1214 | }); |
1185 | 1215 | }, |
1186 | 1216 |
|
| 1217 | + 'porntati.com': _ => { |
| 1218 | + init({ |
| 1219 | + thumbnailSelector: 'div.item', |
| 1220 | + qualitySelector: 'div.format', |
| 1221 | + durationSelector: 'div.duration', |
| 1222 | + hideSelector: 'div.text', |
| 1223 | + isUnwantedQuality: text => (parseFloat(text.split('p')[0]) || 0) < MIN_VIDEO_HEIGHT, |
| 1224 | + isVideoUrl: href => { |
| 1225 | + const p = new URL(href).pathname; |
| 1226 | + return p.startsWith('/video/'); |
| 1227 | + }, |
| 1228 | + }); |
| 1229 | + }, |
| 1230 | + |
1187 | 1231 | 'porntrex.com': _ => { |
1188 | 1232 | const minDuration = 'thirty-all-min'; |
1189 | 1233 | const topRated = 'top-rated'; |
|
0 commit comments