pervert-monkey 1.0.25 → 1.0.27

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.
Files changed (62) hide show
  1. package/README.md +5 -2
  2. package/dist/core/pervertmonkey.core.es.d.ts +2 -541
  3. package/dist/core/pervertmonkey.core.es.js +8005 -9281
  4. package/dist/core/pervertmonkey.core.es.js.map +1 -1
  5. package/dist/core/pervertmonkey.core.umd.js +8833 -10051
  6. package/dist/core/pervertmonkey.core.umd.js.map +1 -1
  7. package/dist/userscripts/3hentai.user.js +40 -46
  8. package/dist/userscripts/camgirlfinder.user.js +56 -49
  9. package/dist/userscripts/camwhores.user.js +286 -343
  10. package/dist/userscripts/e-hentai.user.js +54 -57
  11. package/dist/userscripts/ebalka.user.js +52 -55
  12. package/dist/userscripts/eporner.user.js +76 -68
  13. package/dist/userscripts/erome.user.js +79 -84
  14. package/dist/userscripts/eroprofile.user.js +28 -29
  15. package/dist/userscripts/javhdporn.user.js +28 -22
  16. package/dist/userscripts/missav.user.js +22 -23
  17. package/dist/userscripts/motherless.user.js +141 -152
  18. package/dist/userscripts/namethatporn.user.js +49 -58
  19. package/dist/userscripts/nhentai.user.js +104 -99
  20. package/dist/userscripts/obmenvsem.user.js +61 -69
  21. package/dist/userscripts/pornhub.user.js +50 -47
  22. package/dist/userscripts/simpcity.user.js +82 -24
  23. package/dist/userscripts/socialmediagirls.user.js +26 -22
  24. package/dist/userscripts/spankbang.user.js +62 -44
  25. package/dist/userscripts/thisvid.user.js +1269 -1366
  26. package/dist/userscripts/xhamster.user.js +119 -132
  27. package/dist/userscripts/xmegadrive.user.js +82 -0
  28. package/dist/userscripts/xvideos.user.js +115 -91
  29. package/package.json +10 -6
  30. package/src/core/data-handler/data-filter.ts +3 -3
  31. package/src/core/data-handler/data-manager.ts +11 -3
  32. package/src/core/parsers/pagination-parser/index.ts +0 -4
  33. package/src/core/parsers/pagination-parser/pagination-strategies/PaginationStrategyPathnameParams.ts +36 -1
  34. package/src/core/rules/index.ts +3 -3
  35. package/src/userscripts/index.ts +1 -1
  36. package/src/userscripts/meta.json +1 -1
  37. package/src/userscripts/scripts/3hentai.ts +1 -1
  38. package/src/userscripts/scripts/camgirlfinder.ts +1 -1
  39. package/src/userscripts/scripts/camwhores.ts +2 -2
  40. package/src/userscripts/scripts/e-hentai.ts +1 -1
  41. package/src/userscripts/scripts/ebalka.ts +2 -2
  42. package/src/userscripts/scripts/eporner.ts +41 -15
  43. package/src/userscripts/scripts/erome.ts +1 -1
  44. package/src/userscripts/scripts/eroprofile.ts +6 -6
  45. package/src/userscripts/scripts/javhdporn.ts +1 -1
  46. package/src/userscripts/scripts/missav.ts +1 -1
  47. package/src/userscripts/scripts/motherless.ts +28 -19
  48. package/src/userscripts/scripts/namethatporn.ts +1 -1
  49. package/src/userscripts/scripts/nhentai.ts +1 -1
  50. package/src/userscripts/scripts/obmenvsem.ts +1 -1
  51. package/src/userscripts/scripts/pornhub.ts +4 -2
  52. package/src/userscripts/scripts/simpcity.ts +72 -5
  53. package/src/userscripts/scripts/{socialmediagirls copy.ts → socialmediagirls.ts} +1 -1
  54. package/src/userscripts/scripts/spankbang.ts +20 -4
  55. package/src/userscripts/scripts/thisvid.ts +8 -21
  56. package/src/userscripts/scripts/xhamster.ts +12 -4
  57. package/src/userscripts/scripts/xmegadrive.ts +78 -0
  58. package/src/userscripts/scripts/xvideos.ts +26 -7
  59. package/src/utils/fetch/index.ts +2 -0
  60. package/src/utils/objects/memoize.ts +1 -9
  61. package/dist/test/test.user.js +0 -10301
  62. package/dist/userscripts/socialmediagirls copy.user.js +0 -41
