フォルダ構成だけ変えた
This commit is contained in:
@@ -0,0 +1,113 @@
|
||||
import { ueuse } from "../../../src/types/types";
|
||||
import MiQ from "../../../miq/main.js";
|
||||
import config from "../../../config.js";
|
||||
import { Reply } from "../main.js";
|
||||
import { readFileSync, writeFileSync } from "fs";
|
||||
import { Permission } from "./permission";
|
||||
|
||||
export default async function MakeItAQuote(data: ueuse) {
|
||||
if (!config.miq) {
|
||||
console.log("MiQ(管理者無効):", await Reply(`
|
||||
BOT管理者によってMake it a quoteが無効化されています。
|
||||
そのため\`/miq\`はご利用いただけません。
|
||||
`, data.uniqid));
|
||||
return;
|
||||
}
|
||||
|
||||
let color: boolean;
|
||||
let msg: string;
|
||||
|
||||
if (data.abi === "color: true") {
|
||||
msg = "カラーモードでMake it a Quoteを生成しました。";
|
||||
color = true;
|
||||
} else if (data.abi === "color: false") {
|
||||
msg = "モノクロモードでMake it a Quoteを生成しました。";
|
||||
color = false;
|
||||
} else {
|
||||
msg = "ご指定がないためモノクロモードでMake it a Quoteを生成しました。";
|
||||
color = false;
|
||||
}
|
||||
|
||||
const ueuseDataReq = await fetch(`${config.uwuzu.host}/api/ueuse/get`, {
|
||||
method: "POST",
|
||||
cache: "no-store",
|
||||
body: JSON.stringify({
|
||||
token: config.uwuzu.apiToken,
|
||||
uniqid: data.replyid,
|
||||
}),
|
||||
});
|
||||
|
||||
if (ueuseDataReq.status < 200 || ueuseDataReq.status > 299) {
|
||||
return;
|
||||
}
|
||||
|
||||
const ueuseData: ueuse = (await ueuseDataReq.json())["0"];
|
||||
|
||||
console.log(ueuseData);
|
||||
|
||||
// 権限一覧取得
|
||||
const permissions: { [user: string]: Permission } =
|
||||
JSON.parse(readFileSync("data/miqPermissions.json", "utf-8"));
|
||||
|
||||
// 初期化
|
||||
if (permissions[ueuseData.account.userid] === undefined) {
|
||||
permissions[ueuseData.account.userid] = "consent";
|
||||
writeFileSync(
|
||||
"data/miqPermissions.json",
|
||||
JSON.stringify(permissions),
|
||||
"utf-8"
|
||||
);
|
||||
}
|
||||
|
||||
if (
|
||||
permissions[ueuseData.account.userid] === "me" &&
|
||||
ueuseData.account.userid !== data.account.userid
|
||||
) {
|
||||
console.log("MiQ(自分自身専用):", await Reply(`
|
||||
生成元ユーズの投稿者が生成要求者を自分自身のみに設定しています。
|
||||
しかし、あなたは投稿者自身ではないためこのユーズにMake it a Quoteを使用することはできません。
|
||||
`, data.uniqid));
|
||||
return;
|
||||
}
|
||||
|
||||
if (
|
||||
permissions[ueuseData.account.userid] === "consent" &&
|
||||
data.account.userid !== ueuseData.account.userid
|
||||
) {
|
||||
console.log("MiQ(許可制):", await Reply(`
|
||||
生成元ユーズの投稿者が生成要求者を許可制に設定しています。
|
||||
このユーズにMake it a Quoteを使用するには、
|
||||
@${ueuseData.account.userid}さんがこのユーズに返信で\`/miq allow\`を使用する必要があります。
|
||||
`, data.uniqid));
|
||||
return;
|
||||
}
|
||||
|
||||
const img = await MiQ({
|
||||
type: "Base64Data",
|
||||
color: color,
|
||||
text: ueuseData.text,
|
||||
iconURL: ueuseData.account.user_icon,
|
||||
userName: ueuseData.account.username,
|
||||
userID: ueuseData.account.userid,
|
||||
});
|
||||
|
||||
const req = await fetch(`${config.uwuzu.host}/api/ueuse/create`, {
|
||||
method: "POST",
|
||||
body: JSON.stringify({
|
||||
token: config.uwuzu.apiToken,
|
||||
text: msg,
|
||||
image1: img,
|
||||
nsfw: data.nsfw,
|
||||
replyid: data.uniqid,
|
||||
}),
|
||||
cache: "no-store",
|
||||
});
|
||||
|
||||
if (req.status < 200 || req.status > 299) {
|
||||
return;
|
||||
}
|
||||
|
||||
const res = await req.json();
|
||||
|
||||
console.log("MiQ:", res);
|
||||
}
|
||||
Reference in New Issue
Block a user