WIRED API

WIRED Bot için Greasy Fork Veri ve Güncelleme Yönetimi

This script should not be not be installed directly. It is a library for other scripts to include with the meta directive // @require https://update.greasyfork.org/scripts/562313/1732628/WIRED%20API.js

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey, Greasemonkey किंवा Violentmonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

You will need to install an extension such as Tampermonkey to install this script.

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey किंवा Violentmonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल..

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला Tampermonkey यासारखे एक्स्टेंशन इंस्टॉल करावे लागेल..

ही स्क्रिप्ट इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्क्रिप्ट व्यवस्थापक एक्स्टेंशन इंस्टॉल करावे लागेल.

(माझ्याकडे आधीच युझर स्क्रिप्ट व्यवस्थापक आहे, मला इंस्टॉल करू द्या!)

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला Stylus सारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला Stylus सारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला Stylus सारखे एक्स्टेंशन इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्टाईल व्यवस्थापक इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्टाईल व्यवस्थापक इंस्टॉल करावे लागेल.

ही स्टाईल इंस्टॉल करण्यासाठी तुम्हाला एक युझर स्टाईल व्यवस्थापक इंस्टॉल करावे लागेल.

(माझ्याकडे आधीच युझर स्टाईल व्यवस्थापक आहे, मला इंस्टॉल करू द्या!)

// ==UserScript==
// @name         WIRED API
// @version      1.0
// @description  WIRED Bot için Greasy Fork Veri ve Güncelleme Yönetimi
// @author       WIRED
// @license      MIT
// ==/UserScript==

/* WIRED API
   Greasy Fork üzerinden versiyon kontrolü ve dinamik veri çekme işlemlerini yönetir.
*/

class WiredAPI {
	constructor() {
		if(location.hostname === 'greasyfork.org' || location.hostname === 'sleazyfork.org') {
			this.host = location.host;
			return;
		}
	}

	static get xmlRequest() {
		return GM_xmlhttpRequest || GM.xmlHttpRequest;
	}

	static getScriptData(id) {
		return new Promise((res, rej) => {
			this.xmlRequest({
				url: `https://greasyfork.org/scripts/${id}.json`,
				onload: response => res(JSON.parse(response.responseText)),
				onerror: err => rej(err)
			});
		});
	}

	static getScriptCode(id, isLibrary = false) {
		const url = `https://greasyfork.org/scripts/${id}/code/userscript` + (isLibrary ? '.js' : '.user.js');
		return new Promise((res, rej) => {
			this.xmlRequest({
				url,
				onload: response => res(response.responseText),
				onerror: err => rej(err)
			});
		});
	}

	static searchScripts(query, page = 1) {
		return new Promise((res, rej) => {
			this.xmlRequest({
				url: `https://greasyfork.org/scripts.json?q=${query}&page=${page}`,
				onload: response => res(JSON.parse(response.responseText)),
				onerror: err => rej([])
			});
		});
	}
}