pervert-monkey 1.0.15 → 1.0.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/pervertmonkey.core.es.d.ts +23 -16
- package/dist/core/pervertmonkey.core.es.js +157 -153
- package/dist/core/pervertmonkey.core.es.js.map +1 -1
- package/dist/core/pervertmonkey.core.umd.js +157 -153
- package/dist/core/pervertmonkey.core.umd.js.map +1 -1
- package/dist/userscripts/3hentai.user.js +10 -4
- package/dist/userscripts/camgirlfinder.user.js +2 -2
- package/dist/userscripts/camwhores.user.js +4 -5
- package/dist/userscripts/e-hentai.user.js +7 -6
- package/dist/userscripts/ebalka.user.js +12 -8
- package/dist/userscripts/eporner.user.js +5 -2
- package/dist/userscripts/erome.user.js +7 -11
- package/dist/userscripts/eroprofile.user.js +2 -2
- package/dist/userscripts/javhdporn.user.js +2 -2
- package/dist/userscripts/missav.user.js +3 -8
- package/dist/userscripts/motherless.user.js +3 -3
- package/dist/userscripts/namethatporn.user.js +4 -4
- package/dist/userscripts/nhentai.user.js +2 -2
- package/dist/userscripts/obmenvsem.user.js +3 -2
- package/dist/userscripts/pornhub.user.js +2 -2
- package/dist/userscripts/spankbang.user.js +6 -7
- package/dist/userscripts/thisvid.user.js +7 -8
- package/dist/userscripts/xhamster.user.js +6 -6
- package/dist/userscripts/xvideos.user.js +8 -8
- package/package.json +1 -1
- package/src/core/data-handler/data-filter-fn-defaults.ts +8 -8
- package/src/core/data-handler/data-filter-fn.ts +10 -8
- package/src/core/data-handler/data-filter.ts +10 -8
- package/src/core/data-handler/data-manager.ts +52 -106
- package/src/core/infinite-scroll/index.ts +6 -4
- package/src/core/parsers/thumb-data-parser.ts +11 -4
- package/src/userscripts/index.ts +1 -1
- package/src/userscripts/scripts/3hentai.ts +5 -3
- package/src/userscripts/scripts/camgirlfinder.ts +1 -1
- package/src/userscripts/scripts/camwhores.ts +3 -4
- package/src/userscripts/scripts/e-hentai.ts +9 -7
- package/src/userscripts/scripts/ebalka.ts +15 -8
- package/src/userscripts/scripts/eporner.ts +4 -1
- package/src/userscripts/scripts/erome.ts +6 -12
- package/src/userscripts/scripts/eroprofile.ts +1 -1
- package/src/userscripts/scripts/javhdporn.ts +1 -1
- package/src/userscripts/scripts/missav.ts +2 -7
- package/src/userscripts/scripts/motherless.ts +4 -3
- package/src/userscripts/scripts/namethatporn.ts +3 -3
- package/src/userscripts/scripts/nhentai.ts +1 -1
- package/src/userscripts/scripts/obmenvsem.ts +6 -2
- package/src/userscripts/scripts/pornhub.ts +1 -1
- package/src/userscripts/scripts/spankbang.ts +4 -6
- package/src/userscripts/scripts/thisvid.ts +6 -6
- package/src/userscripts/scripts/xhamster.ts +5 -5
- package/src/userscripts/scripts/xvideos.ts +7 -7
- package/src/utils/dom/dom-observers.ts +3 -3
- package/src/utils/dom/index.ts +10 -7
- package/src/utils/index.ts +4 -22
- package/src/utils/performance/index.ts +44 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// ==UserScript==
|
|
2
2
|
// @name 3Hentai PervertMonkey
|
|
3
3
|
// @namespace pervertmonkey
|
|
4
|
-
// @version 1.0.
|
|
4
|
+
// @version 1.0.8
|
|
5
5
|
// @author violent-orangutan
|
|
6
|
-
// @description Infinite scroll [optional], Filter by Title
|
|
6
|
+
// @description Infinite scroll [optional], Filter by Title, thumb preview
|
|
7
7
|
// @license MIT
|
|
8
8
|
// @icon https://www.google.com/s2/favicons?sz=64&domain=3hentai.net
|
|
9
9
|
// @homepage https://github.com/smartacephale/sleazy-fork
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
// @source github:smartacephale/sleazy-fork
|
|
12
12
|
// @supportURL https://github.com/smartacephale/sleazy-fork/issues
|
|
13
13
|
// @match https://*.3hentai.net/*
|
|
14
|
-
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.
|
|
14
|
+
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.18/dist/core/pervertmonkey.core.umd.js
|
|
15
15
|
// @require data:application/javascript,var core = window.pervertmonkey.core || pervertmonkey.core; var utils = core;
|
|
16
16
|
// @grant GM_addStyle
|
|
17
17
|
// @grant unsafeWindow
|
|
@@ -40,13 +40,19 @@
|
|
|
40
40
|
});
|
|
41
41
|
function animatePreview() {
|
|
42
42
|
const tick = new utils.Tick(500, false);
|
|
43
|
+
const end = 9999;
|
|
44
|
+
function rotate(src) {
|
|
45
|
+
return src.replace(/(\d+)(?=t\.jpg$)/, (_, n) => `${utils.circularShift(parseInt(n), end)}`);
|
|
46
|
+
}
|
|
43
47
|
utils.OnHover.create(document.body, ".doujin-col", (e) => {
|
|
44
48
|
const img = e.querySelector("img");
|
|
45
49
|
const origin = img.src;
|
|
46
50
|
img.src = img.src.replace(/\w+\.\w+$/, "1t.jpg");
|
|
47
51
|
img.onerror = (_) => tick.stop();
|
|
48
52
|
tick.start(
|
|
49
|
-
() =>
|
|
53
|
+
() => {
|
|
54
|
+
img.src = rotate(img.src);
|
|
55
|
+
},
|
|
50
56
|
() => {
|
|
51
57
|
img.src = origin;
|
|
52
58
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// ==UserScript==
|
|
2
2
|
// @name CamGirlFinder PervertMonkey
|
|
3
3
|
// @namespace pervertmonkey
|
|
4
|
-
// @version 1.6.
|
|
4
|
+
// @version 1.6.7
|
|
5
5
|
// @author violent-orangutan
|
|
6
6
|
// @description Adds model links for CamWhores, webcamrecordings, recu.me, camvideos, privat-zapisi
|
|
7
7
|
// @license MIT
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
// @source github:smartacephale/sleazy-fork
|
|
12
12
|
// @supportURL https://github.com/smartacephale/sleazy-fork/issues
|
|
13
13
|
// @match https://camgirlfinder.net/*
|
|
14
|
-
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.
|
|
14
|
+
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.18/dist/core/pervertmonkey.core.umd.js
|
|
15
15
|
// @require data:application/javascript,var core = window.pervertmonkey.core || pervertmonkey.core; var utils = core;
|
|
16
16
|
// @grant none
|
|
17
17
|
// @run-at document-idle
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// ==UserScript==
|
|
2
2
|
// @name CamWhores PervertMonkey
|
|
3
3
|
// @namespace pervertmonkey
|
|
4
|
-
// @version 3.0.
|
|
4
|
+
// @version 3.0.11
|
|
5
5
|
// @author violent-orangutan
|
|
6
6
|
// @description Infinite scroll [optional]. Filter by Title, Duration and Private/Public. Sort by Duration and Views. Mass friend request button. Download button
|
|
7
7
|
// @license MIT
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
// @match https://*.camwhores.tv
|
|
14
14
|
// @match https://*.camwhores.*/*
|
|
15
15
|
// @exclude https://*.camwhores.tv/*mode=async*
|
|
16
|
-
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.
|
|
16
|
+
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.18/dist/core/pervertmonkey.core.umd.js
|
|
17
17
|
// @require data:application/javascript,var core = window.pervertmonkey.core || pervertmonkey.core; var utils = core;
|
|
18
18
|
// @grant GM_addStyle
|
|
19
19
|
// @grant unsafeWindow
|
|
@@ -163,9 +163,8 @@
|
|
|
163
163
|
}
|
|
164
164
|
const createDownloadButton = () => utils.downloader({
|
|
165
165
|
append: ".tabs-menu > ul",
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
cbBefore: () => $(".fp-ui").click()
|
|
166
|
+
buttonHtml: '<li><a href="#tab_comments" class="toggle-button" style="text-decoration: none;">download 📼</a></li>',
|
|
167
|
+
doBefore: () => $(".fp-ui").click()
|
|
169
168
|
});
|
|
170
169
|
const DEFAULT_FRIEND_REQUEST_FORMDATA = utils.objectToFormData({
|
|
171
170
|
message: "",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// ==UserScript==
|
|
2
2
|
// @name E-Hentai PervertMonkey
|
|
3
3
|
// @namespace pervertmonkey
|
|
4
|
-
// @version 1.0.
|
|
4
|
+
// @version 1.0.8
|
|
5
5
|
// @author violent-orangutan
|
|
6
6
|
// @description Infinite scroll [optional], Filter by Title
|
|
7
7
|
// @license MIT
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
// @source github:smartacephale/sleazy-fork
|
|
12
12
|
// @supportURL https://github.com/smartacephale/sleazy-fork/issues
|
|
13
13
|
// @match https://*.e-hentai.org/*
|
|
14
|
-
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.
|
|
14
|
+
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.18/dist/core/pervertmonkey.core.umd.js
|
|
15
15
|
// @require data:application/javascript,var core = window.pervertmonkey.core || pervertmonkey.core; var utils = core;
|
|
16
16
|
// @grant GM_addStyle
|
|
17
17
|
// @grant unsafeWindow
|
|
@@ -37,10 +37,10 @@
|
|
|
37
37
|
});
|
|
38
38
|
function createPaginationStrategyOptions() {
|
|
39
39
|
let nextLink;
|
|
40
|
+
function getNextLink(doc = document) {
|
|
41
|
+
return [...doc.querySelectorAll("a#dnext[href]")].pop()?.href;
|
|
42
|
+
}
|
|
40
43
|
function getPaginationUrlGenerator() {
|
|
41
|
-
function getNextLink(doc = document) {
|
|
42
|
-
return [...doc.querySelectorAll("a#dnext[href]")].pop()?.href;
|
|
43
|
-
}
|
|
44
44
|
const paginationUrlGenerator = async (_) => {
|
|
45
45
|
if (!nextLink) {
|
|
46
46
|
nextLink = getNextLink();
|
|
@@ -52,9 +52,10 @@
|
|
|
52
52
|
};
|
|
53
53
|
return paginationUrlGenerator;
|
|
54
54
|
}
|
|
55
|
+
const totalTitles = Number.parseInt(getNextLink()?.match(/\d+$/)?.[0] || "0");
|
|
55
56
|
return {
|
|
56
57
|
paginationSelector: ".searchnav + div + .searchnav",
|
|
57
|
-
overwritePaginationLast: () =>
|
|
58
|
+
overwritePaginationLast: () => totalTitles,
|
|
58
59
|
getPaginationUrlGenerator
|
|
59
60
|
};
|
|
60
61
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// ==UserScript==
|
|
2
2
|
// @name Ebalka PervertMonkey
|
|
3
3
|
// @namespace pervertmonkey
|
|
4
|
-
// @version 3.0.
|
|
4
|
+
// @version 3.0.8
|
|
5
5
|
// @author violent-orangutan
|
|
6
|
-
// @description Infinite scroll [optional], Filter by Title and Duration, Sort by Duration
|
|
6
|
+
// @description Infinite scroll [optional], Filter by Title and Duration, Sort by Duration, Download button.
|
|
7
7
|
// @license MIT
|
|
8
8
|
// @icon https://www.google.com/s2/favicons?sz=64&domain=ebalka.zip
|
|
9
9
|
// @homepage https://github.com/smartacephale/sleazy-fork
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
// @match https://*ebalka.*.*/*
|
|
16
16
|
// @match https://*.ebalk*.*/*
|
|
17
17
|
// @match https://*.fuckingbear*.*/*
|
|
18
|
-
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.
|
|
18
|
+
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.18/dist/core/pervertmonkey.core.umd.js
|
|
19
19
|
// @require data:application/javascript,var core = window.pervertmonkey.core || pervertmonkey.core; var utils = core;
|
|
20
20
|
// @grant GM_addStyle
|
|
21
21
|
// @grant unsafeWindow
|
|
@@ -52,14 +52,14 @@
|
|
|
52
52
|
});
|
|
53
53
|
function animatePreview(container) {
|
|
54
54
|
function animateThumb(thumb) {
|
|
55
|
-
const
|
|
56
|
-
|
|
57
|
-
const src =
|
|
55
|
+
const e = thumb.querySelector(".card__thumb_video");
|
|
56
|
+
e.classList.toggle("video-on");
|
|
57
|
+
const src = e.querySelector(".card__image")?.getAttribute("data-preview");
|
|
58
58
|
const videoElem = utils.parseHtml(`<video style="position: absolute; left: 0px; top: 0px; visibility: visible; margin-top: -1px;"
|
|
59
59
|
autoplay="" loop="" playsinline="true" webkit-playsinline="true" src="${src}"></video>`);
|
|
60
|
-
|
|
60
|
+
e.appendChild(videoElem);
|
|
61
61
|
return () => {
|
|
62
|
-
|
|
62
|
+
e.classList.toggle("video-on");
|
|
63
63
|
utils.exterminateVideo(videoElem);
|
|
64
64
|
};
|
|
65
65
|
}
|
|
@@ -68,5 +68,9 @@
|
|
|
68
68
|
return animateThumb(thumb);
|
|
69
69
|
});
|
|
70
70
|
}
|
|
71
|
+
document.querySelector(".tooltip-container") && utils.downloader({
|
|
72
|
+
append: ".tooltip-container",
|
|
73
|
+
buttonHtml: '<a class="button button_regular button_list root__link">Download ⤓</a>'
|
|
74
|
+
});
|
|
71
75
|
|
|
72
76
|
})(core, utils);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// ==UserScript==
|
|
2
2
|
// @name Eporner PervertMonkey
|
|
3
3
|
// @namespace pervertmonkey
|
|
4
|
-
// @version 2.0.
|
|
4
|
+
// @version 2.0.10
|
|
5
5
|
// @author violent-orangutan
|
|
6
6
|
// @description Infinite scroll [optional], Filter by Title, Uploader, Duration and HD, Sort by Views and Duration
|
|
7
7
|
// @license MIT
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
// @supportURL https://github.com/smartacephale/sleazy-fork/issues
|
|
13
13
|
// @match https://*.eporner.com/*
|
|
14
14
|
// @match https://*.eporner.*/*
|
|
15
|
-
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.
|
|
15
|
+
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.18/dist/core/pervertmonkey.core.umd.js
|
|
16
16
|
// @require data:application/javascript,var core = window.pervertmonkey.core || pervertmonkey.core; var utils = core;
|
|
17
17
|
// @grant GM_addStyle
|
|
18
18
|
// @grant unsafeWindow
|
|
@@ -49,6 +49,7 @@
|
|
|
49
49
|
{ quality480: (el, state) => !!state.quality480 && el.quality !== 480 },
|
|
50
50
|
{ quality720: (el, state) => !!state.quality720 && el.quality !== 720 },
|
|
51
51
|
{ quality1080: (el, state) => !!state.quality1080 && el.quality !== 1080 },
|
|
52
|
+
{ quality2k: (el, state) => !!state.quality2k && el.quality !== 2 },
|
|
52
53
|
{ quality4k: (el, state) => !!state.quality4k && el.quality !== 4 }
|
|
53
54
|
],
|
|
54
55
|
schemeOptions: [
|
|
@@ -62,6 +63,7 @@
|
|
|
62
63
|
{ quality480: false },
|
|
63
64
|
{ quality720: false },
|
|
64
65
|
{ quality1080: false },
|
|
66
|
+
{ quality2k: false },
|
|
65
67
|
{ quality4k: false }
|
|
66
68
|
]
|
|
67
69
|
},
|
|
@@ -69,6 +71,7 @@
|
|
|
69
71
|
"Badge",
|
|
70
72
|
"Advanced"
|
|
71
73
|
],
|
|
74
|
+
gropeStrategy: "all-in-all",
|
|
72
75
|
animatePreview
|
|
73
76
|
});
|
|
74
77
|
function animatePreview(doc) {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// ==UserScript==
|
|
2
2
|
// @name Erome PervertMonkey
|
|
3
3
|
// @namespace pervertmonkey
|
|
4
|
-
// @version 5.0.
|
|
4
|
+
// @version 5.0.9
|
|
5
5
|
// @author violent-orangutan
|
|
6
|
-
// @description Infinite scroll [optional], Filter by Title, Uploader and Video/Photo albums, Sort by Views
|
|
6
|
+
// @description Infinite scroll [optional], Filter by Title, Uploader and Video/Photo albums, Sort by Views. Show/Hide Photos in album. Remove disclaimer.
|
|
7
7
|
// @license MIT
|
|
8
8
|
// @icon https://www.google.com/s2/favicons?sz=64&domain=erome.com
|
|
9
9
|
// @homepage https://github.com/smartacephale/sleazy-fork
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
// @source github:smartacephale/sleazy-fork
|
|
12
12
|
// @supportURL https://github.com/smartacephale/sleazy-fork/issues
|
|
13
13
|
// @match *://*.erome.com/*
|
|
14
|
-
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.
|
|
14
|
+
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.18/dist/core/pervertmonkey.core.umd.js
|
|
15
15
|
// @require data:application/javascript,var core = window.pervertmonkey.core || pervertmonkey.core; var utils = core;
|
|
16
16
|
// @grant GM_addStyle
|
|
17
17
|
// @grant unsafeWindow
|
|
@@ -41,12 +41,8 @@
|
|
|
41
41
|
},
|
|
42
42
|
storeOptions: { showPhotos: true },
|
|
43
43
|
customDataFilterFns: [
|
|
44
|
-
{
|
|
45
|
-
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
filterVideoAlbums: (el, state) => state.filterVideoAlbums && el.videoAlbum
|
|
49
|
-
}
|
|
44
|
+
{ filterPhotoAlbums: (el, state) => !!state.filterPhotoAlbums && !el.videoAlbum },
|
|
45
|
+
{ filterVideoAlbums: (el, state) => !!state.filterVideoAlbums && !!el.videoAlbum }
|
|
50
46
|
],
|
|
51
47
|
schemeOptions: [
|
|
52
48
|
"Title Filter",
|
|
@@ -56,11 +52,11 @@
|
|
|
56
52
|
content: [
|
|
57
53
|
{
|
|
58
54
|
filterVideoAlbums: false,
|
|
59
|
-
label: "
|
|
55
|
+
label: "photo"
|
|
60
56
|
},
|
|
61
57
|
{
|
|
62
58
|
filterPhotoAlbums: false,
|
|
63
|
-
label: "
|
|
59
|
+
label: "video"
|
|
64
60
|
}
|
|
65
61
|
]
|
|
66
62
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// ==UserScript==
|
|
2
2
|
// @name Eroprofile PervertMonkey
|
|
3
3
|
// @namespace pervertmonkey
|
|
4
|
-
// @version 2.0.
|
|
4
|
+
// @version 2.0.8
|
|
5
5
|
// @author violent-orangutan
|
|
6
6
|
// @description Infinite scroll [optional], Filter by Title and Duration, Sort by Duration
|
|
7
7
|
// @license MIT
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
// @source github:smartacephale/sleazy-fork
|
|
12
12
|
// @supportURL https://github.com/smartacephale/sleazy-fork/issues
|
|
13
13
|
// @match https://*.eroprofile.com/*
|
|
14
|
-
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.
|
|
14
|
+
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.18/dist/core/pervertmonkey.core.umd.js
|
|
15
15
|
// @require data:application/javascript,var core = window.pervertmonkey.core || pervertmonkey.core; var utils = core;
|
|
16
16
|
// @grant GM_addStyle
|
|
17
17
|
// @grant unsafeWindow
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// ==UserScript==
|
|
2
2
|
// @name Javhdporn PervertMonkey
|
|
3
3
|
// @namespace pervertmonkey
|
|
4
|
-
// @version 3.0.
|
|
4
|
+
// @version 3.0.8
|
|
5
5
|
// @author violent-orangutan
|
|
6
6
|
// @description Infinite scroll [optional], Filter by Title and Duration, Sort By Duration and Views
|
|
7
7
|
// @license MIT
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
// @supportURL https://github.com/smartacephale/sleazy-fork/issues
|
|
13
13
|
// @match https://*.javhdporn.net/*
|
|
14
14
|
// @match https://*.javhdporn.*/*
|
|
15
|
-
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.
|
|
15
|
+
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.18/dist/core/pervertmonkey.core.umd.js
|
|
16
16
|
// @require data:application/javascript,var core = window.pervertmonkey.core || pervertmonkey.core; var utils = core;
|
|
17
17
|
// @grant GM_addStyle
|
|
18
18
|
// @grant unsafeWindow
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// ==UserScript==
|
|
2
2
|
// @name Missav PervertMonkey
|
|
3
3
|
// @namespace pervertmonkey
|
|
4
|
-
// @version 3.0.
|
|
4
|
+
// @version 3.0.7
|
|
5
5
|
// @author violent-orangutan
|
|
6
6
|
// @description Infinite scroll [optional], Filter by Title and Duration, Sort by Duration
|
|
7
7
|
// @license MIT
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
// @match https://*.missav.ws/*
|
|
16
16
|
// @match https://*.missav.to/*
|
|
17
17
|
// @match https://*.missav.live/*
|
|
18
|
-
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.
|
|
18
|
+
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.18/dist/core/pervertmonkey.core.umd.js
|
|
19
19
|
// @require data:application/javascript,var core = window.pervertmonkey.core || pervertmonkey.core; var utils = core;
|
|
20
20
|
// @grant GM_addStyle
|
|
21
21
|
// @grant unsafeWindow
|
|
@@ -31,12 +31,7 @@
|
|
|
31
31
|
},
|
|
32
32
|
containerSelector: ".grid[x-data]",
|
|
33
33
|
thumbs: { selector: "div:has(> .thumbnail.group)" },
|
|
34
|
-
thumb: {
|
|
35
|
-
selectors: {
|
|
36
|
-
title: "div > div > a.text-secondary",
|
|
37
|
-
duration: "div > a > span.text-xs"
|
|
38
|
-
}
|
|
39
|
-
},
|
|
34
|
+
thumb: { strategy: "auto-text" },
|
|
40
35
|
thumbImg: { strategy: "auto" },
|
|
41
36
|
schemeOptions: [
|
|
42
37
|
"Title Filter",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// ==UserScript==
|
|
2
2
|
// @name Motherless PervertMonkey
|
|
3
3
|
// @namespace pervertmonkey
|
|
4
|
-
// @version 5.0.
|
|
4
|
+
// @version 5.0.9
|
|
5
5
|
// @author violent-orangutan
|
|
6
6
|
// @description Infinite scroll [optional], Filter by Title, Uploader and Duration, Sort by Duration and Views
|
|
7
7
|
// @license MIT
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
// @source github:smartacephale/sleazy-fork
|
|
12
12
|
// @supportURL https://github.com/smartacephale/sleazy-fork/issues
|
|
13
13
|
// @match https://motherless.com/*
|
|
14
|
-
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.
|
|
14
|
+
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.18/dist/core/pervertmonkey.core.umd.js
|
|
15
15
|
// @require data:application/javascript,var core = window.pervertmonkey.core || pervertmonkey.core; var utils = core;
|
|
16
16
|
// @grant GM_addElement
|
|
17
17
|
// @grant GM_addStyle
|
|
@@ -142,7 +142,7 @@
|
|
|
142
142
|
}
|
|
143
143
|
const overwrite1 = (x) => `@media only screen and (max-width: 1280px) {
|
|
144
144
|
#categories-page.inner ${x} }`;
|
|
145
|
-
rules.dataManager.dataFilter.
|
|
145
|
+
rules.dataManager.dataFilter.createCssFilters(overwrite1);
|
|
146
146
|
_GM_addStyle(`
|
|
147
147
|
.img-container, .desktop-thumb { min-height: 150px; max-height: 150px; }
|
|
148
148
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// ==UserScript==
|
|
2
2
|
// @name NameThatPorn PervertMonkey
|
|
3
3
|
// @namespace pervertmonkey
|
|
4
|
-
// @version 3.0.
|
|
4
|
+
// @version 3.0.8
|
|
5
5
|
// @author violent-orangutan
|
|
6
6
|
// @description Infinite scroll [optional], Filter by Title, Uploader and Solved/Unsolved
|
|
7
7
|
// @license MIT
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
// @source github:smartacephale/sleazy-fork
|
|
12
12
|
// @supportURL https://github.com/smartacephale/sleazy-fork/issues
|
|
13
13
|
// @match https://namethatporn.com/*
|
|
14
|
-
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.
|
|
14
|
+
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.18/dist/core/pervertmonkey.core.umd.js
|
|
15
15
|
// @require data:application/javascript,var core = window.pervertmonkey.core || pervertmonkey.core; var utils = core;
|
|
16
16
|
// @grant GM_addStyle
|
|
17
17
|
// @grant unsafeWindow
|
|
@@ -42,10 +42,10 @@
|
|
|
42
42
|
gropeStrategy: "all-in-all",
|
|
43
43
|
customDataFilterFns: [
|
|
44
44
|
{
|
|
45
|
-
filterSolved: (
|
|
45
|
+
filterSolved: (e, state) => state.filterSolved && e.solved
|
|
46
46
|
},
|
|
47
47
|
{
|
|
48
|
-
filterUnsolved: (
|
|
48
|
+
filterUnsolved: (e, state) => state.filterUnsolved && !e.solved
|
|
49
49
|
}
|
|
50
50
|
],
|
|
51
51
|
schemeOptions: [
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// ==UserScript==
|
|
2
2
|
// @name NHentai PervertMonkey
|
|
3
3
|
// @namespace pervertmonkey
|
|
4
|
-
// @version 4.0.
|
|
4
|
+
// @version 4.0.8
|
|
5
5
|
// @author violent-orangutan
|
|
6
6
|
// @description Infinite scroll [optional], Filter by Title
|
|
7
7
|
// @license MIT
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
// @supportURL https://github.com/smartacephale/sleazy-fork/issues
|
|
13
13
|
// @match https://*.nhentai.net/*
|
|
14
14
|
// @match https://*.nhentai.*/*
|
|
15
|
-
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.
|
|
15
|
+
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.18/dist/core/pervertmonkey.core.umd.js
|
|
16
16
|
// @require data:application/javascript,var core = window.pervertmonkey.core || pervertmonkey.core; var utils = core;
|
|
17
17
|
// @grant GM_addStyle
|
|
18
18
|
// @grant unsafeWindow
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// ==UserScript==
|
|
2
2
|
// @name Obmensvem PervertMonkey
|
|
3
3
|
// @namespace pervertmonkey
|
|
4
|
-
// @version 1.0.
|
|
4
|
+
// @version 1.0.9
|
|
5
5
|
// @author violent-orangutan
|
|
6
6
|
// @description Infinite scroll [optional], Filter by Title and Duration, Sort by Duration
|
|
7
7
|
// @license MIT
|
|
@@ -12,7 +12,8 @@
|
|
|
12
12
|
// @supportURL https://github.com/smartacephale/sleazy-fork/issues
|
|
13
13
|
// @match https://*.obmenvsem.com/*
|
|
14
14
|
// @match https://*.obmenvsem.*/*
|
|
15
|
-
// @
|
|
15
|
+
// @match https://*.obmenvsems.*/*
|
|
16
|
+
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.18/dist/core/pervertmonkey.core.umd.js
|
|
16
17
|
// @require data:application/javascript,var core = window.pervertmonkey.core || pervertmonkey.core; var utils = core;
|
|
17
18
|
// @grant GM_addElement
|
|
18
19
|
// @grant GM_addStyle
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// ==UserScript==
|
|
2
2
|
// @name PornHub PervertMonkey
|
|
3
3
|
// @namespace pervertmonkey
|
|
4
|
-
// @version 4.0.
|
|
4
|
+
// @version 4.0.8
|
|
5
5
|
// @author violent-orangutan
|
|
6
6
|
// @description Infinite scroll [optional]. Filter by Title, Uploader and Duration. Sort by Duration and Views
|
|
7
7
|
// @license MIT
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
// @supportURL https://github.com/smartacephale/sleazy-fork/issues
|
|
13
13
|
// @match https://*.pornhub.com/*
|
|
14
14
|
// @exclude https://*.pornhub.com/embed/*
|
|
15
|
-
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.
|
|
15
|
+
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.18/dist/core/pervertmonkey.core.umd.js
|
|
16
16
|
// @require data:application/javascript,var core = window.pervertmonkey.core || pervertmonkey.core; var utils = core;
|
|
17
17
|
// @grant GM_addStyle
|
|
18
18
|
// @grant unsafeWindow
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// ==UserScript==
|
|
2
2
|
// @name SpankBang.com PervertMonkey
|
|
3
3
|
// @namespace pervertmonkey
|
|
4
|
-
// @version 4.0.
|
|
4
|
+
// @version 4.0.8
|
|
5
5
|
// @author violent-orangutan
|
|
6
6
|
// @description Infinite scroll [optional]. Filter by Title and Duration. Sort by Duration and Views
|
|
7
7
|
// @license MIT
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
// @supportURL https://github.com/smartacephale/sleazy-fork/issues
|
|
13
13
|
// @match https://*.spankbang.com/*
|
|
14
14
|
// @match https://*.spankbang.*/*
|
|
15
|
-
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.
|
|
15
|
+
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.18/dist/core/pervertmonkey.core.umd.js
|
|
16
16
|
// @require data:application/javascript,var core = window.pervertmonkey.core || pervertmonkey.core; var utils = core;
|
|
17
17
|
// @grant GM_addStyle
|
|
18
18
|
// @grant unsafeWindow
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
(function (core) {
|
|
23
23
|
'use strict';
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
new core.Rules({
|
|
26
26
|
containerSelector: ".main-container .js-media-list, .main_content_container .video-list",
|
|
27
27
|
paginationStrategyOptions: {
|
|
28
28
|
paginationSelector: ".paginate-bar, .pagination"
|
|
@@ -39,9 +39,9 @@ views: { selector: '[data-testid="views"]', type: "float" },
|
|
|
39
39
|
thumbImg: { strategy: "auto" },
|
|
40
40
|
gropeStrategy: "all-in-all",
|
|
41
41
|
customDataFilterFns: [
|
|
42
|
-
{ qualityLow: (
|
|
43
|
-
{ qualityHD: (
|
|
44
|
-
{ quality4k: (
|
|
42
|
+
{ qualityLow: (e, state) => !!state.qualityLow && e.quality !== "" },
|
|
43
|
+
{ qualityHD: (e, state) => !!state.qualityHD && e.quality !== "HD" },
|
|
44
|
+
{ quality4k: (e, state) => !!state.quality4k && e.quality !== "4K" }
|
|
45
45
|
],
|
|
46
46
|
schemeOptions: [
|
|
47
47
|
"Title Filter",
|
|
@@ -59,6 +59,5 @@ views: { selector: '[data-testid="views"]', type: "float" },
|
|
|
59
59
|
"Advanced"
|
|
60
60
|
]
|
|
61
61
|
});
|
|
62
|
-
console.log(rules.dataManager.data.values().toArray());
|
|
63
62
|
|
|
64
63
|
})(core);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// ==UserScript==
|
|
2
2
|
// @name ThisVid.com Improved
|
|
3
3
|
// @namespace pervertmonkey
|
|
4
|
-
// @version 8.0.
|
|
4
|
+
// @version 8.0.8
|
|
5
5
|
// @author violent-orangutan
|
|
6
6
|
// @description Infinite scroll [optional]. Preview for private videos. Filter by Title, Duration, Quality and Public/Private. Sort by Duration and Views. Private/Public feed of friends uploads. Check access to private vids. Mass friend request button. Sorts messages. Download button 📼
|
|
7
7
|
// @license MIT
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
// @source github:smartacephale/sleazy-fork
|
|
12
12
|
// @supportURL https://github.com/smartacephale/sleazy-fork/issues
|
|
13
13
|
// @match https://*.thisvid.com/*
|
|
14
|
-
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.
|
|
14
|
+
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.18/dist/core/pervertmonkey.core.umd.js
|
|
15
15
|
// @require data:application/javascript,var core = window.pervertmonkey.core || pervertmonkey.core; var utils = core;
|
|
16
16
|
// @grant GM_addStyle
|
|
17
17
|
// @grant unsafeWindow
|
|
@@ -995,9 +995,9 @@ function takeWhile(predicate) {
|
|
|
995
995
|
}
|
|
996
996
|
return g();
|
|
997
997
|
}
|
|
998
|
-
function getMembers(
|
|
999
|
-
const friendsList =
|
|
1000
|
-
return Array.from(friendsList.querySelectorAll(".tumbpu") || []).map((
|
|
998
|
+
function getMembers(e) {
|
|
999
|
+
const friendsList = e.querySelector("#list_members_friends_items") || e;
|
|
1000
|
+
return Array.from(friendsList.querySelectorAll(".tumbpu") || []).map((e2) => e2.href.match(/\d+/)?.[0]).filter((_) => _);
|
|
1001
1001
|
}
|
|
1002
1002
|
async function friendMemberFriends(orientationFilter) {
|
|
1003
1003
|
const memberId = window.location.pathname.match(/\d+/)?.[0];
|
|
@@ -1124,10 +1124,9 @@ function takeWhile(predicate) {
|
|
|
1124
1124
|
}
|
|
1125
1125
|
}
|
|
1126
1126
|
const createDownloadButton = () => utils.downloader({
|
|
1127
|
-
append: "",
|
|
1128
1127
|
after: ".share_btn",
|
|
1129
|
-
|
|
1130
|
-
|
|
1128
|
+
buttonHtml: '<li><a href="#" style="text-decoration: none;font-size: 2rem;">📼</a></li>',
|
|
1129
|
+
doBefore: () => $(".fp-ui").click()
|
|
1131
1130
|
});
|
|
1132
1131
|
function animatePreview(_) {
|
|
1133
1132
|
const tick = new utils.Tick(750);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// ==UserScript==
|
|
2
2
|
// @name Xhamster Improved
|
|
3
3
|
// @namespace pervertmonkey
|
|
4
|
-
// @version 5.0.
|
|
4
|
+
// @version 5.0.9
|
|
5
5
|
// @author violent-orangutan
|
|
6
6
|
// @description Infinite scroll [optional], Filter by Title, Duration and Watched/Unwatched. Sort by Duration and Views
|
|
7
7
|
// @license MIT
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
// @match https://*.xhamster.com/*
|
|
14
14
|
// @match https://*.xhamster.*/*
|
|
15
15
|
// @exclude https://*.xhamster.com/embed*
|
|
16
|
-
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.
|
|
16
|
+
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.18/dist/core/pervertmonkey.core.umd.js
|
|
17
17
|
// @require data:application/javascript,var core = window.pervertmonkey.core || pervertmonkey.core; var utils = core;
|
|
18
18
|
// @grant GM_addElement
|
|
19
19
|
// @grant GM_addStyle
|
|
@@ -91,10 +91,10 @@
|
|
|
91
91
|
gropeStrategy: "all-in-all",
|
|
92
92
|
customDataFilterFns: [
|
|
93
93
|
{
|
|
94
|
-
filterWatched: (
|
|
94
|
+
filterWatched: (e, state) => !!(state.filterWatched && e.watched)
|
|
95
95
|
},
|
|
96
96
|
{
|
|
97
|
-
filterUnwatched: (
|
|
97
|
+
filterUnwatched: (e, state) => !!(state.filterUnwatched && !e.watched)
|
|
98
98
|
}
|
|
99
99
|
],
|
|
100
100
|
schemeOptions: [
|
|
@@ -139,11 +139,11 @@
|
|
|
139
139
|
}
|
|
140
140
|
function expandMoreVideoPage() {
|
|
141
141
|
utils.watchElementChildrenCount(rules.container, () => setTimeout(rules.gropeInit, 1800));
|
|
142
|
-
utils.waitForElementToAppear(document.body, 'button[data-role="show-more-next"]', (
|
|
142
|
+
utils.waitForElementToAppear(document.body, 'button[data-role="show-more-next"]', (e) => {
|
|
143
143
|
const observer = new utils.Observer((target) => {
|
|
144
144
|
target.click();
|
|
145
145
|
});
|
|
146
|
-
observer.observe(
|
|
146
|
+
observer.observe(e);
|
|
147
147
|
});
|
|
148
148
|
}
|
|
149
149
|
if (IS_VIDEO_PAGE) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// ==UserScript==
|
|
2
2
|
// @name XVideos Improved
|
|
3
3
|
// @namespace pervertmonkey
|
|
4
|
-
// @version 4.0.
|
|
4
|
+
// @version 4.0.9
|
|
5
5
|
// @author violent-orangutan
|
|
6
6
|
// @description Infinite scroll [optional], Filter by Title, Uploader and Duration. Sort by Duration and Views.
|
|
7
7
|
// @license MIT
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
// @source github:smartacephale/sleazy-fork
|
|
12
12
|
// @supportURL https://github.com/smartacephale/sleazy-fork/issues
|
|
13
13
|
// @match https://*.xvideos.com/*
|
|
14
|
-
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.
|
|
14
|
+
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.18/dist/core/pervertmonkey.core.umd.js
|
|
15
15
|
// @require data:application/javascript,var core = window.pervertmonkey.core || pervertmonkey.core; var utils = core;
|
|
16
16
|
// @grant GM_addStyle
|
|
17
17
|
// @grant unsafeWindow
|
|
@@ -47,12 +47,12 @@
|
|
|
47
47
|
}
|
|
48
48
|
},
|
|
49
49
|
customDataFilterFns: [
|
|
50
|
-
{ qualityLow: (
|
|
51
|
-
{ quality360: (
|
|
52
|
-
{ quality720: (
|
|
53
|
-
{ quality1080: (
|
|
54
|
-
{ quality1440: (
|
|
55
|
-
{ quality4k: (
|
|
50
|
+
{ qualityLow: (e, state) => !!state.qualityLow && e.quality !== "" },
|
|
51
|
+
{ quality360: (e, state) => !!state.quality360 && e.quality !== "360p" },
|
|
52
|
+
{ quality720: (e, state) => !!state.quality720 && e.quality !== "720p" },
|
|
53
|
+
{ quality1080: (e, state) => !!state.quality1080 && e.quality !== "1080p" },
|
|
54
|
+
{ quality1440: (e, state) => !!state.quality1440 && e.quality !== "1440p" },
|
|
55
|
+
{ quality4k: (e, state) => !!state.quality4k && e.quality !== "4k" }
|
|
56
56
|
],
|
|
57
57
|
schemeOptions: [
|
|
58
58
|
"Title Filter",
|