您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Aptoide网站直接下载APK及OBB数据,屏蔽网站的欺骗性下载按钮
// ==UserScript== // @name Aptoide下载器 // @namespace Violentmonkey Scripts // @match *://*.aptoide.com/* // @grant none // @version 1.02 // @author heham // @description Aptoide网站直接下载APK及OBB数据,屏蔽网站的欺骗性下载按钮 // ==/UserScript== function displayButton(apkUrl) { let a = document.createElement('a'); a.href = apkUrl; a.className = "gradient-button__GradientButton-gcc0dg-0 kZgKIA"; let div = document.createElement('div'); a.appendChild(div); let span = document.createElement('span'); span.appendChild(document.createTextNode('直接下载APK')); div.appendChild(span); let prevButton = document.getElementsByClassName('gradient-button__GradientButton-gcc0dg-0 kZgKIA')[0]; prevButton.parentNode.insertBefore(a, prevButton.nextElementSibling); } function displayObbButton(fileUrl) { let a = document.createElement('a'); a.href = fileUrl; a.className = "gradient-button__GradientButton-gcc0dg-0 kZgKIA"; let div = document.createElement('div'); a.appendChild(div); let span = document.createElement('span'); span.appendChild( document.createTextNode('直接下载OBB') ); div.appendChild(span); let prevButton = Array.from(document.getElementsByClassName('gradient-button__GradientButton-gcc0dg-0 kZgKIA')).pop(); prevButton.parentNode.insertBefore(a, prevButton.nextElementSibling); prevButton.parentNode.insertBefore(document.createElement('p'), prevButton.nextElementSibling); } (function () { if (!document.querySelector('script[id="__NEXT_DATA__"]')) { return; } var txt = document.querySelector('script[id="__NEXT_DATA__"]').textContent; var json = JSON.parse(txt); let apkPackage = json.props.pageProps.app.package; let xhr = new XMLHttpRequest(); let url = 'https://ws2.aptoide.com/api/7/app/getMeta/package_name=' + apkPackage; xhr.responseText = 'text'; xhr.open('GET', url); xhr.onload = function () { if (xhr.status === 200) { let responseData = JSON.parse(xhr.responseText); displayButton(responseData.data.file.path); document.getElementsByClassName('gradient-button__GradientButton-gcc0dg-0 kZgKIA')[0].style.display="none"; if (!responseData.data.obb) { return; } else { displayObbButton(responseData.data.obb.main.path); } } else { console.log('Incomplete status during request to ' + url, xhr.statusText); } }; xhr.onerror = function () { console.log('Error during request to ' + url, xhr.statusText); }; xhr.send(); })();