@@ -1,64 +1,58 @@
1
1
  // ==UserScript==
2
2
  // @name 3Hentai PervertMonkey
3
3
  // @namespace pervertmonkey
4
- // @version 1.0.19
4
+ // @version 1.0.20
5
5
  // @author violent-orangutan
6
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#readme
10
10
  // @homepageURL https://sleazyfork.org/en/users/1253342-smartacephale
11
- // @source https://github.com/smartacephale
11
+ // @source https://github.com/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.25/dist/core/pervertmonkey.core.umd.js
15
- // @require data:application/javascript,var core = window.pervertmonkey.core || pervertmonkey.core; var utils = core;
14
+ // @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.27/dist/core/pervertmonkey.core.umd.js
16
15
  // @grant GM_addStyle
17
16
  // @grant unsafeWindow
18
17
  // @run-at document-idle
19
18
  // ==/UserScript==
20
19
 
21
- (function (core, utils) {
22
- 'use strict';
20
+ var ___core = window.pervertmonkey.core || pervertmonkey.core;
21
+ var ___utils = ___core;
23
22
 
24
- new core.Rules({
25
- containerSelectorLast: ".listing-container",
26
- thumbs: {
27
- selector: ".doujin-col"
28
- },
29
- thumb: {
30
- selectors: {
31
- title: ".title"
32
- }
33
- },
34
- thumbImg: {
35
- strategy: "auto"
36
- },
37
- gropeStrategy: "all-in-all",
38
- schemeOptions: ["Title Filter", "Badge", "Advanced"],
39
- animatePreview
40
- });
41
- function animatePreview() {
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
- }
47
- utils.OnHover.create(document.body, ".doujin-col", (e) => {
48
- const img = e.querySelector("img");
49
- const origin = img.src;
50
- img.src = img.src.replace(/\w+\.\w+$/, "1t.jpg");
51
- img.onerror = (_) => tick.stop();
52
- tick.start(
53
- () => {
54
- img.src = rotate(img.src);
55
- },
56
- () => {
57
- img.src = origin;
58
- }
59
- );
60
- return () => tick.stop();
61
- });
62
- }
63
23
 
64
- })(core, utils);
24
+ (function(___core, ___utils) {
25
+ "use strict";
26
+ new ___core.Rules({
27
+ containerSelectorLast: ".listing-container",
28
+ thumbs: { selector: ".doujin-col" },
29
+ thumb: { selectors: { title: ".title" } },
30
+ thumbImg: { strategy: "auto" },
31
+ gropeStrategy: "all-in-all",
32
+ schemeOptions: [
33
+ "Title Filter",
34
+ "Badge",
35
+ "Advanced"
36
+ ],
37
+ animatePreview
38
+ });
39
+ function animatePreview() {
40
+ const tick = new ___utils.Tick(500, false);
41
+ const end = 9999;
42
+ function rotate(src) {
43
+ return src.replace(/(\d+)(?=t\.jpg$)/, (_, n) => `${(0, ___utils.circularShift)(parseInt(n), end)}`);
44
+ }
45
+ ___utils.OnHover.create(document.body, ".doujin-col", (e) => {
46
+ const img = e.querySelector("img");
47
+ const origin = img.src;
48
+ img.src = img.src.replace(/\w+\.\w+$/, "1t.jpg");
49
+ img.onerror = (_) => tick.stop();
50
+ tick.start(() => {
51
+ img.src = rotate(img.src);
52
+ }, () => {
53
+ img.src = origin;
54
+ });
55
+ return () => tick.stop();
56
+ });
57
+ }
58
+ })(___core, ___utils);
@@ -1,66 +1,73 @@
1
1
  // ==UserScript==
2
2
  // @name CamGirlFinder PervertMonkey
3
3
  // @namespace pervertmonkey
4
- // @version 1.6.18
4
+ // @version 1.6.19
5
5
  // @author violent-orangutan
6
6
  // @description Adds model links for CamWhores, webcamrecordings, recu.me, camvideos, privat-zapisi
7
7
  // @license MIT
8
8
  // @icon https://www.google.com/s2/favicons?sz=64&domain=camgirlfinder.net
9
9
  // @homepage https://github.com/smartacephale/sleazy-fork#readme
10
10
  // @homepageURL https://sleazyfork.org/en/users/1253342-smartacephale
