尽量减少gainAuthorization的调用
This commit is contained in:
parent
95fd48c3c7
commit
bbc9d662a6
|
@ -26,7 +26,7 @@ if (localStorage.getItem("noname_authorization")) {
|
||||||
*/
|
*/
|
||||||
export async function gainAuthorization() {
|
export async function gainAuthorization() {
|
||||||
if (!localStorage.getItem("noname_authorization") && !sessionStorage.getItem("noname_authorization")) {
|
if (!localStorage.getItem("noname_authorization") && !sessionStorage.getItem("noname_authorization")) {
|
||||||
const result = await game.promises.prompt("请输入您github的token以解除访问每小时60次的限制");
|
const result = await game.promises.prompt("请输入您github的token以解除访问每小时60次的限制(可不输入)");
|
||||||
if (typeof result == "string") {
|
if (typeof result == "string") {
|
||||||
localStorage.setItem("noname_authorization", result);
|
localStorage.setItem("noname_authorization", result);
|
||||||
defaultHeaders["Authorization"] = `token ${localStorage.getItem("noname_authorization")}`;
|
defaultHeaders["Authorization"] = `token ${localStorage.getItem("noname_authorization")}`;
|
||||||
|
@ -45,11 +45,17 @@ const defaultResponse = async (/** @type {Response} */ response) => {
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
console.log(`限制重置时间`, new Date(reset * 1000).toLocaleString());
|
console.log(`限制重置时间`, new Date(reset * 1000).toLocaleString());
|
||||||
if (
|
if (
|
||||||
Number(remaining) === 0 &&
|
(
|
||||||
!sessionStorage.getItem("noname_authorization") &&
|
Number(remaining) === 0 &&
|
||||||
confirm(`您达到了每小时${limit}次的访问限制,是否输入您github的token以获取更高的请求总量限制`)
|
!sessionStorage.getItem("noname_authorization") &&
|
||||||
|
confirm(`您达到了每小时${limit}次的访问限制,是否输入您github账号的token以获取更高的请求总量限制`)
|
||||||
|
) || (
|
||||||
|
response.status === 401 &&
|
||||||
|
(localStorage.removeItem("noname_authorization"), true) &&
|
||||||
|
(alert(`身份验证凭证错误,是否重新输入您github账号的token以获取更高的请求总量限制`), true)
|
||||||
|
)
|
||||||
) {
|
) {
|
||||||
await gainAuthorization();
|
return gainAuthorization();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -168,9 +174,9 @@ export function checkVersion(ver1, ver2) {
|
||||||
* ```
|
* ```
|
||||||
*/
|
*/
|
||||||
export async function getRepoTags(options = { username: "libccy", repository: "noname" }) {
|
export async function getRepoTags(options = { username: "libccy", repository: "noname" }) {
|
||||||
if (!localStorage.getItem("noname_authorization")) {
|
// if (!localStorage.getItem("noname_authorization")) {
|
||||||
await gainAuthorization();
|
// await gainAuthorization();
|
||||||
}
|
// }
|
||||||
const { username = "libccy", repository = "noname", accessToken } = options;
|
const { username = "libccy", repository = "noname", accessToken } = options;
|
||||||
const headers = Object.assign({}, defaultHeaders);
|
const headers = Object.assign({}, defaultHeaders);
|
||||||
if (accessToken) {
|
if (accessToken) {
|
||||||
|
@ -203,9 +209,9 @@ export async function getRepoTags(options = { username: "libccy", repository: "n
|
||||||
*/
|
*/
|
||||||
|
|
||||||
export async function getRepoTagDescription(tagName, options = { username: "libccy", repository: "noname" }) {
|
export async function getRepoTagDescription(tagName, options = { username: "libccy", repository: "noname" }) {
|
||||||
if (!localStorage.getItem("noname_authorization")) {
|
// if (!localStorage.getItem("noname_authorization")) {
|
||||||
await gainAuthorization();
|
// await gainAuthorization();
|
||||||
}
|
// }
|
||||||
const { username = "libccy", repository = "noname", accessToken } = options;
|
const { username = "libccy", repository = "noname", accessToken } = options;
|
||||||
const headers = Object.assign({}, defaultHeaders);
|
const headers = Object.assign({}, defaultHeaders);
|
||||||
if (accessToken) {
|
if (accessToken) {
|
||||||
|
@ -267,9 +273,9 @@ export async function getRepoFilesList(
|
||||||
branch,
|
branch,
|
||||||
options = { username: "libccy", repository: "noname" }
|
options = { username: "libccy", repository: "noname" }
|
||||||
) {
|
) {
|
||||||
if (!localStorage.getItem("noname_authorization")) {
|
// if (!localStorage.getItem("noname_authorization")) {
|
||||||
await gainAuthorization();
|
// await gainAuthorization();
|
||||||
}
|
// }
|
||||||
const { username = "libccy", repository = "noname", accessToken } = options;
|
const { username = "libccy", repository = "noname", accessToken } = options;
|
||||||
const headers = Object.assign({}, defaultHeaders);
|
const headers = Object.assign({}, defaultHeaders);
|
||||||
if (accessToken) {
|
if (accessToken) {
|
||||||
|
@ -327,6 +333,9 @@ export async function flattenRepositoryFiles(
|
||||||
branch,
|
branch,
|
||||||
options = { username: "libccy", repository: "noname" }
|
options = { username: "libccy", repository: "noname" }
|
||||||
) {
|
) {
|
||||||
|
if (!localStorage.getItem("noname_authorization")) {
|
||||||
|
await gainAuthorization();
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* @type { { download_url: string, name: string, path: string, sha: string, size: number, type: 'file' }[] }
|
* @type { { download_url: string, name: string, path: string, sha: string, size: number, type: 'file' }[] }
|
||||||
*/
|
*/
|
||||||
|
@ -536,8 +545,6 @@ export function createProgress(title, max, fileName, value) {
|
||||||
* @throws {Error} 如果获取操作失败或找不到有效tag,将抛出错误。
|
* @throws {Error} 如果获取操作失败或找不到有效tag,将抛出错误。
|
||||||
*/
|
*/
|
||||||
export async function getLatestVersionFromGitHub(owner = "libccy", repo = "noname") {
|
export async function getLatestVersionFromGitHub(owner = "libccy", repo = "noname") {
|
||||||
if (!localStorage.getItem("noname_authorization")) await gainAuthorization();
|
|
||||||
|
|
||||||
const tags = await getRepoTags({
|
const tags = await getRepoTags({
|
||||||
username: owner,
|
username: owner,
|
||||||
repository: repo,
|
repository: repo,
|
||||||
|
@ -574,7 +581,7 @@ export async function getLatestVersionFromGitHub(owner = "libccy", repo = "nonam
|
||||||
* @throws {Error} Will throw an error if unable to fetch the repository tree from GitHub.
|
* @throws {Error} Will throw an error if unable to fetch the repository tree from GitHub.
|
||||||
*/
|
*/
|
||||||
export async function getTreesFromGithub(directories, version, owner = "libccy", repo = "noname") {
|
export async function getTreesFromGithub(directories, version, owner = "libccy", repo = "noname") {
|
||||||
if (!localStorage.getItem("noname_authorization")) await gainAuthorization();
|
// if (!localStorage.getItem("noname_authorization")) await gainAuthorization();
|
||||||
|
|
||||||
const treesResponse = await fetch(
|
const treesResponse = await fetch(
|
||||||
`https://api.github.com/repos/${owner}/${repo}/git/trees/${version}?recursive=1`,
|
`https://api.github.com/repos/${owner}/${repo}/git/trees/${version}?recursive=1`,
|
||||||
|
@ -582,7 +589,7 @@ export async function getTreesFromGithub(directories, version, owner = "libccy",
|
||||||
headers: defaultHeaders,
|
headers: defaultHeaders,
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
await defaultResponse(treesResponse);
|
||||||
if (!treesResponse.ok)
|
if (!treesResponse.ok)
|
||||||
throw new Error(`Failed to fetch the GitHub repository tree: HTTP status ${treesResponse.status}`);
|
throw new Error(`Failed to fetch the GitHub repository tree: HTTP status ${treesResponse.status}`);
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -2562,8 +2562,9 @@ export class Create {
|
||||||
lib.arenaReady.shift()();
|
lib.arenaReady.shift()();
|
||||||
}
|
}
|
||||||
delete lib.arenaReady;
|
delete lib.arenaReady;
|
||||||
if (lib.config.auto_check_update) {
|
if (lib.config.auto_check_update && !sessionStorage.getItem("auto_check_update")) {
|
||||||
setTimeout(function () {
|
setTimeout(() => {
|
||||||
|
sessionStorage.setItem("auto_check_update", '1');
|
||||||
game.checkForUpdate(false);
|
game.checkForUpdate(false);
|
||||||
}, 3000);
|
}, 3000);
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,12 +14,9 @@ import { ui, game, get, ai, lib, _status } from "../../../../../noname.js";
|
||||||
import {
|
import {
|
||||||
parseSize,
|
parseSize,
|
||||||
checkVersion,
|
checkVersion,
|
||||||
getRepoTags,
|
|
||||||
getRepoTagDescription,
|
getRepoTagDescription,
|
||||||
flattenRepositoryFiles,
|
|
||||||
request,
|
request,
|
||||||
createProgress,
|
createProgress,
|
||||||
gainAuthorization,
|
|
||||||
getLatestVersionFromGitHub,
|
getLatestVersionFromGitHub,
|
||||||
getTreesFromGithub,
|
getTreesFromGithub,
|
||||||
} from "../../../../library/update.js";
|
} from "../../../../library/update.js";
|
||||||
|
@ -396,17 +393,17 @@ export const otherMenu = function (/** @type { boolean | undefined } */ connectM
|
||||||
if (checkAssetButton.disabled) {
|
if (checkAssetButton.disabled) {
|
||||||
return;
|
return;
|
||||||
} else if (game.download) {
|
} else if (game.download) {
|
||||||
if (
|
// if (
|
||||||
!localStorage.getItem("noname_authorization") &&
|
// !localStorage.getItem("noname_authorization") &&
|
||||||
!sessionStorage.getItem("noname_authorization")
|
// !sessionStorage.getItem("noname_authorization")
|
||||||
) {
|
// ) {
|
||||||
if (
|
// if (
|
||||||
confirm(
|
// confirm(
|
||||||
"素材更新或许会直接超过每小时的访问限制,是否输入您github的token以解除访问每小时60次的限制?"
|
// "素材更新或许会直接超过每小时的访问限制,是否输入您github的token以解除访问每小时60次的限制?"
|
||||||
)
|
// )
|
||||||
)
|
// )
|
||||||
await gainAuthorization();
|
// await gainAuthorization();
|
||||||
}
|
// }
|
||||||
checkAssetButton.innerHTML = "正在检查更新";
|
checkAssetButton.innerHTML = "正在检查更新";
|
||||||
checkAssetButton.disabled = true;
|
checkAssetButton.disabled = true;
|
||||||
|
|
||||||
|
@ -419,8 +416,14 @@ export const otherMenu = function (/** @type { boolean | undefined } */ connectM
|
||||||
if (lib.config.asset_font) assetDirectories.push("font");
|
if (lib.config.asset_font) assetDirectories.push("font");
|
||||||
if (lib.config.asset_audio) assetDirectories.push("audio");
|
if (lib.config.asset_audio) assetDirectories.push("audio");
|
||||||
if (lib.config.asset_image) assetDirectories.push("image");
|
if (lib.config.asset_image) assetDirectories.push("image");
|
||||||
const version = await getLatestVersionFromGitHub();
|
const version = await getLatestVersionFromGitHub().catch(e => {
|
||||||
const files = await getTreesFromGithub(assetDirectories, version);
|
refresh();
|
||||||
|
throw e;
|
||||||
|
});
|
||||||
|
const files = await getTreesFromGithub(assetDirectories, version).catch(e => {
|
||||||
|
refresh();
|
||||||
|
throw e;
|
||||||
|
});
|
||||||
|
|
||||||
assetDirectories.forEach((assetDirectory, index) => {
|
assetDirectories.forEach((assetDirectory, index) => {
|
||||||
const arr = files[index];
|
const arr = files[index];
|
||||||
|
|
Loading…
Reference in New Issue