45 lines
1.2 KiB
TypeScript
45 lines
1.2 KiB
TypeScript
import config from "../config.js";
|
||
import { readFileSync, writeFileSync, existsSync } from "fs";
|
||
|
||
export default async function VersionCheck() {
|
||
const packageJson = JSON.parse(readFileSync("package.json", "utf-8"));
|
||
|
||
// 初期化
|
||
if (!existsSync("logs/version.txt")) {
|
||
writeFileSync(
|
||
"logs/version.txt",
|
||
packageJson.version,
|
||
"utf-8",
|
||
);
|
||
}
|
||
|
||
// 最終起動バージョン取得
|
||
const oldVersion = readFileSync("logs/version.txt", "utf-8");
|
||
|
||
if (oldVersion !== packageJson.version) {
|
||
try {
|
||
writeFileSync(
|
||
"logs/version.txt",
|
||
packageJson.version,
|
||
"utf-8",
|
||
);
|
||
|
||
const releaseUrl = `${packageJson.repository.url}/releases/tag/${packageJson.tag}`;
|
||
|
||
await fetch(`${config.uwuzu.host}/api/ueuse/create`, {
|
||
method: "POST",
|
||
body: JSON.stringify({
|
||
token: config.uwuzu.apiToken,
|
||
text: `
|
||
${packageJson.version}にBOTがアップデートされました!
|
||
リリース内容:${releaseUrl}
|
||
`,
|
||
}),
|
||
cache: "no-store",
|
||
});
|
||
} catch (err) {
|
||
console.log("アップデート通知にエラーが発生しました: ", err);
|
||
}
|
||
}
|
||
}
|