pervert-monkey 1.0.13 → 1.0.17
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 +90 -36
- package/dist/core/pervertmonkey.core.es.js +258 -129
- package/dist/core/pervertmonkey.core.es.js.map +1 -1
- package/dist/core/pervertmonkey.core.umd.js +258 -129
- package/dist/core/pervertmonkey.core.umd.js.map +1 -1
- package/dist/userscripts/3hentai.user.js +4 -5
- package/dist/userscripts/camgirlfinder.user.js +2 -2
- package/dist/userscripts/camwhores.user.js +7 -16
- package/dist/userscripts/e-hentai.user.js +8 -8
- package/dist/userscripts/ebalka.user.js +18 -10
- package/dist/userscripts/eporner.user.js +24 -41
- package/dist/userscripts/erome.user.js +13 -16
- package/dist/userscripts/eroprofile.user.js +5 -14
- package/dist/userscripts/javhdporn.user.js +6 -5
- package/dist/userscripts/missav.user.js +10 -4
- package/dist/userscripts/motherless.user.js +13 -6
- package/dist/userscripts/namethatporn.user.js +10 -16
- package/dist/userscripts/nhentai.user.js +5 -13
- package/dist/userscripts/obmenvsem.user.js +11 -4
- package/dist/userscripts/pornhub.user.js +14 -6
- package/dist/userscripts/spankbang.user.js +28 -7
- package/dist/userscripts/thisvid.user.js +15 -33
- package/dist/userscripts/xhamster.user.js +13 -18
- package/dist/userscripts/xvideos.user.js +33 -5
- package/package.json +1 -1
- package/src/core/data-handler/data-filter-fn-defaults.ts +52 -0
- package/src/core/data-handler/data-filter-fn.ts +62 -0
- package/src/core/data-handler/data-filter.ts +31 -103
- package/src/core/data-handler/data-manager.ts +91 -28
- package/src/core/jabroni-config/default-scheme.ts +54 -5
- package/src/core/jabroni-config/index.ts +1 -0
- package/src/core/jabroni-config/jabroni-gui-controller.ts +1 -1
- package/src/core/jabroni-config/scheme-selectors-mapping.ts +12 -0
- package/src/core/parsers/thumb-data-parser.ts +15 -19
- package/src/core/rules/index.ts +15 -9
- package/src/userscripts/index.ts +1 -1
- package/src/userscripts/scripts/3hentai.ts +3 -4
- package/src/userscripts/scripts/camgirlfinder.ts +1 -1
- package/src/userscripts/scripts/camwhores.ts +5 -14
- package/src/userscripts/scripts/e-hentai.ts +12 -12
- package/src/userscripts/scripts/ebalka.ts +16 -8
- package/src/userscripts/scripts/eporner.ts +23 -39
- package/src/userscripts/scripts/erome.ts +13 -17
- package/src/userscripts/scripts/eroprofile.ts +4 -12
- package/src/userscripts/scripts/javhdporn.ts +7 -8
- package/src/userscripts/scripts/missav.ts +10 -4
- package/src/userscripts/scripts/motherless.ts +13 -7
- package/src/userscripts/scripts/namethatporn.ts +10 -17
- package/src/userscripts/scripts/nhentai.ts +6 -13
- package/src/userscripts/scripts/obmenvsem.ts +14 -4
- package/src/userscripts/scripts/pornhub.ts +13 -4
- package/src/userscripts/scripts/spankbang.ts +29 -5
- package/src/userscripts/scripts/thisvid.ts +16 -31
- package/src/userscripts/scripts/xhamster.ts +13 -18
- package/src/userscripts/scripts/xvideos.ts +32 -3
- package/src/utils/dom/dom-observers.ts +3 -3
- package/src/utils/dom/index.ts +1 -1
- package/src/utils/parsers/index.ts +5 -2
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// ==UserScript==
|
|
2
2
|
// @name 3Hentai PervertMonkey
|
|
3
3
|
// @namespace pervertmonkey
|
|
4
|
-
// @version 1.0.
|
|
4
|
+
// @version 1.0.7
|
|
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.17/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
|
|
@@ -35,8 +35,7 @@
|
|
|
35
35
|
strategy: "auto"
|
|
36
36
|
},
|
|
37
37
|
gropeStrategy: "all-in-all",
|
|
38
|
-
|
|
39
|
-
schemeOptions: ["Text Filter", "Badge", "Advanced"],
|
|
38
|
+
schemeOptions: ["Title Filter", "Badge", "Advanced"],
|
|
40
39
|
animatePreview
|
|
41
40
|
});
|
|
42
41
|
function animatePreview() {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// ==UserScript==
|
|
2
2
|
// @name CamGirlFinder PervertMonkey
|
|
3
3
|
// @namespace pervertmonkey
|
|
4
|
-
// @version 1.6.
|
|
4
|
+
// @version 1.6.6
|
|
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.17/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,9 +1,9 @@
|
|
|
1
1
|
// ==UserScript==
|
|
2
2
|
// @name CamWhores PervertMonkey
|
|
3
3
|
// @namespace pervertmonkey
|
|
4
|
-
// @version 3.0.
|
|
4
|
+
// @version 3.0.10
|
|
5
5
|
// @author violent-orangutan
|
|
6
|
-
// @description Infinite scroll [optional]. Filter by Title, Duration and Private/Public. Mass friend request button. Download button
|
|
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
|
|
8
8
|
// @icon https://www.google.com/s2/favicons?sz=64&domain=camwhores.tv
|
|
9
9
|
// @homepage https://github.com/smartacephale/sleazy-fork
|
|
@@ -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.17/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
|
|
@@ -103,28 +103,19 @@
|
|
|
103
103
|
thumb: {
|
|
104
104
|
strategy: "auto-select",
|
|
105
105
|
selectors: {
|
|
106
|
-
private: { type: "boolean", selector: "[class*=private]" }
|
|
106
|
+
private: { type: "boolean", selector: "[class*=private]" },
|
|
107
|
+
views: { selector: ".views", type: "float" }
|
|
107
108
|
}
|
|
108
109
|
},
|
|
109
110
|
thumbImg: {
|
|
110
111
|
selector: "data-original"
|
|
111
112
|
},
|
|
112
113
|
gropeStrategy: "all-in-all",
|
|
113
|
-
customDataSelectorFns: [
|
|
114
|
-
"filterInclude",
|
|
115
|
-
"filterExclude",
|
|
116
|
-
"filterDuration",
|
|
117
|
-
{
|
|
118
|
-
filterPrivate: (e, state) => state.filterPrivate && e.private
|
|
119
|
-
},
|
|
120
|
-
{
|
|
121
|
-
filterPublic: (e, state) => state.filterPublic && !e.private
|
|
122
|
-
}
|
|
123
|
-
],
|
|
124
114
|
schemeOptions: [
|
|
125
|
-
"
|
|
115
|
+
"Title Filter",
|
|
126
116
|
"Duration Filter",
|
|
127
117
|
"Privacy Filter",
|
|
118
|
+
"Sort By",
|
|
128
119
|
"Badge",
|
|
129
120
|
{
|
|
130
121
|
title: "Advanced",
|
|
@@ -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.7
|
|
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.17/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
|
|
@@ -33,15 +33,14 @@
|
|
|
33
33
|
},
|
|
34
34
|
containerSelectorLast: ".itg.gld",
|
|
35
35
|
paginationStrategyOptions: createPaginationStrategyOptions(),
|
|
36
|
-
|
|
37
|
-
schemeOptions: ["Text Filter", "Badge", "Advanced"]
|
|
36
|
+
schemeOptions: ["Title Filter", "Badge", "Advanced"]
|
|
38
37
|
});
|
|
39
38
|
function createPaginationStrategyOptions() {
|
|
40
39
|
let nextLink;
|
|
40
|
+
function getNextLink(doc = document) {
|
|
41
|
+
return [...doc.querySelectorAll("a#dnext[href]")].pop()?.href;
|
|
42
|
+
}
|
|
41
43
|
function getPaginationUrlGenerator() {
|
|
42
|
-
function getNextLink(doc = document) {
|
|
43
|
-
return [...doc.querySelectorAll("a#dnext[href]")].pop()?.href;
|
|
44
|
-
}
|
|
45
44
|
const paginationUrlGenerator = async (_) => {
|
|
46
45
|
if (!nextLink) {
|
|
47
46
|
nextLink = getNextLink();
|
|
@@ -53,9 +52,10 @@
|
|
|
53
52
|
};
|
|
54
53
|
return paginationUrlGenerator;
|
|
55
54
|
}
|
|
55
|
+
const totalTitles = Number.parseInt(getNextLink()?.match(/\d+$/)?.[0] || "0");
|
|
56
56
|
return {
|
|
57
57
|
paginationSelector: ".searchnav + div + .searchnav",
|
|
58
|
-
overwritePaginationLast: () =>
|
|
58
|
+
overwritePaginationLast: () => totalTitles,
|
|
59
59
|
getPaginationUrlGenerator
|
|
60
60
|
};
|
|
61
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.7
|
|
5
5
|
// @author violent-orangutan
|
|
6
|
-
// @description Infinite scroll [optional], Filter by Title and Duration
|
|
6
|
+
// @description Infinite scroll [optional], Filter by Title and Duration, Sort by Duration
|
|
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.17/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
|
|
@@ -36,22 +36,30 @@
|
|
|
36
36
|
thumb: {
|
|
37
37
|
selectors: {
|
|
38
38
|
title: ".card__title",
|
|
39
|
-
duration: ".card__spot > span:last-child"
|
|
39
|
+
duration: ".card__spot > span:last-child",
|
|
40
|
+
hd: { selector: ".card__icons > .card__icon", type: "boolean" }
|
|
40
41
|
}
|
|
41
42
|
},
|
|
42
43
|
animatePreview,
|
|
43
|
-
schemeOptions: [
|
|
44
|
+
schemeOptions: [
|
|
45
|
+
"Title Filter",
|
|
46
|
+
"Duration Filter",
|
|
47
|
+
"HD Filter",
|
|
48
|
+
"Sort By Duration",
|
|
49
|
+
"Badge",
|
|
50
|
+
"Advanced"
|
|
51
|
+
]
|
|
44
52
|
});
|
|
45
53
|
function animatePreview(container) {
|
|
46
54
|
function animateThumb(thumb) {
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
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");
|
|
50
58
|
const videoElem = utils.parseHtml(`<video style="position: absolute; left: 0px; top: 0px; visibility: visible; margin-top: -1px;"
|
|
51
59
|
autoplay="" loop="" playsinline="true" webkit-playsinline="true" src="${src}"></video>`);
|
|
52
|
-
|
|
60
|
+
e.appendChild(videoElem);
|
|
53
61
|
return () => {
|
|
54
|
-
|
|
62
|
+
e.classList.toggle("video-on");
|
|
55
63
|
utils.exterminateVideo(videoElem);
|
|
56
64
|
};
|
|
57
65
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// ==UserScript==
|
|
2
2
|
// @name Eporner PervertMonkey
|
|
3
3
|
// @namespace pervertmonkey
|
|
4
|
-
// @version 2.0.
|
|
4
|
+
// @version 2.0.9
|
|
5
5
|
// @author violent-orangutan
|
|
6
|
-
// @description Infinite scroll [optional], Filter by Title, Duration and HD
|
|
6
|
+
// @description Infinite scroll [optional], Filter by Title, Uploader, Duration and HD, Sort by Views and Duration
|
|
7
7
|
// @license MIT
|
|
8
8
|
// @icon https://www.google.com/s2/favicons?sz=64&domain=eporner.com
|
|
9
9
|
// @homepage https://github.com/smartacephale/sleazy-fork
|
|
@@ -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.17/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
|
|
@@ -32,10 +32,11 @@
|
|
|
32
32
|
thumbs: { selector: "div[id^=vf][data-id]" },
|
|
33
33
|
thumb: {
|
|
34
34
|
selectors: {
|
|
35
|
-
quality: { type: "number", selector: '[title="Quality"]' },
|
|
36
35
|
title: "a",
|
|
37
36
|
uploader: '[title="Uploader"]',
|
|
38
|
-
duration: '[title="Duration"]'
|
|
37
|
+
duration: '[title="Duration"]',
|
|
38
|
+
views: { selector: '[title="Views"]', type: "float" },
|
|
39
|
+
quality: { selector: '[title="Quality"]', type: "number" }
|
|
39
40
|
}
|
|
40
41
|
},
|
|
41
42
|
thumbImg: {
|
|
@@ -43,52 +44,34 @@
|
|
|
43
44
|
remove: "auto"
|
|
44
45
|
},
|
|
45
46
|
containerSelectorLast: "#vidresults",
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
{
|
|
51
|
-
|
|
52
|
-
}
|
|
53
|
-
{
|
|
54
|
-
quality480: (el, state) => !!state.quality480 && el.quality !== 480
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
quality720: (el, state) => !!state.quality720 && el.quality !== 720
|
|
58
|
-
},
|
|
59
|
-
{
|
|
60
|
-
quality1080: (el, state) => !!state.quality1080 && el.quality !== 1080
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
quality4k: (el, state) => !!state.quality4k && el.quality !== 4
|
|
64
|
-
}
|
|
47
|
+
customDataFilterFns: [
|
|
48
|
+
{ quality360: (el, state) => !!state.quality360 && el.quality !== 360 },
|
|
49
|
+
{ quality480: (el, state) => !!state.quality480 && el.quality !== 480 },
|
|
50
|
+
{ quality720: (el, state) => !!state.quality720 && el.quality !== 720 },
|
|
51
|
+
{ quality1080: (el, state) => !!state.quality1080 && el.quality !== 1080 },
|
|
52
|
+
{ quality2k: (el, state) => !!state.quality2k && el.quality !== 2 },
|
|
53
|
+
{ quality4k: (el, state) => !!state.quality4k && el.quality !== 4 }
|
|
65
54
|
],
|
|
66
55
|
schemeOptions: [
|
|
67
|
-
"
|
|
68
|
-
"
|
|
56
|
+
"Title Filter",
|
|
57
|
+
"Uploader Filter",
|
|
69
58
|
"Duration Filter",
|
|
70
59
|
{
|
|
71
60
|
title: "Quality Filter ",
|
|
72
61
|
content: [
|
|
73
|
-
{
|
|
74
|
-
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
|
|
78
|
-
}
|
|
79
|
-
{
|
|
80
|
-
quality720: false
|
|
81
|
-
},
|
|
82
|
-
{
|
|
83
|
-
quality1080: false
|
|
84
|
-
},
|
|
85
|
-
{
|
|
86
|
-
quality4k: false
|
|
87
|
-
}
|
|
62
|
+
{ quality360: false },
|
|
63
|
+
{ quality480: false },
|
|
64
|
+
{ quality720: false },
|
|
65
|
+
{ quality1080: false },
|
|
66
|
+
{ quality2k: false },
|
|
67
|
+
{ quality4k: false }
|
|
88
68
|
]
|
|
89
69
|
},
|
|
70
|
+
"Sort By",
|
|
71
|
+
"Badge",
|
|
90
72
|
"Advanced"
|
|
91
73
|
],
|
|
74
|
+
gropeStrategy: "all-in-all",
|
|
92
75
|
animatePreview
|
|
93
76
|
});
|
|
94
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.8
|
|
5
5
|
// @author violent-orangutan
|
|
6
|
-
// @description Infinite scroll [optional], Filter by Title and Video/Photo albums
|
|
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.17/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
|
|
@@ -35,35 +35,32 @@
|
|
|
35
35
|
selectors: {
|
|
36
36
|
title: ".album-title",
|
|
37
37
|
uploader: ".album-user",
|
|
38
|
-
videoAlbum: {
|
|
38
|
+
videoAlbum: { selector: ".album-videos", type: "boolean" },
|
|
39
|
+
views: { selector: ".album-bottom-views", type: "float" }
|
|
39
40
|
}
|
|
40
41
|
},
|
|
41
42
|
storeOptions: { showPhotos: true },
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
{
|
|
46
|
-
filterPhotoAlbums: (el, state) => state.filterPhotoAlbums && !el.videoAlbum
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
filterVideoAlbums: (el, state) => state.filterVideoAlbums && el.videoAlbum
|
|
50
|
-
}
|
|
43
|
+
customDataFilterFns: [
|
|
44
|
+
{ filterPhotoAlbums: (el, state) => !!state.filterPhotoAlbums && !el.videoAlbum },
|
|
45
|
+
{ filterVideoAlbums: (el, state) => !!state.filterVideoAlbums && !!el.videoAlbum }
|
|
51
46
|
],
|
|
52
47
|
schemeOptions: [
|
|
53
|
-
"
|
|
48
|
+
"Title Filter",
|
|
49
|
+
"Uploader Filter",
|
|
54
50
|
{
|
|
55
51
|
title: "Filter Albums",
|
|
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
|
},
|
|
63
|
+
"Sort By Views",
|
|
67
64
|
"Badge",
|
|
68
65
|
"Advanced"
|
|
69
66
|
]
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// ==UserScript==
|
|
2
2
|
// @name Eroprofile PervertMonkey
|
|
3
3
|
// @namespace pervertmonkey
|
|
4
|
-
// @version 2.0.
|
|
4
|
+
// @version 2.0.7
|
|
5
5
|
// @author violent-orangutan
|
|
6
|
-
// @description Infinite scroll [optional], Filter by Title and Duration
|
|
6
|
+
// @description Infinite scroll [optional], Filter by Title and Duration, Sort by Duration
|
|
7
7
|
// @license MIT
|
|
8
8
|
// @icon https://www.google.com/s2/favicons?sz=64&domain=eroprofile.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 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.17/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
|
|
@@ -35,19 +35,10 @@
|
|
|
35
35
|
}
|
|
36
36
|
},
|
|
37
37
|
containerSelector: ".videoGrid",
|
|
38
|
-
customDataSelectorFns: ["filterInclude", "filterExclude", "filterDuration"],
|
|
39
38
|
schemeOptions: [
|
|
40
|
-
"
|
|
39
|
+
"Title Filter",
|
|
41
40
|
"Duration Filter",
|
|
42
|
-
|
|
43
|
-
title: "Sort By ",
|
|
44
|
-
content: [
|
|
45
|
-
{
|
|
46
|
-
"sort by duration": () => {
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
]
|
|
50
|
-
},
|
|
41
|
+
"Sort By Duration",
|
|
51
42
|
"Badge",
|
|
52
43
|
"Advanced"
|
|
53
44
|
]
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// ==UserScript==
|
|
2
2
|
// @name Javhdporn PervertMonkey
|
|
3
3
|
// @namespace pervertmonkey
|
|
4
|
-
// @version 3.0.
|
|
4
|
+
// @version 3.0.7
|
|
5
5
|
// @author violent-orangutan
|
|
6
|
-
// @description Infinite scroll [optional], Filter by Title and Duration
|
|
6
|
+
// @description Infinite scroll [optional], Filter by Title and Duration, Sort By Duration and Views
|
|
7
7
|
// @license MIT
|
|
8
8
|
// @icon https://www.google.com/s2/favicons?sz=64&domain=javhdporn.net
|
|
9
9
|
// @homepage https://github.com/smartacephale/sleazy-fork
|
|
@@ -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.17/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
|
|
@@ -28,13 +28,14 @@
|
|
|
28
28
|
thumb: {
|
|
29
29
|
selectors: {
|
|
30
30
|
title: "header.entry-header",
|
|
31
|
-
duration: ".duration"
|
|
31
|
+
duration: ".duration",
|
|
32
|
+
views: { selector: ".views", type: "float" }
|
|
32
33
|
}
|
|
33
34
|
},
|
|
34
35
|
paginationStrategyOptions: {
|
|
35
36
|
pathnameSelector: /\/page\/(\d+)\/?$/
|
|
36
37
|
},
|
|
37
|
-
schemeOptions: ["
|
|
38
|
+
schemeOptions: ["Title Filter", "Duration Filter", "Sort By", "Badge", "Advanced"]
|
|
38
39
|
});
|
|
39
40
|
|
|
40
41
|
})(core);
|
|
@@ -1,9 +1,9 @@
|
|
|
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
|
-
// @description Infinite scroll [optional], Filter by Title and Duration
|
|
6
|
+
// @description Infinite scroll [optional], Filter by Title and Duration, Sort by Duration
|
|
7
7
|
// @license MIT
|
|
8
8
|
// @icon https://www.google.com/s2/favicons?sz=64&domain=missav123.com
|
|
9
9
|
// @homepage https://github.com/smartacephale/sleazy-fork
|
|
@@ -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.17/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
|
|
@@ -38,7 +38,13 @@
|
|
|
38
38
|
}
|
|
39
39
|
},
|
|
40
40
|
thumbImg: { strategy: "auto" },
|
|
41
|
-
schemeOptions: [
|
|
41
|
+
schemeOptions: [
|
|
42
|
+
"Title Filter",
|
|
43
|
+
"Duration Filter",
|
|
44
|
+
"Sort By Duration",
|
|
45
|
+
"Badge",
|
|
46
|
+
"Advanced"
|
|
47
|
+
]
|
|
42
48
|
});
|
|
43
49
|
|
|
44
50
|
})(core);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// ==UserScript==
|
|
2
2
|
// @name Motherless PervertMonkey
|
|
3
3
|
// @namespace pervertmonkey
|
|
4
|
-
// @version 5.0.
|
|
4
|
+
// @version 5.0.8
|
|
5
5
|
// @author violent-orangutan
|
|
6
|
-
// @description Infinite scroll [optional], Filter by Title and Duration
|
|
6
|
+
// @description Infinite scroll [optional], Filter by Title, Uploader and Duration, Sort by Duration and Views
|
|
7
7
|
// @license MIT
|
|
8
8
|
// @icon https://www.google.com/s2/favicons?sz=64&domain=motherless.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 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.17/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
|
|
@@ -45,7 +45,14 @@
|
|
|
45
45
|
},
|
|
46
46
|
animatePreview,
|
|
47
47
|
gropeStrategy: "all-in-all",
|
|
48
|
-
schemeOptions: [
|
|
48
|
+
schemeOptions: [
|
|
49
|
+
"Title Filter",
|
|
50
|
+
"Uploader Filter",
|
|
51
|
+
"Duration Filter",
|
|
52
|
+
"Sort By",
|
|
53
|
+
"Badge",
|
|
54
|
+
"Advanced"
|
|
55
|
+
]
|
|
49
56
|
});
|
|
50
57
|
function animatePreview(_) {
|
|
51
58
|
const tick = new utils.Tick(500);
|
|
@@ -135,7 +142,7 @@
|
|
|
135
142
|
}
|
|
136
143
|
const overwrite1 = (x) => `@media only screen and (max-width: 1280px) {
|
|
137
144
|
#categories-page.inner ${x} }`;
|
|
138
|
-
rules.dataManager.dataFilter.
|
|
145
|
+
rules.dataManager.dataFilter.createCssFilters(overwrite1);
|
|
139
146
|
_GM_addStyle(`
|
|
140
147
|
.img-container, .desktop-thumb { min-height: 150px; max-height: 150px; }
|
|
141
148
|
|
|
@@ -148,7 +155,7 @@
|
|
|
148
155
|
document.querySelector(".ml-pagination")?.before(_GM_addElement("div", { class: "clear-left" }));
|
|
149
156
|
function applySearchFilters() {
|
|
150
157
|
let pathname = window.location.pathname;
|
|
151
|
-
const wordsToFilter = rules.store.state.filterExcludeWords.
|
|
158
|
+
const wordsToFilter = rules.store.state.filterExcludeWords.match(/\w+/g) || [];
|
|
152
159
|
wordsToFilter.filter((w) => !pathname.includes(w)).forEach((w) => {
|
|
153
160
|
pathname += `+-${w.trim()}`;
|
|
154
161
|
});
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// ==UserScript==
|
|
2
2
|
// @name NameThatPorn PervertMonkey
|
|
3
3
|
// @namespace pervertmonkey
|
|
4
|
-
// @version 3.0.
|
|
4
|
+
// @version 3.0.7
|
|
5
5
|
// @author violent-orangutan
|
|
6
|
-
// @description Infinite scroll [optional], Filter by Title and
|
|
6
|
+
// @description Infinite scroll [optional], Filter by Title, Uploader and Solved/Unsolved
|
|
7
7
|
// @license MIT
|
|
8
8
|
// @icon https://www.google.com/s2/favicons?sz=64&domain=namethatporn.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 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.17/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
|
|
@@ -30,33 +30,27 @@
|
|
|
30
30
|
selectors: {
|
|
31
31
|
title: ".item_title, .nsw_r_tit",
|
|
32
32
|
uploader: ".item_answer b, .nsw_r_desc",
|
|
33
|
-
solved: {
|
|
34
|
-
type: "boolean",
|
|
35
|
-
selector: ".item_solved, .nsw_r_slvd"
|
|
36
|
-
}
|
|
33
|
+
solved: { selector: ".item_solved, .nsw_r_slvd", type: "boolean" }
|
|
37
34
|
}
|
|
38
35
|
},
|
|
39
36
|
thumbImg: {
|
|
40
|
-
selector: (img) =>
|
|
41
|
-
return img.getAttribute("data-dyn")?.concat(".webp") || img.getAttribute("src");
|
|
42
|
-
}
|
|
37
|
+
selector: (img) => img.getAttribute("data-dyn")?.concat(".webp") || img.getAttribute("src")
|
|
43
38
|
},
|
|
44
39
|
paginationStrategyOptions: {
|
|
45
40
|
paginationSelector: "#smi_wrp, #nsw_p"
|
|
46
41
|
},
|
|
47
42
|
gropeStrategy: "all-in-all",
|
|
48
|
-
|
|
49
|
-
"filterInclude",
|
|
50
|
-
"filterExclude",
|
|
43
|
+
customDataFilterFns: [
|
|
51
44
|
{
|
|
52
|
-
filterSolved: (
|
|
45
|
+
filterSolved: (e, state) => state.filterSolved && e.solved
|
|
53
46
|
},
|
|
54
47
|
{
|
|
55
|
-
filterUnsolved: (
|
|
48
|
+
filterUnsolved: (e, state) => state.filterUnsolved && !e.solved
|
|
56
49
|
}
|
|
57
50
|
],
|
|
58
51
|
schemeOptions: [
|
|
59
|
-
"
|
|
52
|
+
"Title Filter",
|
|
53
|
+
"Uploader Filter",
|
|
60
54
|
{
|
|
61
55
|
title: "Filter Status",
|
|
62
56
|
content: [
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// ==UserScript==
|
|
2
2
|
// @name NHentai PervertMonkey
|
|
3
3
|
// @namespace pervertmonkey
|
|
4
|
-
// @version 4.0.
|
|
4
|
+
// @version 4.0.7
|
|
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.17/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
|
|
@@ -26,18 +26,10 @@
|
|
|
26
26
|
const IS_SEARCH_PAGE = /^\/search\//.test(location.pathname);
|
|
27
27
|
const nhentaiRules = new core.Rules({
|
|
28
28
|
thumbs: { selector: ".gallery" },
|
|
29
|
-
thumb: {
|
|
30
|
-
|
|
31
|
-
title: ".caption"
|
|
32
|
-
}
|
|
33
|
-
},
|
|
34
|
-
thumbImg: {
|
|
35
|
-
strategy: "auto",
|
|
36
|
-
remove: "auto"
|
|
37
|
-
},
|
|
29
|
+
thumb: { selectors: { title: ".caption" } },
|
|
30
|
+
thumbImg: { strategy: "auto", remove: "auto" },
|
|
38
31
|
containerSelectorLast: ".index-container, .container",
|
|
39
|
-
|
|
40
|
-
schemeOptions: ["Text Filter", "Badge", "Advanced"],
|
|
32
|
+
schemeOptions: ["Title Filter", "Badge", "Advanced"],
|
|
41
33
|
gropeStrategy: "all-in-all"
|
|
42
34
|
});
|
|
43
35
|
const filterDescriptors = {
|