Files
wool_scripts/Scripts/emby/unlock2.js
2025-06-30 21:59:46 +08:00

146 lines
3.8 KiB
JavaScript

/*
引用地址 https://github.com/qiangxinglin/Emby/blob/main/scripts/emby.js
2020-12-20
[rewrite_local]
^https?:\/\/mb3admin\.com\/admin\/service(\/registration\/validateDevice|\/appstore\/register|\/registration\/validate|\/registration\/getStatus|\/supporter\/retrievekey) url script-echo-response https://raw.githubusercontent.com/fmz200/wool_scripts/main/Scripts/emby/unlock2.js
[mitm]
hostname = mb3admin.com
*/
var url = $request.url;
const myStatus = "HTTP/1.1 200 OK";
const myHeaders = {
Crack: "KS",
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Headers": "*",
"Access-Control-Allow-Method": "*",
"Access-Control-Allow-Credentials": "true"
};
if (url.indexOf("/admin/service/registration/validateDevice") != -1) {
obj = {
cacheExpirationDays: 365,
message: "Device Valid",
resultCode: "GOOD"
};
} else if (url.indexOf("/admin/service/appstore/register") != -1) {
obj = {
featId: "",
registered: true,
expDate: "2099-01-01",
key: ""
};
} else if (url.indexOf("/admin/service/registration/validate") != -1) {
obj = {
featId: "",
registered: true,
expDate: "2099-01-01",
key: ""
};
} else if (url.indexOf("/admin/service/registration/getStatus") != -1) {
obj = {
planType: "Cracked",
deviceStatus: "",
subscriptions: []
};
} else if (url.indexOf("/admin/service/supporter/retrievekey") != -1) {
obj = {
Success: false,
ErrorMessage: "Supporter not found"
};
}
myData = JSON.stringify(obj);
const myResponse = {
status: myStatus,
headers: myHeaders, // Optional.
body: myData // Optional.
};
var $util = util();
//$util.notify('Emby Premiere 已激活');
$util.done(myResponse);
function util() {
const isRequest = typeof $request != "undefined";
const isSurge = typeof $httpClient != "undefined";
const isQuanX = typeof $task != "undefined";
const notify = (title, subtitle = "", message = "") => {
if (isQuanX) $notify(title, subtitle, message);
if (isSurge) $notification.post(title, subtitle, message);
};
const write = (value, key) => {
if (isQuanX) return $prefs.setValueForKey(value, key);
if (isSurge) return $persistentStore.write(value, key);
};
const read = (key) => {
if (isQuanX) return $prefs.valueForKey(key);
if (isSurge) return $persistentStore.read(key);
};
const adapterStatus = (response) => {
if (response) {
if (response.status) {
response["statusCode"] = response.status;
} else if (response.statusCode) {
response["status"] = response.statusCode;
}
}
return response;
};
const get = (options, callback) => {
if (isQuanX) {
if (typeof options == "string")
options = {
url: options,
method: "GET"
};
$task.fetch(options).then(
(response) => {
callback(null, adapterStatus(response), response.body);
},
(reason) => callback(reason.error, null, null)
);
}
if (isSurge)
$httpClient.get(options, (error, response, body) => {
callback(error, adapterStatus(response), body);
});
};
const post = (options, callback) => {
if (isQuanX) {
if (typeof options == "string")
options = {
url: options,
method: "POST"
};
$task.fetch(options).then(
(response) => {
callback(null, adapterStatus(response), response.body);
},
(reason) => callback(reason.error, null, null)
);
}
if (isSurge) {
$httpClient.post(options, (error, response, body) => {
callback(error, adapterStatus(response), body);
});
}
};
const done = (value = {}) => {
if (isQuanX) return $done(value);
if (isSurge) isRequest ? $done(value) : $done();
};
return {
isRequest,
notify,
write,
read,
get,
post,
done
};
}