Last active
July 31, 2024 19:13
-
-
Save RellikJaeger/cdbf58eec030a87235fd20703527ff0f to your computer and use it in GitHub Desktop.
AnimePahe auto downloader for Tampermonkey
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==UserScript== | |
// @name AnimePahe auto downloader | |
// @namespace https://gist.github.com/RellikJaeger/cdbf58eec030a87235fd20703527ff0f | |
// @version 0.5.4 | |
// @description AnimePahe auto downloader | |
// @author Rellik Jaeger | |
// @match https://animepahe.com/play/*/* | |
// @match https://animepahe.org/play/*/* | |
// @match https://animepahe.ru/play/*/* | |
// @match https://pahe.win/* | |
// @match https://kwik.cx/f/* | |
// @match https://kwik.si/f/* | |
// @match https://animepahe.com/* | |
// @match https://animepahe.ru/* | |
// @match https://animepahe.org/* | |
// @icon https://animepahe.com/pikacon.ico | |
// @grant none | |
// ==/UserScript== | |
(function () { | |
'use strict'; | |
let bruteForce; | |
let retryCount = 1; | |
switch (window.location.host) { | |
case 'animepahe.com': | |
case 'animepahe.org': | |
case 'animepahe.ru': | |
if (window.location.pathname === '/') { | |
var fontName = 'Nabla'; | |
// Create a link element for Google Fonts | |
var linkElement = document.createElement('link'); | |
linkElement.href = 'https://fonts.googleapis.com/css2?family=' + fontName + '&display=swap'; | |
linkElement.rel = 'stylesheet'; | |
// Append the link element to the head of the document | |
document.head.appendChild(linkElement); | |
var searchForm = document.querySelector('.nav-search'); | |
var searchBox = document.querySelector('.input-search'); | |
searchForm.style.margin = '10px'; | |
searchBox.style.color = 'white'; | |
searchBox.style.background = '#222'; | |
searchBox.style.border = 'solid 2px #C3295C'; | |
searchBox.style.borderRadius = '10px'; | |
var button = document.querySelector('#loginBtn'); | |
var buttonWrapper = document.querySelector('#btnWrapper'); | |
if (!button) { | |
button = document.createElement('button'); | |
buttonWrapper = document.createElement('div'); | |
buttonWrapper.setAttribute('id', 'btnWrapper'); | |
buttonWrapper.appendChild(button); | |
buttonWrapper.style.display = 'flex'; | |
buttonWrapper.style.justifyContent = 'flex-end'; | |
button.textContent = 'Login'; | |
button.setAttribute('id', 'loginBtn'); | |
} | |
var navbarNavDropdown = document.querySelector('#navbarNavDropdown'); | |
navbarNavDropdown.appendChild(buttonWrapper); | |
button.style.width = '90px'; | |
button.style.margin = '10px'; | |
button.style.borderRadius = '5px'; | |
button.style.border = 'solid thin gold'; | |
button.style.padding = '5px 10px 7px 10px'; | |
button.style.fontFamily = fontName; | |
button.style.backgroundColor = '#222'; | |
button.addEventListener('mouseenter', function () { | |
button.style.backgroundColor = '#444'; | |
}); | |
button.addEventListener('mouseleave', function () { | |
button.style.backgroundColor = '#222'; | |
}); | |
button.addEventListener('click', function () { | |
notifyMe(); | |
}); | |
return; | |
} | |
bruteForce = setInterval(() => takeOver(), 600 * retryCount++); | |
break; | |
case 'pahe.win': | |
bruteForce = setInterval(() => timerBypass(), 700 * retryCount++); | |
break; | |
case 'kwik.cx': | |
case 'kwik.si': | |
if (document.title.includes('Please Wait...') || document.title.includes('Just a moment...')) { | |
bruteForce = setInterval(() => autoDownload(), 4000 * retryCount++); | |
} else { | |
bruteForce = setInterval(() => autoDownload(), 600 * retryCount++); | |
} | |
break; | |
} | |
function notifyMe() { | |
if (!("Notification" in window)) { | |
// Check if the browser supports notifications | |
alert("This browser does not support desktop notification"); | |
} else if (Notification.permission === "granted") { | |
// Check whether notification permissions have already been granted; | |
// if so, create a notification | |
const notification = new Notification("Hi there!"); | |
// … | |
} else if (Notification.permission !== "denied") { | |
// We need to ask the user for permission | |
Notification.requestPermission().then((permission) => { | |
// If the user accepts, let's create a notification | |
if (permission === "granted") { | |
const notification = new Notification("Hi there!"); | |
// … | |
} | |
}); | |
} | |
// At last, if the user has denied notifications, and you | |
// want to be respectful there is no need to bother them anymore. | |
} | |
function takeOver() { | |
try { | |
let recommended = document.querySelector('#fansubMenu').firstChild.data.trim().normalize('NFC'); | |
let pickDownload = document.querySelector('#pickDownload'); | |
let downloadButtonEndPoint = pickDownload.children.length; | |
let badgesPrimary = document.getElementsByClassName('badge badge-primary'); | |
let badgesWarning = document.getElementsByClassName('badge badge-warning'); | |
let mikuCheckPoint; | |
for (let i = 0; i < downloadButtonEndPoint; i++) { | |
let button = document.createElement('div'); | |
let url = pickDownload.children[i].href; | |
button.style.color = '#111'; | |
button.style.background = '#fff'; | |
button.style.width = pickDownload.style.width; | |
button.style.cursor = 'url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAXCAYAAAAGAx/kAAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QsJFAAfjTMaRQAAAtVJREFUOMudlE1LZEcUhp/qW/fWvbe8PdGWhNZgsgiNkPyE4LjIJuAu/2Bg/oGSRVxnExpcZOUqkIUroXUhiKA2KrNwlm4cP6A1PRqiKNqZtvt+nCzUpunRQXOg4KUO9XDOeatK8cTwPO/EcZwXQBBFEQBKKeI4xnVd1FNBjuPEBwcH2hjzUa5YLMJzQM1mUx4KQJ4MyuVybd/348HBQVlfX///IOAnY0xreXlZREQWFhY+CcoBFggADZ0ZjgdB0FhZWRERkaWlJfE871FQLoqiX40xN57ntTzP+wXwAaW1vi6XyyIisra2JtbaDHgUVDDGtI6OjmR7e1vCMLwGvryr7Edr7b8zMzNirf0A/AyI1jrVWqfdIAV85ft+W0Tk5OREgiD4AJSAe7/HXde9BCaAfqDYvXRXRQ/dKRfwgARYj+P4s0ddfSzRarV8a+2bMAwPgfE7AzzA+ZS1Cvj6vrXT01OZmJiQer0u5XJZjDGNMAyvwzC8BF4Dn9+1nOuFuECpe0azs7MiIlKv16VUKkmtVpPNzU0JgiBxXTfp6+v7625e3v1YvvN9/8JxnMRam9yDdnd3O/ZOTU119OTkpIiIzM3NieM4KfAt4GGt/WN6ejrb2dmRfD6fiYicn59LHMedw1tbWx1drVY72vf9GPgeCOnv739XrVbl+PhY8vn8g48yy7KOTpKkF/QSsLkkSQpDQ0MYY1Dq9gacnZ1xeHhImqZcXFywv79Pq9Wi0Wiwt7f3oFs6yzI3CAIGBgbY2NhARFhcXMRxHEZGRqhUKmitGR4eZn5+Htd1GR0d/dh2Y0yzVqv5hUKB50YURcnNzc0PwFudpqmO45irq6tnQbIsI8syBaQA2vf9f1ZXV4tjY2PPAlUqFYwxZ+12+xoQBbwyxvyulNJaaxERdfsz3EaP7rxHpVSz2Wz+BvwJvFdACHwBfANEvR10fRFZz/4l8B74G2j+Bx4o1cS4grKVAAAAAElFTkSuQmCC"), auto'; | |
button.style.boxSizing = 'border-box'; | |
button.style.paddingTop = '4px'; | |
button.style.paddingBottom = '4px'; | |
button.style.display = 'flex'; | |
button.style.justifyContent = 'center'; | |
button.style.fontSize = '14px'; | |
if (pickDownload.children[i].firstChild.data.trim().normalize('NFC').includes(recommended) && | |
!pickDownload.children[i].firstChild.data.trim().normalize('NFC').includes('eng')) { | |
button.title = 'Recommended by Miku'; | |
button.innerHTML = '<img src="data:image/png;base64,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" width="24px" height="24px" alt="Recommended by Miku">⬇️ ' + pickDownload.children[i].innerHTML; | |
mikuCheckPoint = `Index ${i}: ${pickDownload.children[i].innerHTML}`; | |
} else if (!button.innerHTML.normalize('NFC').includes('⬇️ '.normalize('NFC'))) { | |
button.innerHTML = '⬇️ ' + pickDownload.children[i].innerHTML; | |
} | |
button.onclick = (event) => { // eslint-disable-line | |
event.stopPropagation(); | |
window.open(url, '_blank'); | |
$('#episodeMenu').dropdown('toggle'); // eslint-disable-line | |
}; | |
button.onmouseenter = () => { | |
button.style.color = '#fff'; | |
button.style.background = '#D5015B'; | |
}; | |
button.onmouseleave = () => { | |
button.style.color = '#111'; | |
button.style.background = '#fff'; | |
}; | |
pickDownload.children[i].replaceWith(button); | |
if (pickDownload.children[i].children[0] !== undefined && pickDownload.children[i].children[0].tagName === 'SPAN') { | |
pickDownload.children[i].children[0].style.margin = '3px 4px 4px 4px'; | |
console.log('span changed'); | |
} | |
if (pickDownload.children[i].children[1] !== undefined && pickDownload.children[i].children[1].tagName === 'SPAN') { | |
pickDownload.children[i].children[1].style.margin = '3px 4px 4px 4px'; | |
console.log('span changed'); | |
} | |
} | |
for (let i = 0; i < badgesPrimary.length; i++) { | |
badgesPrimary[i].style.height = '16px'; | |
} | |
for (let i = 0; i < badgesWarning.length; i++) { | |
badgesWarning[i].style.height = '16px'; | |
} | |
if (pickDownload.children[--downloadButtonEndPoint].nodeName === 'DIV' && mikuCheckPoint !== undefined) { | |
clearInterval(bruteForce); | |
$('#downloadMenu').dropdown('toggle'); // eslint-disable-line | |
console.log('Miku check point: ' + mikuCheckPoint); | |
} | |
} catch (error) { | |
console.log('Error: ' + error); | |
} | |
} | |
function timerBypass() { | |
let scripts = document.head.getElementsByTagName('script'); | |
for (let i = 0; i < scripts.length; i++) { | |
if (scripts[i].innerHTML.includes('https://')) { | |
window.location = scripts[i].innerHTML.match(/(https?:\/\/[^ "]*)/)[0]; | |
clearInterval(bruteForce); | |
break; | |
} | |
} | |
} | |
function autoDownload() { | |
clearInterval(bruteForce); | |
let downloadButton = document.querySelector('button[type="submit"]'); | |
if (downloadButton != undefined) { | |
downloadButton.form.submit(); | |
// fetch('https://hub.dummyapis.com/delay?seconds=9').then(response => setTimeout(() => window.close(), 1000)); | |
} else { | |
// setTimeout(() => window.location.reload(), 10000); | |
} | |
} | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment