pervert-monkey 1.0.11 → 1.0.13
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/README.md +22 -11
- package/dist/core/pervertmonkey.core.es.d.ts +25 -16
- package/dist/core/pervertmonkey.core.es.js +712 -61
- package/dist/core/pervertmonkey.core.es.js.map +1 -1
- package/dist/core/pervertmonkey.core.umd.js +712 -61
- package/dist/core/pervertmonkey.core.umd.js.map +1 -1
- package/dist/userscripts/3hentai.user.js +19 -26
- package/dist/userscripts/camgirlfinder.user.js +2 -2
- package/dist/userscripts/camwhores.user.js +12 -16
- package/dist/userscripts/e-hentai.user.js +3 -4
- package/dist/userscripts/ebalka.user.js +6 -11
- package/dist/userscripts/eporner.user.js +11 -16
- package/dist/userscripts/erome.user.js +2 -2
- package/dist/userscripts/eroprofile.user.js +2 -2
- package/dist/userscripts/javhdporn.user.js +2 -2
- package/dist/userscripts/missav.user.js +2 -2
- package/dist/userscripts/motherless.user.js +22 -42
- package/dist/userscripts/namethatporn.user.js +5 -4
- package/dist/userscripts/nhentai.user.js +3 -3
- package/dist/userscripts/obmenvsem.user.js +18 -4
- package/dist/userscripts/pornhub.user.js +9 -12
- package/dist/userscripts/spankbang.user.js +6 -38
- package/dist/userscripts/thisvid.user.js +20 -22
- package/dist/userscripts/xhamster.user.js +13 -16
- package/dist/userscripts/xvideos.user.js +7 -12
- package/package.json +1 -1
- package/src/core/data-handler/data-manager.ts +4 -4
- package/src/core/jabroni-config/index.ts +3 -2
- package/src/core/jabroni-config/jabroni-gui-controller.ts +61 -0
- package/src/core/parsers/thumb-data-parser.ts +10 -1
- package/src/core/rules/index.ts +12 -39
- package/src/userscripts/index.ts +1 -1
- package/src/userscripts/scripts/3hentai.ts +20 -24
- package/src/userscripts/scripts/camgirlfinder.ts +1 -1
- package/src/userscripts/scripts/camwhores.ts +10 -17
- package/src/userscripts/scripts/e-hentai.ts +1 -1
- package/src/userscripts/scripts/ebalka.ts +7 -12
- package/src/userscripts/scripts/eporner.ts +8 -14
- package/src/userscripts/scripts/erome.ts +1 -1
- package/src/userscripts/scripts/eroprofile.ts +3 -3
- package/src/userscripts/scripts/javhdporn.ts +1 -1
- package/src/userscripts/scripts/missav.ts +1 -1
- package/src/userscripts/scripts/motherless.ts +19 -48
- package/src/userscripts/scripts/namethatporn.ts +1 -1
- package/src/userscripts/scripts/nhentai.ts +1 -1
- package/src/userscripts/scripts/obmenvsem.ts +1 -1
- package/src/userscripts/scripts/pornhub.ts +1 -1
- package/src/userscripts/scripts/spankbang.ts +1 -1
- package/src/userscripts/scripts/thisvid.ts +18 -19
- package/src/userscripts/scripts/xhamster.ts +10 -11
- package/src/userscripts/scripts/xvideos.ts +6 -11
- package/src/utils/dom/index.ts +10 -0
- package/src/utils/events/on-hover.ts +17 -25
- package/src/utils/events/tick.ts +1 -3
- package/src/utils/parsers/index.ts +16 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// ==UserScript==
|
|
2
2
|
// @name 3Hentai PervertMonkey
|
|
3
3
|
// @namespace pervertmonkey
|
|
4
|
-
// @version 1.0.
|
|
4
|
+
// @version 1.0.4
|
|
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://*.3hentai.net/*
|
|
14
|
-
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.
|
|
14
|
+
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.13/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,32 +41,25 @@
|
|
|
41
41
|
});
|
|
42
42
|
function animatePreview() {
|
|
43
43
|
const tick = new utils.Tick(500, false);
|
|
44
|
-
const end =
|
|
44
|
+
const end = 9999;
|
|
45
45
|
function rotate(src) {
|
|
46
|
-
return src.replace(
|
|
47
|
-
/(\d+)(?=t\.jpg$)/,
|
|
48
|
-
(_, n) => `${utils.circularShift(parseInt(n), end)}`
|
|
49
|
-
);
|
|
46
|
+
return src.replace(/(\d+)(?=t\.jpg$)/, (_, n) => `${utils.circularShift(parseInt(n), end)}`);
|
|
50
47
|
}
|
|
51
|
-
utils.OnHover.create(
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
(
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
);
|
|
67
|
-
},
|
|
68
|
-
(_) => tick.stop()
|
|
69
|
-
);
|
|
48
|
+
utils.OnHover.create(document.body, ".doujin-col", (e) => {
|
|
49
|
+
const img = e.querySelector("img");
|
|
50
|
+
const origin = img.src;
|
|
51
|
+
img.src = img.src.replace(/\w+\.\w+$/, "1t.jpg");
|
|
52
|
+
img.onerror = (_) => tick.stop();
|
|
53
|
+
tick.start(
|
|
54
|
+
() => {
|
|
55
|
+
img.src = rotate(img.src);
|
|
56
|
+
},
|
|
57
|
+
() => {
|
|
58
|
+
img.src = origin;
|
|
59
|
+
}
|
|
60
|
+
);
|
|
61
|
+
return () => tick.stop();
|
|
62
|
+
});
|
|
70
63
|
}
|
|
71
64
|
|
|
72
65
|
})(core, utils);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// ==UserScript==
|
|
2
2
|
// @name CamGirlFinder PervertMonkey
|
|
3
3
|
// @namespace pervertmonkey
|
|
4
|
-
// @version 1.6.
|
|
4
|
+
// @version 1.6.2
|
|
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.13/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.6
|
|
5
5
|
// @author violent-orangutan
|
|
6
6
|
// @description Infinite scroll [optional]. Filter by Title, Duration and Private/Public. 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.13/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
|
|
@@ -107,8 +107,7 @@
|
|
|
107
107
|
}
|
|
108
108
|
},
|
|
109
109
|
thumbImg: {
|
|
110
|
-
selector: "data-original"
|
|
111
|
-
strategy: "auto"
|
|
110
|
+
selector: "data-original"
|
|
112
111
|
},
|
|
113
112
|
gropeStrategy: "all-in-all",
|
|
114
113
|
customDataSelectorFns: [
|
|
@@ -154,24 +153,21 @@
|
|
|
154
153
|
}
|
|
155
154
|
utils.OnHover.create(
|
|
156
155
|
container,
|
|
157
|
-
|
|
158
|
-
(
|
|
159
|
-
const
|
|
160
|
-
const origin =
|
|
161
|
-
const count = parseInt(
|
|
156
|
+
".list-videos .item, .playlist .item, .list-playlists > div > .item, .item:has(.title)",
|
|
157
|
+
(e) => {
|
|
158
|
+
const img = e.querySelector("img");
|
|
159
|
+
const origin = img.src;
|
|
160
|
+
const count = parseInt(img.getAttribute("data-cnt")) || 5;
|
|
162
161
|
tick.start(
|
|
163
162
|
() => {
|
|
164
|
-
|
|
163
|
+
img.src = rotateImg(img.src, count);
|
|
165
164
|
},
|
|
166
165
|
() => {
|
|
167
|
-
|
|
166
|
+
img.src = origin;
|
|
168
167
|
}
|
|
169
168
|
);
|
|
170
|
-
return
|
|
171
|
-
|
|
172
|
-
};
|
|
173
|
-
},
|
|
174
|
-
() => tick.stop()
|
|
169
|
+
return () => tick.stop();
|
|
170
|
+
}
|
|
175
171
|
);
|
|
176
172
|
}
|
|
177
173
|
const createDownloadButton = () => utils.downloader({
|
|
@@ -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.2
|
|
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.13/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
|
|
@@ -29,8 +29,7 @@
|
|
|
29
29
|
}
|
|
30
30
|
},
|
|
31
31
|
thumbImg: {
|
|
32
|
-
selector: "data-lazy-load"
|
|
33
|
-
strategy: "auto"
|
|
32
|
+
selector: "data-lazy-load"
|
|
34
33
|
},
|
|
35
34
|
containerSelectorLast: ".itg.gld",
|
|
36
35
|
paginationStrategyOptions: createPaginationStrategyOptions(),
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// ==UserScript==
|
|
2
2
|
// @name Ebalka PervertMonkey
|
|
3
3
|
// @namespace pervertmonkey
|
|
4
|
-
// @version 3.0.
|
|
4
|
+
// @version 3.0.3
|
|
5
5
|
// @author violent-orangutan
|
|
6
6
|
// @description Infinite scroll [optional], Filter by Title and Duration
|
|
7
7
|
// @license MIT
|
|
@@ -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.13/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
|
|
@@ -55,15 +55,10 @@
|
|
|
55
55
|
utils.exterminateVideo(videoElem);
|
|
56
56
|
};
|
|
57
57
|
}
|
|
58
|
-
utils.OnHover.create(
|
|
59
|
-
|
|
60
|
-
(
|
|
61
|
-
|
|
62
|
-
const thumb = target.closest(".card");
|
|
63
|
-
const onOverCallback = animateThumb(thumb);
|
|
64
|
-
return { leaveTarget: thumb, onOverCallback };
|
|
65
|
-
}
|
|
66
|
-
);
|
|
58
|
+
utils.OnHover.create(container, ".card_video", (target) => {
|
|
59
|
+
const thumb = target.closest(".card");
|
|
60
|
+
return animateThumb(thumb);
|
|
61
|
+
});
|
|
67
62
|
}
|
|
68
63
|
|
|
69
64
|
})(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.4
|
|
5
5
|
// @author violent-orangutan
|
|
6
6
|
// @description Infinite scroll [optional], Filter by Title, Duration and HD
|
|
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.13/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
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
paginationStrategyOptions: {
|
|
30
30
|
paginationSelector: ".numlist2"
|
|
31
31
|
},
|
|
32
|
+
thumbs: { selector: "div[id^=vf][data-id]" },
|
|
32
33
|
thumb: {
|
|
33
34
|
selectors: {
|
|
34
35
|
quality: { type: "number", selector: '[title="Quality"]' },
|
|
@@ -38,10 +39,8 @@
|
|
|
38
39
|
}
|
|
39
40
|
},
|
|
40
41
|
thumbImg: {
|
|
41
|
-
strategy: "auto"
|
|
42
|
-
|
|
43
|
-
thumbs: {
|
|
44
|
-
selector: "div[id^=vf][data-id]"
|
|
42
|
+
strategy: "auto",
|
|
43
|
+
remove: "auto"
|
|
45
44
|
},
|
|
46
45
|
containerSelectorLast: "#vidresults",
|
|
47
46
|
customDataSelectorFns: [
|
|
@@ -93,16 +92,12 @@
|
|
|
93
92
|
animatePreview
|
|
94
93
|
});
|
|
95
94
|
function animatePreview(doc) {
|
|
96
|
-
utils.OnHover.create(
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
(
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
const id = thumb?.getAttribute("data-id");
|
|
103
|
-
show_video_prev(id);
|
|
104
|
-
}
|
|
105
|
-
);
|
|
95
|
+
utils.OnHover.create(doc, "div[id^=vf][data-id]", (e) => {
|
|
96
|
+
const target = e;
|
|
97
|
+
const thumb = target.closest("[data-id]");
|
|
98
|
+
const id = thumb?.getAttribute("data-id");
|
|
99
|
+
show_video_prev(id);
|
|
100
|
+
});
|
|
106
101
|
}
|
|
107
102
|
|
|
108
103
|
})(core, utils);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// ==UserScript==
|
|
2
2
|
// @name Erome PervertMonkey
|
|
3
3
|
// @namespace pervertmonkey
|
|
4
|
-
// @version 5.0.
|
|
4
|
+
// @version 5.0.3
|
|
5
5
|
// @author violent-orangutan
|
|
6
6
|
// @description Infinite scroll [optional], Filter by Title and Video/Photo albums
|
|
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 *://*.erome.com/*
|
|
14
|
-
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.
|
|
14
|
+
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.13/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 Eroprofile PervertMonkey
|
|
3
3
|
// @namespace pervertmonkey
|
|
4
|
-
// @version 2.0.
|
|
4
|
+
// @version 2.0.3
|
|
5
5
|
// @author violent-orangutan
|
|
6
6
|
// @description Infinite scroll [optional], Filter by Title and 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.13/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.3
|
|
5
5
|
// @author violent-orangutan
|
|
6
6
|
// @description Infinite scroll [optional], Filter by Title and Duration
|
|
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.13/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.3
|
|
5
5
|
// @author violent-orangutan
|
|
6
6
|
// @description Infinite scroll [optional], Filter by Title and 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.13/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
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// ==UserScript==
|
|
2
2
|
// @name Motherless PervertMonkey
|
|
3
3
|
// @namespace pervertmonkey
|
|
4
|
-
// @version 5.0.
|
|
4
|
+
// @version 5.0.4
|
|
5
5
|
// @author violent-orangutan
|
|
6
6
|
// @description Infinite scroll [optional], Filter by Title and 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://motherless.com/*
|
|
14
|
-
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.
|
|
14
|
+
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.13/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
|
|
@@ -35,7 +35,8 @@
|
|
|
35
35
|
selectors: {
|
|
36
36
|
uploader: ".uploader",
|
|
37
37
|
title: ".title",
|
|
38
|
-
duration: ".size"
|
|
38
|
+
duration: ".size",
|
|
39
|
+
views: { selector: ".hits", type: "float" }
|
|
39
40
|
}
|
|
40
41
|
},
|
|
41
42
|
thumbImg: { strategy: "auto" },
|
|
@@ -44,26 +45,16 @@
|
|
|
44
45
|
},
|
|
45
46
|
animatePreview,
|
|
46
47
|
gropeStrategy: "all-in-all",
|
|
47
|
-
schemeOptions: ["Text Filter", "Duration Filter", "Badge", "Advanced"]
|
|
48
|
+
schemeOptions: ["Text Filter", "Sort By", "Duration Filter", "Badge", "Advanced"]
|
|
48
49
|
});
|
|
49
50
|
function animatePreview(_) {
|
|
50
|
-
const
|
|
51
|
-
const tick = new utils.Tick(ANIMATION_INTERVAL);
|
|
52
|
-
let currentOverlay = null;
|
|
53
|
-
function onLeave(target) {
|
|
54
|
-
tick.stop();
|
|
55
|
-
const img = target.querySelector("img.static");
|
|
56
|
-
img.classList.remove("animating");
|
|
57
|
-
if (currentOverlay) {
|
|
58
|
-
currentOverlay.style.display = "none";
|
|
59
|
-
}
|
|
60
|
-
}
|
|
51
|
+
const tick = new utils.Tick(500);
|
|
61
52
|
function onOver(target) {
|
|
62
53
|
$(".video").off();
|
|
63
|
-
const container = target.
|
|
54
|
+
const container = target.querySelector(".desktop-thumb.video");
|
|
64
55
|
const img = container.querySelector("img.static");
|
|
65
56
|
const stripSrc = img.getAttribute("data-strip-src");
|
|
66
|
-
|
|
57
|
+
container.classList.toggle("animating");
|
|
67
58
|
let overlay = img.nextElementSibling;
|
|
68
59
|
if (!overlay || overlay.tagName !== "DIV") {
|
|
69
60
|
overlay = document.createElement("div");
|
|
@@ -71,43 +62,32 @@
|
|
|
71
62
|
"style",
|
|
72
63
|
"z-index: 8; position: absolute; top: 0; left: 0; pointer-events: none;"
|
|
73
64
|
);
|
|
74
|
-
img.
|
|
65
|
+
img.after(overlay);
|
|
75
66
|
}
|
|
76
|
-
currentOverlay = overlay;
|
|
77
67
|
overlay.style.display = "block";
|
|
78
68
|
let j = 0;
|
|
79
|
-
const containerHeight = container.offsetHeight;
|
|
69
|
+
const containerHeight = container.offsetHeight + 20;
|
|
70
|
+
const w = img.offsetWidth;
|
|
71
|
+
const h = img.offsetHeight;
|
|
72
|
+
const widthRatio = Math.floor(1000.303 * w / 100);
|
|
73
|
+
const heightRatio = Math.floor(228.6666 * h / 100);
|
|
74
|
+
const verticalOffset = (containerHeight - h) / 2;
|
|
80
75
|
tick.start(() => {
|
|
81
|
-
const w = img.offsetWidth;
|
|
82
|
-
const h = img.offsetHeight;
|
|
83
|
-
const widthRatio = Math.floor(1000.303 * w / 100);
|
|
84
|
-
const heightRatio = Math.floor(228.6666 * h / 100);
|
|
85
|
-
const verticalOffset = (containerHeight - h) / 2;
|
|
86
76
|
Object.assign(overlay.style, {
|
|
87
77
|
width: `${w}px`,
|
|
88
78
|
height: `${containerHeight}px`,
|
|
89
79
|
backgroundImage: `url('${stripSrc}')`,
|
|
90
80
|
backgroundSize: `${widthRatio}px ${heightRatio}px`,
|
|
91
|
-
backgroundPosition: `-${j++ * w % widthRatio}px ${verticalOffset}px
|
|
92
|
-
backgroundRepeat: "no-repeat"
|
|
81
|
+
backgroundPosition: `-${j++ * w % widthRatio}px ${verticalOffset}px`
|
|
93
82
|
});
|
|
94
83
|
});
|
|
95
|
-
|
|
96
|
-
|
|
84
|
+
return () => {
|
|
85
|
+
tick.stop();
|
|
86
|
+
container.classList.toggle("animating");
|
|
87
|
+
overlay.style.display = "none";
|
|
88
|
+
};
|
|
97
89
|
}
|
|
98
|
-
utils.OnHover.create(
|
|
99
|
-
document.body,
|
|
100
|
-
(e) => {
|
|
101
|
-
const container = e.closest(".desktop-thumb.video");
|
|
102
|
-
if (!container) return false;
|
|
103
|
-
const img = container.querySelector("img.static");
|
|
104
|
-
if (!img) return false;
|
|
105
|
-
const stripSrc = img.getAttribute("data-strip-src");
|
|
106
|
-
if (!stripSrc || img.classList.contains("animating")) return false;
|
|
107
|
-
return true;
|
|
108
|
-
},
|
|
109
|
-
onOver
|
|
110
|
-
);
|
|
90
|
+
utils.OnHover.create(document.body, ".thumb-container, .mobile-thumb", onOver);
|
|
111
91
|
}
|
|
112
92
|
function fixURLs() {
|
|
113
93
|
document.querySelectorAll(".gallery-container").forEach((g) => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// ==UserScript==
|
|
2
2
|
// @name NameThatPorn PervertMonkey
|
|
3
3
|
// @namespace pervertmonkey
|
|
4
|
-
// @version 3.0.
|
|
4
|
+
// @version 3.0.3
|
|
5
5
|
// @author violent-orangutan
|
|
6
6
|
// @description Infinite scroll [optional], Filter by Title and Un/Solved
|
|
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.13/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,8 +37,9 @@
|
|
|
37
37
|
}
|
|
38
38
|
},
|
|
39
39
|
thumbImg: {
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
selector: (img) => {
|
|
41
|
+
return img.getAttribute("data-dyn")?.concat(".webp") || img.getAttribute("src");
|
|
42
|
+
}
|
|
42
43
|
},
|
|
43
44
|
paginationStrategyOptions: {
|
|
44
45
|
paginationSelector: "#smi_wrp, #nsw_p"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// ==UserScript==
|
|
2
2
|
// @name NHentai PervertMonkey
|
|
3
3
|
// @namespace pervertmonkey
|
|
4
|
-
// @version 4.0.
|
|
4
|
+
// @version 4.0.3
|
|
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.13/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
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
},
|
|
34
34
|
thumbImg: {
|
|
35
35
|
strategy: "auto",
|
|
36
|
-
|
|
36
|
+
remove: "auto"
|
|
37
37
|
},
|
|
38
38
|
containerSelectorLast: ".index-container, .container",
|
|
39
39
|
customDataSelectorFns: ["filterInclude", "filterExclude"],
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// ==UserScript==
|
|
2
2
|
// @name Obmensvem PervertMonkey
|
|
3
3
|
// @namespace pervertmonkey
|
|
4
|
-
// @version 1.0.
|
|
4
|
+
// @version 1.0.3
|
|
5
5
|
// @author violent-orangutan
|
|
6
6
|
// @description Infinite scroll [optional], Filter by Title and Duration
|
|
7
7
|
// @license MIT
|
|
@@ -12,8 +12,9 @@
|
|
|
12
12
|
// @supportURL https://github.com/smartacephale/sleazy-fork/issues
|
|
13
13
|
// @match https://*.obmenvsem.com/*
|
|
14
14
|
// @match https://*.obmenvsem.*/*
|
|
15
|
-
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.
|
|
15
|
+
// @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.13/dist/core/pervertmonkey.core.umd.js
|
|
16
16
|
// @require data:application/javascript,var core = window.pervertmonkey.core || pervertmonkey.core; var utils = core;
|
|
17
|
+
// @grant GM_addElement
|
|
17
18
|
// @grant GM_addStyle
|
|
18
19
|
// @grant unsafeWindow
|
|
19
20
|
// @run-at document-idle
|
|
@@ -22,9 +23,11 @@
|
|
|
22
23
|
(function (core, utils) {
|
|
23
24
|
'use strict';
|
|
24
25
|
|
|
26
|
+
var _GM_addElement = (() => typeof GM_addElement != "undefined" ? GM_addElement : undefined)();
|
|
25
27
|
var _GM_addStyle = (() => typeof GM_addStyle != "undefined" ? GM_addStyle : undefined)();
|
|
26
28
|
|
|
27
29
|
const IS_USER_FILES = location.pathname.startsWith("/user_files");
|
|
30
|
+
const IS_VIDEO_PAGE = /info.php\?id=\d+$/.test(location.href);
|
|
28
31
|
const SEARCH_PARAM = IS_USER_FILES ? "start" : "page";
|
|
29
32
|
function setup() {
|
|
30
33
|
const container = document.createElement("div");
|
|
@@ -33,7 +36,19 @@
|
|
|
33
36
|
...document.querySelectorAll(".item:has(> a.block[href *= info] > img)")
|
|
34
37
|
);
|
|
35
38
|
document.querySelector(".c2")?.after(container);
|
|
36
|
-
|
|
39
|
+
if (!IS_VIDEO_PAGE) {
|
|
40
|
+
_GM_addStyle("a.block[href *= info] > img:first-child { height: 240px; }");
|
|
41
|
+
}
|
|
42
|
+
if (IS_VIDEO_PAGE) {
|
|
43
|
+
const vidh = document.querySelector("a[href*=mp4]");
|
|
44
|
+
vidh?.after(
|
|
45
|
+
_GM_addElement("video", {
|
|
46
|
+
src: vidh.href,
|
|
47
|
+
controls: true,
|
|
48
|
+
width: vidh.parentElement?.offsetWidth
|
|
49
|
+
})
|
|
50
|
+
);
|
|
51
|
+
}
|
|
37
52
|
}
|
|
38
53
|
setup();
|
|
39
54
|
new core.Rules({
|
|
@@ -54,7 +69,6 @@
|
|
|
54
69
|
thumbs: { selector: ".item:has(> a.block[href *= info] > img)" },
|
|
55
70
|
thumb: { strategy: "auto-text" },
|
|
56
71
|
thumbImg: {
|
|
57
|
-
strategy: "auto",
|
|
58
72
|
selector: (img) => {
|
|
59
73
|
const url = img.closest("a").href;
|
|
60
74
|
utils.fetchHtml(url).then((dom) => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// ==UserScript==
|
|
2
2
|
// @name PornHub PervertMonkey
|
|
3
3
|
// @namespace pervertmonkey
|
|
4
|
-
// @version 4.0.
|
|
4
|
+
// @version 4.0.3
|
|
5
5
|
// @author violent-orangutan
|
|
6
6
|
// @description Infinite scroll [optional]. Filter by Title and Duration
|
|
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.13/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
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
new core.Rules({
|
|
26
26
|
paginationStrategyOptions: {
|
|
27
27
|
paginationSelector: ".paginationGated",
|
|
28
|
-
overwritePaginationLast: (n) => n === 9 ?
|
|
28
|
+
overwritePaginationLast: (n) => n === 9 ? 9999 : n
|
|
29
29
|
},
|
|
30
30
|
containerSelector: () => [...document.querySelectorAll("ul:has(> li[data-video-vkey])")].filter((e) => e.children.length > 0 && e.checkVisibility()).pop(),
|
|
31
31
|
dataHomogenity: { id: true, className: true },
|
|
@@ -38,23 +38,20 @@
|
|
|
38
38
|
}
|
|
39
39
|
},
|
|
40
40
|
thumbImg: {
|
|
41
|
-
|
|
42
|
-
selector: ["data-mediumthumb", "data-image"]
|
|
41
|
+
selector: ["data-mediumthumb", "data-image"]
|
|
43
42
|
},
|
|
44
43
|
gropeStrategy: "all-in-all",
|
|
45
44
|
schemeOptions: ["Text Filter", "Duration Filter", "Badge", "Advanced"]
|
|
46
45
|
});
|
|
47
46
|
function bypassAgeVerification() {
|
|
47
|
+
cookieStore.set({
|
|
48
|
+
name: "accessAgeDisclaimerPH",
|
|
49
|
+
value: "2",
|
|
50
|
+
expires: Date.now() + 90 * 24 * 60 * 60 * 1e3
|
|
51
|
+
});
|
|
48
52
|
document.querySelectorAll('[data-label="over18_enter"]').forEach((b) => {
|
|
49
53
|
b.click();
|
|
50
54
|
});
|
|
51
|
-
setTimeout(() => {
|
|
52
|
-
cookieStore.set({
|
|
53
|
-
name: "accessAgeDisclaimerPH",
|
|
54
|
-
value: "2",
|
|
55
|
-
expires: Date.now() + 90 * 24 * 60 * 60 * 1e3
|
|
56
|
-
});
|
|
57
|
-
}, 1e3);
|
|
58
55
|
}
|
|
59
56
|
bypassAgeVerification();
|
|
60
57
|
|