Created KissAsianScraper.
This commit is contained in:
		
							
								
								
									
										994
									
								
								package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										994
									
								
								package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,994 @@ | ||||
| { | ||||
|   "name": "kissasian-downloader", | ||||
|   "version": "1.0.0", | ||||
|   "lockfileVersion": 1, | ||||
|   "requires": true, | ||||
|   "dependencies": { | ||||
|     "@cliqz/adblocker": { | ||||
|       "version": "1.22.1", | ||||
|       "resolved": "https://registry.npmjs.org/@cliqz/adblocker/-/adblocker-1.22.1.tgz", | ||||
|       "integrity": "sha512-kir/tVTe0VabtJfcRipDX+/UBnZn0aN0lX4GQT7wZIHMOACpW37eix7wGkzVS+icbwu1bEqZ+O8Q98UlORPm4w==", | ||||
|       "requires": { | ||||
|         "@cliqz/adblocker-content": "^1.22.1", | ||||
|         "@cliqz/adblocker-extended-selectors": "^1.22.1", | ||||
|         "@remusao/guess-url-type": "^1.1.2", | ||||
|         "@remusao/small": "^1.1.2", | ||||
|         "@remusao/smaz": "^1.7.1", | ||||
|         "@types/chrome": "^0.0.144", | ||||
|         "@types/firefox-webext-browser": "^82.0.0", | ||||
|         "tldts-experimental": "^5.6.21" | ||||
|       }, | ||||
|       "dependencies": { | ||||
|         "@types/chrome": { | ||||
|           "version": "0.0.144", | ||||
|           "resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.144.tgz", | ||||
|           "integrity": "sha512-BgoiO7/KP9hRNrCR2Wq+aKWT5Dh9bTofuWaRtcqPcj8YKhZojQgb6sSdIqvds2C+eO63BwaR9KHVMYYgZdGGBg==", | ||||
|           "requires": { | ||||
|             "@types/filesystem": "*", | ||||
|             "@types/har-format": "*" | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "@cliqz/adblocker-content": { | ||||
|       "version": "1.22.1", | ||||
|       "resolved": "https://registry.npmjs.org/@cliqz/adblocker-content/-/adblocker-content-1.22.1.tgz", | ||||
|       "integrity": "sha512-CSOCdK/SJOZVWGVJuurfL0KtPq1AhSp3ng6BAo3SLXAd+WP7obERw2qFWQ0uzrApY/N1a1hvzfw31uonqRakXg==", | ||||
|       "requires": { | ||||
|         "@cliqz/adblocker-extended-selectors": "^1.22.1" | ||||
|       } | ||||
|     }, | ||||
|     "@cliqz/adblocker-extended-selectors": { | ||||
|       "version": "1.22.1", | ||||
|       "resolved": "https://registry.npmjs.org/@cliqz/adblocker-extended-selectors/-/adblocker-extended-selectors-1.22.1.tgz", | ||||
|       "integrity": "sha512-uXB1TybAq6MgqsG09fcY8Qw0P9EOWp4G7KQ4QNXQd4HIP4o3zcJgBd5MKeclJAD/QOyPdhnb+a9JdwVFyqMamQ==" | ||||
|     }, | ||||
|     "@cliqz/adblocker-puppeteer": { | ||||
|       "version": "1.18.7", | ||||
|       "resolved": "https://registry.npmjs.org/@cliqz/adblocker-puppeteer/-/adblocker-puppeteer-1.18.7.tgz", | ||||
|       "integrity": "sha512-uPeoGkheAYVPltq6MRLfR7QA6TfHqyfSWfsnoZhgViIqAP+aJKjAy3sT61j0YdXi0/NZoIMB6l/DMGMuYigvjg==", | ||||
|       "requires": { | ||||
|         "@cliqz/adblocker": "^1.18.7", | ||||
|         "@cliqz/adblocker-content": "^1.18.7", | ||||
|         "tldts-experimental": "^5.6.21" | ||||
|       } | ||||
|     }, | ||||
|     "@remusao/guess-url-type": { | ||||
|       "version": "1.2.1", | ||||
|       "resolved": "https://registry.npmjs.org/@remusao/guess-url-type/-/guess-url-type-1.2.1.tgz", | ||||
|       "integrity": "sha512-rbOqre2jW8STjheOsOaQHLgYBaBZ9Owbdt8NO7WvNZftJlaG3y/K9oOkl8ZUpuFBisIhmBuMEW6c+YrQl5inRA==" | ||||
|     }, | ||||
|     "@remusao/small": { | ||||
|       "version": "1.2.1", | ||||
|       "resolved": "https://registry.npmjs.org/@remusao/small/-/small-1.2.1.tgz", | ||||
|       "integrity": "sha512-7MjoGt0TJMVw1GPKgWq6SJPws1SLsUXQRa43Umht+nkyw2jnpy3WpiLNqGdwo5rHr5Wp9B2W/Pm5RQp656UJdw==" | ||||
|     }, | ||||
|     "@remusao/smaz": { | ||||
|       "version": "1.9.1", | ||||
|       "resolved": "https://registry.npmjs.org/@remusao/smaz/-/smaz-1.9.1.tgz", | ||||
|       "integrity": "sha512-e6BLuP8oaXCZ9+v46Is4ilAZ/Vq6YLgmBP204Ixgk1qTjXmqvFYG7+AS7v9nsZdGOy96r9DWGFbbDVgMxwu1rA==", | ||||
|       "requires": { | ||||
|         "@remusao/smaz-compress": "^1.9.1", | ||||
|         "@remusao/smaz-decompress": "^1.9.1" | ||||
|       } | ||||
|     }, | ||||
|     "@remusao/smaz-compress": { | ||||
|       "version": "1.9.1", | ||||
|       "resolved": "https://registry.npmjs.org/@remusao/smaz-compress/-/smaz-compress-1.9.1.tgz", | ||||
|       "integrity": "sha512-E2f48TwloQu3r6BdLOGF2aczeH7bJ/32oJGqvzT9SKur0cuUnLcZ7ZXP874E2fwmdE+cXzfC7bKzp79cDnmeyw==", | ||||
|       "requires": { | ||||
|         "@remusao/trie": "^1.4.1" | ||||
|       } | ||||
|     }, | ||||
|     "@remusao/smaz-decompress": { | ||||
|       "version": "1.9.1", | ||||
|       "resolved": "https://registry.npmjs.org/@remusao/smaz-decompress/-/smaz-decompress-1.9.1.tgz", | ||||
|       "integrity": "sha512-TfjKKprYe3n47od8auhvJ/Ikj9kQTbDTe71ynKlxslrvvUhlIV3VQSuwYuMWMbdz1fIs0H/fxCN1Z8/H3km6/A==" | ||||
|     }, | ||||
|     "@remusao/trie": { | ||||
|       "version": "1.4.1", | ||||
|       "resolved": "https://registry.npmjs.org/@remusao/trie/-/trie-1.4.1.tgz", | ||||
|       "integrity": "sha512-yvwa+aCyYI/UjeD39BnpMypG8N06l86wIDW1/PAc6ihBRnodIfZDwccxQN3n1t74wduzaz74m4ZMHZnB06567Q==" | ||||
|     }, | ||||
|     "@types/chrome": { | ||||
|       "version": "0.0.91", | ||||
|       "resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.91.tgz", | ||||
|       "integrity": "sha512-vNvo9lJkp1AvViWrUwe1bxhoMwr5dRZWlgr1DTuaNkz97LsG56lDX1sceWeZir2gRACJ5vdHtoRdVAvm8C75Ug==", | ||||
|       "requires": { | ||||
|         "@types/filesystem": "*" | ||||
|       } | ||||
|     }, | ||||
|     "@types/debug": { | ||||
|       "version": "4.1.5", | ||||
|       "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.5.tgz", | ||||
|       "integrity": "sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==" | ||||
|     }, | ||||
|     "@types/filesystem": { | ||||
|       "version": "0.0.30", | ||||
|       "resolved": "https://registry.npmjs.org/@types/filesystem/-/filesystem-0.0.30.tgz", | ||||
|       "integrity": "sha512-NCoRgmGmLpTT9VFL6Bb6z0jQuqI3d0E5FGl7M0JOv/J5RQYo9s5aOItPYnpckx9MbYQk1APLXcF8f20Vqnf2yA==", | ||||
|       "requires": { | ||||
|         "@types/filewriter": "*" | ||||
|       } | ||||
|     }, | ||||
|     "@types/filewriter": { | ||||
|       "version": "0.0.29", | ||||
|       "resolved": "https://registry.npmjs.org/@types/filewriter/-/filewriter-0.0.29.tgz", | ||||
|       "integrity": "sha512-BsPXH/irW0ht0Ji6iw/jJaK8Lj3FJemon2gvEqHKpCdDCeemHa+rI3WBGq5z7cDMZgoLjY40oninGxqk+8NzNQ==" | ||||
|     }, | ||||
|     "@types/firefox-webext-browser": { | ||||
|       "version": "82.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/@types/firefox-webext-browser/-/firefox-webext-browser-82.0.0.tgz", | ||||
|       "integrity": "sha512-zKHePkjMx42KIUUZCPcUiyu1tpfQXH9VR4iDYfns3HvmKVJzt/TAFT+DFVroos8BI9RH78YgF3Hi/wlC6R6cKA==" | ||||
|     }, | ||||
|     "@types/har-format": { | ||||
|       "version": "1.2.6", | ||||
|       "resolved": "https://registry.npmjs.org/@types/har-format/-/har-format-1.2.6.tgz", | ||||
|       "integrity": "sha512-TeZjp4COiAWPOeGx1tuFJETr/SBMx80lxqeqnCC36ZVn463f7ElCdA3X9RzDuo3BHjhN4apw41A5uoIw5FzgWA==" | ||||
|     }, | ||||
|     "@types/node": { | ||||
|       "version": "15.12.2", | ||||
|       "resolved": "https://registry.npmjs.org/@types/node/-/node-15.12.2.tgz", | ||||
|       "integrity": "sha512-zjQ69G564OCIWIOHSXyQEEDpdpGl+G348RAKY0XXy9Z5kU9Vzv1GMNnkar/ZJ8dzXB3COzD9Mo9NtRZ4xfgUww==" | ||||
|     }, | ||||
|     "@types/puppeteer": { | ||||
|       "version": "5.4.3", | ||||
|       "resolved": "https://registry.npmjs.org/@types/puppeteer/-/puppeteer-5.4.3.tgz", | ||||
|       "integrity": "sha512-3nE8YgR9DIsgttLW+eJf6mnXxq8Ge+27m5SU3knWmrlfl6+KOG0Bf9f7Ua7K+C4BnaTMAh3/UpySqdAYvrsvjg==", | ||||
|       "requires": { | ||||
|         "@types/node": "*" | ||||
|       } | ||||
|     }, | ||||
|     "@types/yauzl": { | ||||
|       "version": "2.9.1", | ||||
|       "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.1.tgz", | ||||
|       "integrity": "sha512-A1b8SU4D10uoPjwb0lnHmmu8wZhR9d+9o2PKBQT2jU5YPTKsxac6M2qGAdY7VcL+dHHhARVUDmeg0rOrcd9EjA==", | ||||
|       "optional": true, | ||||
|       "requires": { | ||||
|         "@types/node": "*" | ||||
|       } | ||||
|     }, | ||||
|     "agent-base": { | ||||
|       "version": "6.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", | ||||
|       "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", | ||||
|       "requires": { | ||||
|         "debug": "4" | ||||
|       }, | ||||
|       "dependencies": { | ||||
|         "debug": { | ||||
|           "version": "4.3.1", | ||||
|           "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", | ||||
|           "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", | ||||
|           "requires": { | ||||
|             "ms": "2.1.2" | ||||
|           } | ||||
|         }, | ||||
|         "ms": { | ||||
|           "version": "2.1.2", | ||||
|           "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", | ||||
|           "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "ansi-styles": { | ||||
|       "version": "4.3.0", | ||||
|       "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", | ||||
|       "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", | ||||
|       "requires": { | ||||
|         "color-convert": "^2.0.1" | ||||
|       } | ||||
|     }, | ||||
|     "arr-union": { | ||||
|       "version": "3.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", | ||||
|       "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" | ||||
|     }, | ||||
|     "at-least-node": { | ||||
|       "version": "1.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", | ||||
|       "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" | ||||
|     }, | ||||
|     "axios": { | ||||
|       "version": "0.19.2", | ||||
|       "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz", | ||||
|       "integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==", | ||||
|       "requires": { | ||||
|         "follow-redirects": "1.5.10" | ||||
|       } | ||||
|     }, | ||||
|     "balanced-match": { | ||||
|       "version": "1.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", | ||||
|       "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" | ||||
|     }, | ||||
|     "base64-js": { | ||||
|       "version": "1.5.1", | ||||
|       "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", | ||||
|       "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" | ||||
|     }, | ||||
|     "bl": { | ||||
|       "version": "4.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", | ||||
|       "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", | ||||
|       "requires": { | ||||
|         "buffer": "^5.5.0", | ||||
|         "inherits": "^2.0.4", | ||||
|         "readable-stream": "^3.4.0" | ||||
|       } | ||||
|     }, | ||||
|     "brace-expansion": { | ||||
|       "version": "1.1.11", | ||||
|       "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", | ||||
|       "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", | ||||
|       "requires": { | ||||
|         "balanced-match": "^1.0.0", | ||||
|         "concat-map": "0.0.1" | ||||
|       } | ||||
|     }, | ||||
|     "buffer": { | ||||
|       "version": "5.7.1", | ||||
|       "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", | ||||
|       "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", | ||||
|       "requires": { | ||||
|         "base64-js": "^1.3.1", | ||||
|         "ieee754": "^1.1.13" | ||||
|       } | ||||
|     }, | ||||
|     "buffer-crc32": { | ||||
|       "version": "0.2.13", | ||||
|       "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", | ||||
|       "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" | ||||
|     }, | ||||
|     "chalk": { | ||||
|       "version": "4.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", | ||||
|       "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", | ||||
|       "requires": { | ||||
|         "ansi-styles": "^4.1.0", | ||||
|         "supports-color": "^7.1.0" | ||||
|       } | ||||
|     }, | ||||
|     "chownr": { | ||||
|       "version": "1.1.4", | ||||
|       "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", | ||||
|       "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" | ||||
|     }, | ||||
|     "clone-deep": { | ||||
|       "version": "0.2.4", | ||||
|       "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-0.2.4.tgz", | ||||
|       "integrity": "sha1-TnPdCen7lxzDhnDF3O2cGJZIHMY=", | ||||
|       "requires": { | ||||
|         "for-own": "^0.1.3", | ||||
|         "is-plain-object": "^2.0.1", | ||||
|         "kind-of": "^3.0.2", | ||||
|         "lazy-cache": "^1.0.3", | ||||
|         "shallow-clone": "^0.1.2" | ||||
|       } | ||||
|     }, | ||||
|     "color-convert": { | ||||
|       "version": "2.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", | ||||
|       "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", | ||||
|       "requires": { | ||||
|         "color-name": "~1.1.4" | ||||
|       } | ||||
|     }, | ||||
|     "color-name": { | ||||
|       "version": "1.1.4", | ||||
|       "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", | ||||
|       "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" | ||||
|     }, | ||||
|     "concat-map": { | ||||
|       "version": "0.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", | ||||
|       "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" | ||||
|     }, | ||||
|     "debug": { | ||||
|       "version": "3.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", | ||||
|       "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", | ||||
|       "requires": { | ||||
|         "ms": "2.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "deepmerge": { | ||||
|       "version": "4.2.2", | ||||
|       "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", | ||||
|       "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" | ||||
|     }, | ||||
|     "devtools-protocol": { | ||||
|       "version": "0.0.883894", | ||||
|       "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.883894.tgz", | ||||
|       "integrity": "sha512-33idhm54QJzf3Q7QofMgCvIVSd2o9H3kQPWaKT/fhoZh+digc+WSiMhbkeG3iN79WY4Hwr9G05NpbhEVrsOYAg==" | ||||
|     }, | ||||
|     "end-of-stream": { | ||||
|       "version": "1.4.4", | ||||
|       "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", | ||||
|       "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", | ||||
|       "requires": { | ||||
|         "once": "^1.4.0" | ||||
|       } | ||||
|     }, | ||||
|     "extract-zip": { | ||||
|       "version": "2.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", | ||||
|       "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", | ||||
|       "requires": { | ||||
|         "@types/yauzl": "^2.9.1", | ||||
|         "debug": "^4.1.1", | ||||
|         "get-stream": "^5.1.0", | ||||
|         "yauzl": "^2.10.0" | ||||
|       }, | ||||
|       "dependencies": { | ||||
|         "debug": { | ||||
|           "version": "4.3.1", | ||||
|           "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", | ||||
|           "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", | ||||
|           "requires": { | ||||
|             "ms": "2.1.2" | ||||
|           } | ||||
|         }, | ||||
|         "ms": { | ||||
|           "version": "2.1.2", | ||||
|           "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", | ||||
|           "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "fd-slicer": { | ||||
|       "version": "1.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", | ||||
|       "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", | ||||
|       "requires": { | ||||
|         "pend": "~1.2.0" | ||||
|       } | ||||
|     }, | ||||
|     "find-up": { | ||||
|       "version": "4.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", | ||||
|       "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", | ||||
|       "requires": { | ||||
|         "locate-path": "^5.0.0", | ||||
|         "path-exists": "^4.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "follow-redirects": { | ||||
|       "version": "1.5.10", | ||||
|       "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", | ||||
|       "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", | ||||
|       "requires": { | ||||
|         "debug": "=3.1.0" | ||||
|       } | ||||
|     }, | ||||
|     "for-in": { | ||||
|       "version": "1.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", | ||||
|       "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" | ||||
|     }, | ||||
|     "for-own": { | ||||
|       "version": "0.1.5", | ||||
|       "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", | ||||
|       "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", | ||||
|       "requires": { | ||||
|         "for-in": "^1.0.1" | ||||
|       } | ||||
|     }, | ||||
|     "fs-constants": { | ||||
|       "version": "1.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", | ||||
|       "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" | ||||
|     }, | ||||
|     "fs-extra": { | ||||
|       "version": "9.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", | ||||
|       "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", | ||||
|       "requires": { | ||||
|         "at-least-node": "^1.0.0", | ||||
|         "graceful-fs": "^4.2.0", | ||||
|         "jsonfile": "^6.0.1", | ||||
|         "universalify": "^2.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "fs.realpath": { | ||||
|       "version": "1.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", | ||||
|       "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" | ||||
|     }, | ||||
|     "get-stream": { | ||||
|       "version": "5.2.0", | ||||
|       "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", | ||||
|       "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", | ||||
|       "requires": { | ||||
|         "pump": "^3.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "glob": { | ||||
|       "version": "7.1.7", | ||||
|       "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", | ||||
|       "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", | ||||
|       "requires": { | ||||
|         "fs.realpath": "^1.0.0", | ||||
|         "inflight": "^1.0.4", | ||||
|         "inherits": "2", | ||||
|         "minimatch": "^3.0.4", | ||||
|         "once": "^1.3.0", | ||||
|         "path-is-absolute": "^1.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "graceful-fs": { | ||||
|       "version": "4.2.6", | ||||
|       "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", | ||||
|       "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" | ||||
|     }, | ||||
|     "has-flag": { | ||||
|       "version": "4.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", | ||||
|       "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" | ||||
|     }, | ||||
|     "https-proxy-agent": { | ||||
|       "version": "5.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", | ||||
|       "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", | ||||
|       "requires": { | ||||
|         "agent-base": "6", | ||||
|         "debug": "4" | ||||
|       }, | ||||
|       "dependencies": { | ||||
|         "debug": { | ||||
|           "version": "4.3.1", | ||||
|           "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", | ||||
|           "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", | ||||
|           "requires": { | ||||
|             "ms": "2.1.2" | ||||
|           } | ||||
|         }, | ||||
|         "ms": { | ||||
|           "version": "2.1.2", | ||||
|           "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", | ||||
|           "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "ieee754": { | ||||
|       "version": "1.2.1", | ||||
|       "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", | ||||
|       "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" | ||||
|     }, | ||||
|     "inflight": { | ||||
|       "version": "1.0.6", | ||||
|       "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", | ||||
|       "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", | ||||
|       "requires": { | ||||
|         "once": "^1.3.0", | ||||
|         "wrappy": "1" | ||||
|       } | ||||
|     }, | ||||
|     "inherits": { | ||||
|       "version": "2.0.4", | ||||
|       "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", | ||||
|       "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" | ||||
|     }, | ||||
|     "is-buffer": { | ||||
|       "version": "1.1.6", | ||||
|       "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", | ||||
|       "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" | ||||
|     }, | ||||
|     "is-extendable": { | ||||
|       "version": "0.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", | ||||
|       "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" | ||||
|     }, | ||||
|     "is-plain-object": { | ||||
|       "version": "2.0.4", | ||||
|       "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", | ||||
|       "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", | ||||
|       "requires": { | ||||
|         "isobject": "^3.0.1" | ||||
|       } | ||||
|     }, | ||||
|     "isobject": { | ||||
|       "version": "3.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", | ||||
|       "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" | ||||
|     }, | ||||
|     "jdownloader-client-yaac": { | ||||
|       "version": "1.0.4", | ||||
|       "resolved": "https://registry.npmjs.org/jdownloader-client-yaac/-/jdownloader-client-yaac-1.0.4.tgz", | ||||
|       "integrity": "sha512-hC+sSw8EvVPGwIQrToegalDxEs2piitYdqgrdH7d3iyo9Ze3/n4Sgt66GgCNOGEnSn2fAzFILbKe9d49hnh6DA==", | ||||
|       "requires": { | ||||
|         "axios": "^0.19.0" | ||||
|       } | ||||
|     }, | ||||
|     "jsonfile": { | ||||
|       "version": "6.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", | ||||
|       "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", | ||||
|       "requires": { | ||||
|         "graceful-fs": "^4.1.6", | ||||
|         "universalify": "^2.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "kind-of": { | ||||
|       "version": "3.2.2", | ||||
|       "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", | ||||
|       "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", | ||||
|       "requires": { | ||||
|         "is-buffer": "^1.1.5" | ||||
|       } | ||||
|     }, | ||||
|     "lazy-cache": { | ||||
|       "version": "1.0.4", | ||||
|       "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", | ||||
|       "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" | ||||
|     }, | ||||
|     "locate-path": { | ||||
|       "version": "5.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", | ||||
|       "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", | ||||
|       "requires": { | ||||
|         "p-locate": "^4.1.0" | ||||
|       } | ||||
|     }, | ||||
|     "merge-deep": { | ||||
|       "version": "3.0.3", | ||||
|       "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.3.tgz", | ||||
|       "integrity": "sha512-qtmzAS6t6grwEkNrunqTBdn0qKwFgNWvlxUbAV8es9M7Ot1EbyApytCnvE0jALPa46ZpKDUo527kKiaWplmlFA==", | ||||
|       "requires": { | ||||
|         "arr-union": "^3.1.0", | ||||
|         "clone-deep": "^0.2.4", | ||||
|         "kind-of": "^3.0.2" | ||||
|       } | ||||
|     }, | ||||
|     "minimatch": { | ||||
|       "version": "3.0.4", | ||||
|       "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", | ||||
|       "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", | ||||
|       "requires": { | ||||
|         "brace-expansion": "^1.1.7" | ||||
|       } | ||||
|     }, | ||||
|     "minimist": { | ||||
|       "version": "1.2.5", | ||||
|       "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", | ||||
|       "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" | ||||
|     }, | ||||
|     "mixin-object": { | ||||
|       "version": "2.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", | ||||
|       "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", | ||||
|       "requires": { | ||||
|         "for-in": "^0.1.3", | ||||
|         "is-extendable": "^0.1.1" | ||||
|       }, | ||||
|       "dependencies": { | ||||
|         "for-in": { | ||||
|           "version": "0.1.8", | ||||
|           "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", | ||||
|           "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=" | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "mkdirp": { | ||||
|       "version": "0.5.5", | ||||
|       "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", | ||||
|       "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", | ||||
|       "requires": { | ||||
|         "minimist": "^1.2.5" | ||||
|       } | ||||
|     }, | ||||
|     "ms": { | ||||
|       "version": "2.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", | ||||
|       "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" | ||||
|     }, | ||||
|     "node-fetch": { | ||||
|       "version": "2.6.1", | ||||
|       "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", | ||||
|       "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" | ||||
|     }, | ||||
|     "once": { | ||||
|       "version": "1.4.0", | ||||
|       "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", | ||||
|       "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", | ||||
|       "requires": { | ||||
|         "wrappy": "1" | ||||
|       } | ||||
|     }, | ||||
|     "p-limit": { | ||||
|       "version": "2.3.0", | ||||
|       "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", | ||||
|       "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", | ||||
|       "requires": { | ||||
|         "p-try": "^2.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "p-locate": { | ||||
|       "version": "4.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", | ||||
|       "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", | ||||
|       "requires": { | ||||
|         "p-limit": "^2.2.0" | ||||
|       } | ||||
|     }, | ||||
|     "p-try": { | ||||
|       "version": "2.2.0", | ||||
|       "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", | ||||
|       "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" | ||||
|     }, | ||||
|     "path-exists": { | ||||
|       "version": "4.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", | ||||
|       "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" | ||||
|     }, | ||||
|     "path-is-absolute": { | ||||
|       "version": "1.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", | ||||
|       "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" | ||||
|     }, | ||||
|     "pend": { | ||||
|       "version": "1.2.0", | ||||
|       "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", | ||||
|       "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" | ||||
|     }, | ||||
|     "pkg-dir": { | ||||
|       "version": "4.2.0", | ||||
|       "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", | ||||
|       "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", | ||||
|       "requires": { | ||||
|         "find-up": "^4.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "progress": { | ||||
|       "version": "2.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.1.tgz", | ||||
|       "integrity": "sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==" | ||||
|     }, | ||||
|     "proxy-from-env": { | ||||
|       "version": "1.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", | ||||
|       "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" | ||||
|     }, | ||||
|     "pump": { | ||||
|       "version": "3.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", | ||||
|       "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", | ||||
|       "requires": { | ||||
|         "end-of-stream": "^1.1.0", | ||||
|         "once": "^1.3.1" | ||||
|       } | ||||
|     }, | ||||
|     "puppeteer": { | ||||
|       "version": "10.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-10.0.0.tgz", | ||||
|       "integrity": "sha512-AxHvCb9IWmmP3gMW+epxdj92Gglii+6Z4sb+W+zc2hTTu10HF0yg6hGXot5O74uYkVqG3lfDRLfnRpi6WOwi5A==", | ||||
|       "requires": { | ||||
|         "debug": "4.3.1", | ||||
|         "devtools-protocol": "0.0.883894", | ||||
|         "extract-zip": "2.0.1", | ||||
|         "https-proxy-agent": "5.0.0", | ||||
|         "node-fetch": "2.6.1", | ||||
|         "pkg-dir": "4.2.0", | ||||
|         "progress": "2.0.1", | ||||
|         "proxy-from-env": "1.1.0", | ||||
|         "rimraf": "3.0.2", | ||||
|         "tar-fs": "2.0.0", | ||||
|         "unbzip2-stream": "1.3.3", | ||||
|         "ws": "7.4.6" | ||||
|       }, | ||||
|       "dependencies": { | ||||
|         "debug": { | ||||
|           "version": "4.3.1", | ||||
|           "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", | ||||
|           "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", | ||||
|           "requires": { | ||||
|             "ms": "2.1.2" | ||||
|           } | ||||
|         }, | ||||
|         "ms": { | ||||
|           "version": "2.1.2", | ||||
|           "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", | ||||
|           "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "puppeteer-extra": { | ||||
|       "version": "3.1.18", | ||||
|       "resolved": "https://registry.npmjs.org/puppeteer-extra/-/puppeteer-extra-3.1.18.tgz", | ||||
|       "integrity": "sha512-mGQyAnxaGcZomx7NVC4wgAkZl0MLTdE/GIfwRSbLJ9L4yIxPg9uEA3yiLBe+x09tjhTGEtv8KDef8Bl53RXgiA==", | ||||
|       "requires": { | ||||
|         "@types/debug": "^4.1.0", | ||||
|         "@types/puppeteer": "5.4.3", | ||||
|         "debug": "^4.1.1", | ||||
|         "deepmerge": "^4.2.2" | ||||
|       }, | ||||
|       "dependencies": { | ||||
|         "debug": { | ||||
|           "version": "4.3.1", | ||||
|           "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", | ||||
|           "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", | ||||
|           "requires": { | ||||
|             "ms": "2.1.2" | ||||
|           } | ||||
|         }, | ||||
|         "ms": { | ||||
|           "version": "2.1.2", | ||||
|           "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", | ||||
|           "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "puppeteer-extra-plugin": { | ||||
|       "version": "3.1.9", | ||||
|       "resolved": "https://registry.npmjs.org/puppeteer-extra-plugin/-/puppeteer-extra-plugin-3.1.9.tgz", | ||||
|       "integrity": "sha512-LYKj+3wGsnBzwEIpTertyOkzjcTHJn96FDSFXQ4Oo38CFFRw1qRBAJPPtAaMVjuVDqATeNd/RpP4n5jbxeX90g==", | ||||
|       "requires": { | ||||
|         "@types/debug": "^4.1.0", | ||||
|         "debug": "^4.1.1", | ||||
|         "merge-deep": "^3.0.1" | ||||
|       }, | ||||
|       "dependencies": { | ||||
|         "debug": { | ||||
|           "version": "4.3.1", | ||||
|           "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", | ||||
|           "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", | ||||
|           "requires": { | ||||
|             "ms": "2.1.2" | ||||
|           } | ||||
|         }, | ||||
|         "ms": { | ||||
|           "version": "2.1.2", | ||||
|           "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", | ||||
|           "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "puppeteer-extra-plugin-adblocker": { | ||||
|       "version": "2.11.11", | ||||
|       "resolved": "https://registry.npmjs.org/puppeteer-extra-plugin-adblocker/-/puppeteer-extra-plugin-adblocker-2.11.11.tgz", | ||||
|       "integrity": "sha512-T1lfc/PUw7Ltz1YOlWyuodXlFOa+JLmKozPGD8Ka5fqvJDSGpV7AvVhJPYNdHDXAmqFiHn1VuS2IUkGZMxpjVw==", | ||||
|       "requires": { | ||||
|         "@cliqz/adblocker-puppeteer": "1.18.7", | ||||
|         "@types/chrome": "0.0.91", | ||||
|         "debug": "^4.1.1", | ||||
|         "node-fetch": "^2.6.0", | ||||
|         "puppeteer-extra-plugin": "^3.1.9" | ||||
|       }, | ||||
|       "dependencies": { | ||||
|         "debug": { | ||||
|           "version": "4.3.1", | ||||
|           "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", | ||||
|           "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", | ||||
|           "requires": { | ||||
|             "ms": "2.1.2" | ||||
|           } | ||||
|         }, | ||||
|         "ms": { | ||||
|           "version": "2.1.2", | ||||
|           "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", | ||||
|           "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "puppeteer-extra-plugin-stealth": { | ||||
|       "version": "2.7.8", | ||||
|       "resolved": "https://registry.npmjs.org/puppeteer-extra-plugin-stealth/-/puppeteer-extra-plugin-stealth-2.7.8.tgz", | ||||
|       "integrity": "sha512-Zhm/WY/BAk9VGdZR5OVpiwfGn2NoAzEb0hdu3/PGRryfenn8Dtoai8aUa8GzFPExWL+yGPsztswupH+3TV3M2A==", | ||||
|       "requires": { | ||||
|         "debug": "^4.1.1", | ||||
|         "puppeteer-extra-plugin": "^3.1.9", | ||||
|         "puppeteer-extra-plugin-user-preferences": "^2.2.12" | ||||
|       }, | ||||
|       "dependencies": { | ||||
|         "debug": { | ||||
|           "version": "4.3.1", | ||||
|           "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", | ||||
|           "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", | ||||
|           "requires": { | ||||
|             "ms": "2.1.2" | ||||
|           } | ||||
|         }, | ||||
|         "ms": { | ||||
|           "version": "2.1.2", | ||||
|           "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", | ||||
|           "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "puppeteer-extra-plugin-user-data-dir": { | ||||
|       "version": "2.2.12", | ||||
|       "resolved": "https://registry.npmjs.org/puppeteer-extra-plugin-user-data-dir/-/puppeteer-extra-plugin-user-data-dir-2.2.12.tgz", | ||||
|       "integrity": "sha512-+RTNevJLswyh/RfQ+c46otTtE9eABKv8KkLGHcz1jpnVH/iX2wHu7VkXA5Y9pKBaLYDt83BON8wCowy5Eh/KWA==", | ||||
|       "requires": { | ||||
|         "debug": "^4.1.1", | ||||
|         "fs-extra": "^9.1.0", | ||||
|         "puppeteer-extra-plugin": "^3.1.9" | ||||
|       }, | ||||
|       "dependencies": { | ||||
|         "debug": { | ||||
|           "version": "4.3.1", | ||||
|           "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", | ||||
|           "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", | ||||
|           "requires": { | ||||
|             "ms": "2.1.2" | ||||
|           } | ||||
|         }, | ||||
|         "ms": { | ||||
|           "version": "2.1.2", | ||||
|           "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", | ||||
|           "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "puppeteer-extra-plugin-user-preferences": { | ||||
|       "version": "2.2.12", | ||||
|       "resolved": "https://registry.npmjs.org/puppeteer-extra-plugin-user-preferences/-/puppeteer-extra-plugin-user-preferences-2.2.12.tgz", | ||||
|       "integrity": "sha512-y4YOykpYHq0t8qnRyuSL6sIDIRKgdlKkIIFdRbfZx3cg7nxeVLkHgEz3v/Ob0U/lvzlSrr4xvHhG+KcVWH7BXA==", | ||||
|       "requires": { | ||||
|         "debug": "^4.1.1", | ||||
|         "deepmerge": "^4.2.2", | ||||
|         "puppeteer-extra-plugin": "^3.1.9", | ||||
|         "puppeteer-extra-plugin-user-data-dir": "^2.2.12" | ||||
|       }, | ||||
|       "dependencies": { | ||||
|         "debug": { | ||||
|           "version": "4.3.1", | ||||
|           "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", | ||||
|           "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", | ||||
|           "requires": { | ||||
|             "ms": "2.1.2" | ||||
|           } | ||||
|         }, | ||||
|         "ms": { | ||||
|           "version": "2.1.2", | ||||
|           "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", | ||||
|           "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "readable-stream": { | ||||
|       "version": "3.6.0", | ||||
|       "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", | ||||
|       "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", | ||||
|       "requires": { | ||||
|         "inherits": "^2.0.3", | ||||
|         "string_decoder": "^1.1.1", | ||||
|         "util-deprecate": "^1.0.1" | ||||
|       } | ||||
|     }, | ||||
|     "rimraf": { | ||||
|       "version": "3.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", | ||||
|       "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", | ||||
|       "requires": { | ||||
|         "glob": "^7.1.3" | ||||
|       } | ||||
|     }, | ||||
|     "safe-buffer": { | ||||
|       "version": "5.2.1", | ||||
|       "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", | ||||
|       "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" | ||||
|     }, | ||||
|     "shallow-clone": { | ||||
|       "version": "0.1.2", | ||||
|       "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-0.1.2.tgz", | ||||
|       "integrity": "sha1-WQnodLp3EG1zrEFM/sH/yofZcGA=", | ||||
|       "requires": { | ||||
|         "is-extendable": "^0.1.1", | ||||
|         "kind-of": "^2.0.1", | ||||
|         "lazy-cache": "^0.2.3", | ||||
|         "mixin-object": "^2.0.1" | ||||
|       }, | ||||
|       "dependencies": { | ||||
|         "kind-of": { | ||||
|           "version": "2.0.1", | ||||
|           "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz", | ||||
|           "integrity": "sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU=", | ||||
|           "requires": { | ||||
|             "is-buffer": "^1.0.2" | ||||
|           } | ||||
|         }, | ||||
|         "lazy-cache": { | ||||
|           "version": "0.2.7", | ||||
|           "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz", | ||||
|           "integrity": "sha1-f+3fLctu23fRHvHRF6tf/fCrG2U=" | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "string_decoder": { | ||||
|       "version": "1.3.0", | ||||
|       "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", | ||||
|       "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", | ||||
|       "requires": { | ||||
|         "safe-buffer": "~5.2.0" | ||||
|       } | ||||
|     }, | ||||
|     "supports-color": { | ||||
|       "version": "7.2.0", | ||||
|       "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", | ||||
|       "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", | ||||
|       "requires": { | ||||
|         "has-flag": "^4.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "tar-fs": { | ||||
|       "version": "2.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.0.tgz", | ||||
|       "integrity": "sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA==", | ||||
|       "requires": { | ||||
|         "chownr": "^1.1.1", | ||||
|         "mkdirp": "^0.5.1", | ||||
|         "pump": "^3.0.0", | ||||
|         "tar-stream": "^2.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "tar-stream": { | ||||
|       "version": "2.2.0", | ||||
|       "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", | ||||
|       "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", | ||||
|       "requires": { | ||||
|         "bl": "^4.0.3", | ||||
|         "end-of-stream": "^1.4.1", | ||||
|         "fs-constants": "^1.0.0", | ||||
|         "inherits": "^2.0.3", | ||||
|         "readable-stream": "^3.1.1" | ||||
|       } | ||||
|     }, | ||||
|     "through": { | ||||
|       "version": "2.3.8", | ||||
|       "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", | ||||
|       "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" | ||||
|     }, | ||||
|     "tldts-core": { | ||||
|       "version": "5.7.38", | ||||
|       "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-5.7.38.tgz", | ||||
|       "integrity": "sha512-mcL16YTXjpVJ+ekoKC/ddvdjGNMg8HkdWQNp3WNz26WJMV7Z2Hjr1IPwYYr9W3LxGdXV7mmg21Zk2vSstiSsFg==" | ||||
|     }, | ||||
|     "tldts-experimental": { | ||||
|       "version": "5.7.38", | ||||
|       "resolved": "https://registry.npmjs.org/tldts-experimental/-/tldts-experimental-5.7.38.tgz", | ||||
|       "integrity": "sha512-3L0yML53LSw3tlRPwHcGOf35l3dhZx/3DgPGWL3ILATnuu76OiAOvJ4Xw1Znl6sIxVKJ4B4BE0zroZMMzsHg/A==", | ||||
|       "requires": { | ||||
|         "tldts-core": "^5.7.38" | ||||
|       } | ||||
|     }, | ||||
|     "unbzip2-stream": { | ||||
|       "version": "1.3.3", | ||||
|       "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz", | ||||
|       "integrity": "sha512-fUlAF7U9Ah1Q6EieQ4x4zLNejrRvDWUYmxXUpN3uziFYCHapjWFaCAnreY9bGgxzaMCFAPPpYNng57CypwJVhg==", | ||||
|       "requires": { | ||||
|         "buffer": "^5.2.1", | ||||
|         "through": "^2.3.8" | ||||
|       } | ||||
|     }, | ||||
|     "universalify": { | ||||
|       "version": "2.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", | ||||
|       "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" | ||||
|     }, | ||||
|     "util-deprecate": { | ||||
|       "version": "1.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", | ||||
|       "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" | ||||
|     }, | ||||
|     "wrappy": { | ||||
|       "version": "1.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", | ||||
|       "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" | ||||
|     }, | ||||
|     "ws": { | ||||
|       "version": "7.4.6", | ||||
|       "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", | ||||
|       "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==" | ||||
|     }, | ||||
|     "yauzl": { | ||||
|       "version": "2.10.0", | ||||
|       "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", | ||||
|       "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", | ||||
|       "requires": { | ||||
|         "buffer-crc32": "~0.2.3", | ||||
|         "fd-slicer": "~1.1.0" | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| } | ||||
							
								
								
									
										11
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								package.json
									
									
									
									
									
								
							| @@ -12,5 +12,14 @@ | ||||
|   }, | ||||
|   "keywords": [], | ||||
|   "author": "moonstar-x", | ||||
|   "license": "ISC" | ||||
|   "license": "ISC", | ||||
|   "dependencies": { | ||||
|     "chalk": "^4.1.1", | ||||
|     "jdownloader-client-yaac": "^1.0.4", | ||||
|     "minimist": "^1.2.5", | ||||
|     "puppeteer": "^10.0.0", | ||||
|     "puppeteer-extra": "^3.1.18", | ||||
|     "puppeteer-extra-plugin-adblocker": "^2.11.11", | ||||
|     "puppeteer-extra-plugin-stealth": "^2.7.8" | ||||
|   } | ||||
| } | ||||
|   | ||||
							
								
								
									
										115
									
								
								src/classes/scraping/KissAsianScraper.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										115
									
								
								src/classes/scraping/KissAsianScraper.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,115 @@ | ||||
| const Logger = require('../utils/Logger'); | ||||
| const { ScraperError } = require('../../errors'); | ||||
|  | ||||
| class KissAsianScraper { | ||||
|   constructor(page) { | ||||
|     this.page = page; | ||||
|   } | ||||
|  | ||||
|   async load() { | ||||
|     await this.page.goto(KissAsianScraper.BASE_URL); | ||||
|     await this.page.waitForSelector(KissAsianScraper.DEFAULTS.SITE_SELECTOR); | ||||
|  | ||||
|     Logger.info('Cloudflare DDOS Protection bypassed, redirected to main site.'); | ||||
|   } | ||||
|  | ||||
|   async authenticate(credentials) { | ||||
|     await this.page.click('#topHolderBox a[href="/Login"]'); | ||||
|     await this.page.waitForSelector('#btnSubmit'); | ||||
|  | ||||
|     Logger.info('Authenticating...'); | ||||
|  | ||||
|     await this.page.$eval('#username', (el, credentials) => el.value = credentials.username, credentials); | ||||
|     await this.page.$eval('#password', (el, credentials) => el.value = credentials.password, credentials); | ||||
|  | ||||
|     await this.page.click('#btnSubmit'); | ||||
|     await this.page.waitForSelector('#head a.logo'); | ||||
|  | ||||
|     Logger.success(`Successfully logged in as ${credentials.username}.`); | ||||
|   } | ||||
|  | ||||
|   async getMediaLinks(mediaURL) { | ||||
|     await this.page.goto(mediaURL); | ||||
|     await this.page.waitForSelector(KissAsianScraper.DEFAULTS.SITE_SELECTOR); | ||||
|  | ||||
|     Logger.info(`Visited ${mediaURL}`); | ||||
|     Logger.info('Getting media links...'); | ||||
|  | ||||
|     const links = await this.page.evaluate(() => { | ||||
|       const table = document.querySelector('.episodeList table.listing'); | ||||
|       const tableBody = table.firstElementChild; | ||||
|    | ||||
|       const links = []; | ||||
|       for (let i = tableBody.children.length - 1; i > 1; i--) { | ||||
|         const node = tableBody.children.item(i); | ||||
|         const aElement = node.firstElementChild.firstElementChild; | ||||
|         links.push(aElement.href); | ||||
|       } | ||||
|    | ||||
|       return links; | ||||
|     }); | ||||
|  | ||||
|     Logger.success(`Scraped ${links.length} media links.`); | ||||
|  | ||||
|     return links; | ||||
|   } | ||||
|  | ||||
|   async directlyVisitPlayerURL(playerURL) { | ||||
|     await this.page.goto(`${playerURL}&s=mp`); | ||||
|     await this.page.waitForSelector(KissAsianScraper.DEFAULTS.SITE_SELECTOR); | ||||
|  | ||||
|     const isCaptchaEnabled = await this.page.evaluate(() => { | ||||
|       const form = document.getElementById('formVerify'); | ||||
|  | ||||
|       return !!form; | ||||
|     }); | ||||
|  | ||||
|     if (isCaptchaEnabled) { | ||||
|       throw new ScraperError(`MP server not available for ${playerURL}`); | ||||
|     } | ||||
|  | ||||
|     Logger.info(`Directly visited ${playerURL}`); | ||||
|   } | ||||
|  | ||||
|   async getDownloadLinkForCurrentPlayer() { | ||||
|     return await this.page.evaluate(() => { | ||||
|       const divDownload = document.getElementById('divDownload'); | ||||
|       const aElement = divDownload.lastElementChild; | ||||
|       return aElement.href; | ||||
|     }); | ||||
|   } | ||||
|  | ||||
|   async skipCaptcha(playerURL) { | ||||
|     Logger.warn('Skipping captcha...'); | ||||
|  | ||||
|     const [skipCaptchaButton] = await this.page.$x('//a[contains(., "FE server")]'); | ||||
|  | ||||
|     if (!skipCaptchaButton) { | ||||
|       throw new ScraperError(`Skip captcha button not found for ${playerURL}`); | ||||
|     } | ||||
|  | ||||
|     await skipCaptchaButton.click(); | ||||
|     await this.page.waitForSelector(KissAsianScraper.DEFAULTS.SITE_SELECTOR); | ||||
|  | ||||
|     Logger.success('Successfully skipped captcha.'); | ||||
|   } | ||||
|  | ||||
|   async selectEpisodeServerForCurrentPlayer(server) { | ||||
|     try { | ||||
|       await this.page.select('#selectServer', server); | ||||
|       await this.page.waitForSelector(KissAsianScraper.DEFAULTS.SITE_SELECTOR); | ||||
|  | ||||
|       Logger.info(`Changed streaming server to ${server}.`); | ||||
|     } catch (err) { | ||||
|       throw new ScraperError(`Server ${server} is unavailable.`); | ||||
|     } | ||||
|   } | ||||
| } | ||||
|  | ||||
| KissAsianScraper.BASE_URL = 'https://kissasian.li'; | ||||
|  | ||||
| KissAsianScraper.DEFAULTS = { | ||||
|   SITE_SELECTOR: '#head a.logo' | ||||
| }; | ||||
|  | ||||
| module.exports = KissAsianScraper; | ||||
							
								
								
									
										21
									
								
								src/classes/utils/Logger.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								src/classes/utils/Logger.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,21 @@ | ||||
| const chalk = require('chalk'); | ||||
|  | ||||
| class Logger { | ||||
|   static info(...args) { | ||||
|     console.info(chalk.blue(...args)); | ||||
|   } | ||||
|  | ||||
|   static error(...args) { | ||||
|     console.error(chalk.red(...args)); | ||||
|   } | ||||
|  | ||||
|   static success(...args) { | ||||
|     console.log(chalk.green(...args)); | ||||
|   } | ||||
|  | ||||
|   static warn(...args) { | ||||
|     console.warn(chalk.yellow(...args)); | ||||
|   } | ||||
| } | ||||
|  | ||||
| module.exports = Logger; | ||||
							
								
								
									
										9
									
								
								src/errors/FatalError.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								src/errors/FatalError.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | ||||
| class FatalError extends Error { | ||||
|   constructor(message) { | ||||
|     super(message); | ||||
|      | ||||
|     this.name = 'FatalError'; | ||||
|   } | ||||
| } | ||||
|  | ||||
| module.exports = FatalError; | ||||
							
								
								
									
										9
									
								
								src/errors/ScraperError.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								src/errors/ScraperError.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | ||||
| class ScraperError extends Error { | ||||
|   constructor(message) { | ||||
|     super(message); | ||||
|      | ||||
|     this.name = 'ScraperError'; | ||||
|   } | ||||
| } | ||||
|  | ||||
| module.exports = ScraperError; | ||||
							
								
								
									
										7
									
								
								src/errors/index.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								src/errors/index.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| const FatalError = require('./FatalError'); | ||||
| const ScraperError = require('./ScraperError'); | ||||
|  | ||||
| module.exports = { | ||||
|   FatalError, | ||||
|   ScraperError | ||||
| }; | ||||
							
								
								
									
										24
									
								
								src/index.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								src/index.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | ||||
| const puppeteer = require('puppeteer-extra'); | ||||
| const StealthPlugin = require('puppeteer-extra-plugin-stealth'); | ||||
| const AdBlockerPlugin = require('puppeteer-extra-plugin-adblocker'); | ||||
| const KissAsianScraper = require('./classes/scraping/KissAsianScraper'); | ||||
| const credentials = require('../data/credentials.json'); | ||||
|  | ||||
| puppeteer.use(StealthPlugin()); | ||||
| puppeteer.use(AdBlockerPlugin({ blockTrackers: true })); | ||||
|  | ||||
| const main = async() => { | ||||
|   const browser = await puppeteer.launch({ headless: false, slowMo: 250 }); | ||||
|   const page = await browser.newPage(); | ||||
|   const scraper = new KissAsianScraper(page); | ||||
|  | ||||
|   await scraper.load(); | ||||
|   await scraper.authenticate(credentials.kissasian); | ||||
|  | ||||
|   const links = await scraper.getMediaLinks('https://kissasian.li/Drama/My-Roommate-is-a-Gumiho'); | ||||
|   await scraper.directlyVisitPlayerURL(links[0]); | ||||
|  | ||||
|   console.log(await scraper.getDownloadLinkForCurrentPlayer()); | ||||
| }; | ||||
|  | ||||
| main(); | ||||
		Reference in New Issue
	
	Block a user