79 lines
2.1 KiB
TypeScript
79 lines
2.1 KiB
TypeScript
import { ueuse } from "../../../types/types";
|
|
import { Reply } from "../main.js";
|
|
import config from "../../../config.js";
|
|
import { readFileSync, writeFileSync, existsSync } from "fs";
|
|
|
|
// 初期化
|
|
const initialFile = {};
|
|
if (!existsSync("data/miqPermissions.json")) {
|
|
writeFileSync(
|
|
"data/miqPermissions.json",
|
|
JSON.stringify(initialFile),
|
|
"utf-8"
|
|
);
|
|
}
|
|
|
|
export type Permission =
|
|
"consent" |
|
|
"everyone" |
|
|
"me";
|
|
|
|
const PermissionsNames: { [name: string]: string } = {
|
|
"consent": "許可制",
|
|
"everyone": "全体公開",
|
|
"me": "自身のみ",
|
|
}
|
|
|
|
export default async function MiQPermission(data: ueuse) {
|
|
if (!config.miq) {
|
|
await Reply(`
|
|
BOT管理者によってMake it a quoteが無効化されています。
|
|
そのため\`/miq\`はご利用いただけません。
|
|
`, data.uniqid);
|
|
return;
|
|
}
|
|
|
|
const permissions: { [user: string]: string } =
|
|
JSON.parse(readFileSync("data/miqPermissions.json", "utf-8"));
|
|
|
|
// 初期化
|
|
if (permissions[data.account.userid] === undefined) {
|
|
permissions[data.account.userid] = "consent";
|
|
writeFileSync(
|
|
"data/miqPermissions.json",
|
|
JSON.stringify(permissions),
|
|
"utf-8"
|
|
);
|
|
}
|
|
|
|
if (
|
|
data.abi === "" ||
|
|
data.abi === "none"
|
|
) {
|
|
await Reply(`
|
|
あなたに対してのMake it a Quoteを生成するための権限は「${PermissionsNames[permissions[data.account.userid]]}」です。
|
|
`, data.uniqid);
|
|
return;
|
|
}
|
|
|
|
const requestPermission = data.abi.trimEnd();
|
|
|
|
if (PermissionsNames[requestPermission] === undefined) {
|
|
await Reply(`
|
|
変更希望の権限「${requestPermission}」はご指定できません。
|
|
\`consent\`、\`everyone\`、\`me\`のいずれかからご選択ください。
|
|
`, data.uniqid);
|
|
return;
|
|
}
|
|
|
|
permissions[data.account.userid] = requestPermission;
|
|
writeFileSync(
|
|
"data/miqPermissions.json",
|
|
JSON.stringify(permissions),
|
|
"utf-8"
|
|
);
|
|
await Reply(`
|
|
あなたに対してのMake it a Quoteを生成するための権限を「${PermissionsNames[requestPermission]}」に変更しました。
|
|
`, data.uniqid);
|
|
}
|