Greasy Fork is available in English.
Aptoide网站直接下载APK及OBB数据
当前为
// ==UserScript==
// @name Aptoide下载器
// @namespace Violentmonkey Scripts
// @match *://*.aptoide.com/*
// @grant none
// @version 1.0
// @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 fGvaKr";
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 fGvaKr')[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 fGvaKr";
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 fGvaKr')).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 = eval("(" + txt + ")");
var json = JSON.parse(txt);
//var json = (new Function("return " + 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);
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();
document.getElementsByClassName('gradient-button__GradientButton-gcc0dg-0 fGvaKr')[0].style.display="none";
})();