Skip to content

Instantly share code, notes, and snippets.

@RellikJaeger
Last active July 31, 2024 19:13
Show Gist options
  • Save RellikJaeger/cdbf58eec030a87235fd20703527ff0f to your computer and use it in GitHub Desktop.
Save RellikJaeger/cdbf58eec030a87235fd20703527ff0f to your computer and use it in GitHub Desktop.
AnimePahe auto downloader for Tampermonkey
// ==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