11
- // @source https://github.com/smartacephale
11
+ // @source https://github.com/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.25/dist/core/pervertmonkey.core.umd.js
15
- // @require data:application/javascript,var core = window.pervertmonkey.core || pervertmonkey.core; var utils = core;
14
+ // @require https://cdn.jsdelivr.net/npm/pervert-monkey@1.0.27/dist/core/pervertmonkey.core.umd.js
16
15
  // @grant none
17
16
  // @run-at document-idle
18
17
  // ==/UserScript==
19
18
 
20
- (function () {
21
- 'use strict';
19
+ var ___core = window.pervertmonkey.core || pervertmonkey.core;
20
+ var ___utils = ___core;
22
21
 
23
- const websites = [
24
- { name: "camwhores.tv", url: (u) => `https://camwhores.tv/search/${u}/` },
25
- {
26
- name: "webcamrecordings.com",
27
- url: (u) => `https://www.webcamrecordings.com/modelSearch/${u}/page/1/`
28
- },
29
- { name: "camvideos.me", url: (u) => `https://camvideos.me/search/${u}` },
30
- { name: "recu.me", url: (u) => `https://recu.me/performer/${u}` },
31
- {
32
- name: "privat-zapisi.info",
33
- url: (u) => `https://www.privat-zapisi.info/search/${u}/`
34
- }
35
- ];
36
- function createLinks(name) {
37
- return websites.map(
38
- (w) => `
39
- <a rel="nofollow" href="${w.url(name)}">
40
- <img class="platform-icon" title="${w.name}" src="https://www.google.com/s2/favicons?sz=64&domain=${w.name}"></a>`
41
- ).join(" ");
42
- }
43
- function addRedirectButton() {
44
- if (!document.body.querySelector(".model-name")?.innerText.trim()) return;
45
- document.querySelectorAll(".result:not(.fucked)").forEach((e) => {
46
- const name = e.querySelector(".model-name")?.innerText.trim();
47
- if (name?.length === 0) return;
48
- e.querySelector("p:last-child").innerHTML += createLinks(name);
49
- e.classList.add("fucked");
50
- });
51
- }
52
- let timeout;
53
- const observer = new MutationObserver((mutations) => {
54
- mutations.forEach(() => {
55
- clearTimeout(timeout);
56
- timeout = setTimeout(addRedirectButton, 300);
57
- });
58
- });
59
- observer.observe(document.body, {
60
- attributes: true,
61
- childList: true,
62
- subtree: true
63
- });
64
- addRedirectButton();
65
22
 
66
- })();
23
+ (function() {
24
+ "use strict";
25
+ var websites = [
26
+ {
27
+ name: "camwhores.tv",
28
+ url: (u) => `https://camwhores.tv/search/${u}/`
29
+ },
30
+ {
31
+ name: "webcamrecordings.com",
32
+ url: (u) => `https://www.webcamrecordings.com/modelSearch/${u}/page/1/`
33
+ },
34
+ {
35
+ name: "camvideos.me",
36
+ url: (u) => `https://camvideos.me/search/${u}`
37
+ },
38
+ {
39
+ name: "recu.me",
40
+ url: (u) => `https://recu.me/performer/${u}`
41
+ },
42
+ {
43
+ name: "privat-zapisi.info",
44
+ url: (u) => `https://www.privat-zapisi.info/search/${u}/`
45
+ }
46
+ ];
47
+ function createLinks(name) {
48
+ return websites.map((w) => `
49
+ <a rel="nofollow" href="${w.url(name)}">
50
+ <img class="platform-icon" title="${w.name}" src="https://www.google.com/s2/favicons?sz=64&domain=${w.name}"></a>`).join(" ");
51
+ }
52
+ function addRedirectButton() {
53
+ if (!document.body.querySelector(".model-name")?.innerText.trim()) return;
54
+ document.querySelectorAll(".result:not(.fucked)").forEach((e) => {
55
+ const name = e.querySelector(".model-name")?.innerText.trim();
56
+ if (name?.length === 0) return;
57
+ e.querySelector("p:last-child").innerHTML += createLinks(name);
58
+ e.classList.add("fucked");
59
+ });
60
+ }
61
+ var timeout;
62
+ new MutationObserver((mutations) => {
63
+ mutations.forEach(() => {
64
+ clearTimeout(timeout);
65
+ timeout = setTimeout(addRedirectButton, 300);
66
+ });
67
+ }).observe(document.body, {
68
+ attributes: true,
69
+ childList: true,
70
+ subtree: true
71
+ });
72
+ addRedirectButton();
73
+ })();