Greasy Fork is available in English.

GC - Virtupets API library

A library for virtupets.net APIs.

此脚本不应直接安装,它是一个供其他脚本使用的外部库。如果您需要使用该库,请在脚本元属性加入:// @require https://update.greasyfork.org/scripts/512407/1530419/GC%20-%20Virtupets%20API%20library.js

const url = "https://virtupets.net";
async function setupClientID() {
let clientID;
try {
clientID = await GM.getValue('ClientID');
if (!clientID) {
const id = crypto.randomUUID();
await GM.setValue('ClientID', crypto.randomUUID());
clientID = id;
}
} catch (error) {
console.error(error, "Failed to setup client ID.", "setupClientID");
clientID = "";
}
return clientID;
}
async function createGetRequest(apiVersion) {
const clientID = await setupClientID();
return {
method: "GET",
headers: {
"Version": apiVersion,
"ClientID": clientID
}
}
}
async function createPostRequest(apiVersion, body) {
const clientID = await setupClientID();
return {
method: "POST",
headers: {
"Content-Type": "application/json",
"Version": apiVersion,
"ClientID": clientID
},
body: JSON.stringify(body),
}
}
async function getItemDetails(itemName) {
const apiVersion = "0.1";
const request = await createGetRequest(apiVersion);
return fetch(`${url}/items/details?q=${encodeURIComponent(itemName)}`, request);
}
/* Expects items to be an array of item name strings. */
async function bulkShopWizardPrices(items) {
const apiVersion = "0.1";
const request = await createPostRequest(apiVersion, items);
return fetch(`${url}/shop-prices/bulk`, request);
}