v7.0(unconfirmed)をリリース
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
import { ueuse } from "types/types.js";
|
||||
import config from "../../config.js";
|
||||
|
||||
export default async function Follow(data: ueuse) {
|
||||
const followReq = await fetch(`https://${config.uwuzu.host}/api/users/follow/`, {
|
||||
method: "POST",
|
||||
body: JSON.stringify({
|
||||
token: config.uwuzu.apiToken,
|
||||
userid: data.account.userid,
|
||||
}),
|
||||
});
|
||||
|
||||
const followRes = await followReq.json();
|
||||
|
||||
console.log("フォロー: ", followRes);
|
||||
|
||||
|
||||
const noticeReq = await fetch(`https://${config.uwuzu.host}/api/ueuse/create/`, {
|
||||
method: "POST",
|
||||
body: JSON.stringify({
|
||||
token: config.uwuzu.apiToken,
|
||||
text: `
|
||||
${data.account.username}さんをフォローしました
|
||||
`,
|
||||
replyid: data.uniqid,
|
||||
}),
|
||||
});
|
||||
|
||||
const noticeRes = await noticeReq.json();
|
||||
|
||||
console.log("フォロー通知: ", noticeRes);
|
||||
}
|
||||
@@ -0,0 +1,114 @@
|
||||
import * as fs from "fs";
|
||||
import config from "../../config.js";
|
||||
import type { ueuse } from "types/types.js";
|
||||
|
||||
const initialFile: Array<string> = [];
|
||||
|
||||
// コマンド読み込み
|
||||
import Follow from "./follow.js";
|
||||
import UnFollow from "./unfollow.js";
|
||||
import Weather from "./weather.js";
|
||||
|
||||
// 初期化
|
||||
if (!fs.existsSync("logs/alreadyCommands.json")) {
|
||||
fs.writeFileSync(
|
||||
"logs/alreadyCommands.json",
|
||||
JSON.stringify(initialFile),
|
||||
"utf-8",
|
||||
);
|
||||
}
|
||||
|
||||
// 対応済みユーズ一覧
|
||||
const alreadyCommands: Array<string> = JSON.parse(fs.readFileSync("alreadyCommands.json", "utf-8"));
|
||||
|
||||
function cutAfterChar(str: string, char: string) {
|
||||
const index = str.indexOf(char);
|
||||
|
||||
if (index === -1) {
|
||||
return "";
|
||||
}
|
||||
|
||||
return str.substring(index + 1);
|
||||
}
|
||||
|
||||
async function Reply(text: string, reply: string) {
|
||||
const req = await fetch(`https://${config.uwuzu.host}/api/ueuse/create`, {
|
||||
method: "POST",
|
||||
body: JSON.stringify({
|
||||
token: config.uwuzu.apiToken,
|
||||
text: text,
|
||||
replyid: reply,
|
||||
}),
|
||||
});
|
||||
|
||||
const res = await req.json();
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
function alreadyAdd(data: string) {
|
||||
alreadyCommands[alreadyCommands.length] = data;
|
||||
|
||||
fs.writeFileSync(
|
||||
"logs/alreadyCommands.json",
|
||||
JSON.stringify(alreadyCommands),
|
||||
"utf-8",
|
||||
);
|
||||
}
|
||||
|
||||
export default async function Commands() {
|
||||
const mentions: Array<ueuse> = await (await fetch(
|
||||
`https://${config.uwuzu.host}/api/ueuse/mentions/`, {
|
||||
method: "POST",
|
||||
body: JSON.stringify({
|
||||
token: config.uwuzu.apiToken,
|
||||
}),
|
||||
}
|
||||
)).json();
|
||||
|
||||
console.log("----------------");
|
||||
console.log("コマンド処理");
|
||||
|
||||
for (let i = 0; i < mentions.length; i++) {
|
||||
const data = mentions[i];
|
||||
|
||||
// 除外ユーズ
|
||||
if (alreadyCommands.indexOf(data.uniqid) !== -1) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (data.text.charAt(0) === "!") {
|
||||
break;
|
||||
}
|
||||
|
||||
// コマンド処理
|
||||
console.log("--------");
|
||||
|
||||
const commandName = cutAfterChar(data.text, "/");
|
||||
|
||||
switch (commandName) {
|
||||
case "follow":
|
||||
alreadyAdd(data.uniqid);
|
||||
Follow(data);
|
||||
break;
|
||||
case "unfollow":
|
||||
alreadyAdd(data.uniqid);
|
||||
UnFollow(data);
|
||||
break;
|
||||
case "weather":
|
||||
alreadyAdd(data.uniqid);
|
||||
Weather(data);
|
||||
break;
|
||||
default:
|
||||
alreadyAdd(data.uniqid);
|
||||
|
||||
const reply = await Reply(`
|
||||
不明なコマンドです。
|
||||
コマンド実行を除外する場合は1文字目に\`!\`を入れてください。
|
||||
`, data.uniqid);
|
||||
|
||||
console.log("未対応コマンド: ", reply);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
import { ueuse } from "types/types.js";
|
||||
import config from "../../config.js";
|
||||
|
||||
export default async function UnFollow(data: ueuse) {
|
||||
const unfollowReq = await fetch(`https://${config.uwuzu.host}/api/users/unfollow/`, {
|
||||
method: "POST",
|
||||
body: JSON.stringify({
|
||||
token: config.uwuzu.apiToken,
|
||||
userid: data.account.userid,
|
||||
}),
|
||||
});
|
||||
|
||||
const unfollowRes = await unfollowReq.json();
|
||||
|
||||
console.log("フォロー解除: ", unfollowRes);
|
||||
|
||||
const noticeReq = await fetch(`https://${config.uwuzu.host}/api/ueuse/create/`, {
|
||||
method: "POST",
|
||||
body: JSON.stringify({
|
||||
token: config.uwuzu.apiToken,
|
||||
text: `
|
||||
${data.account.username}さんをフォロー解除しました
|
||||
`,
|
||||
replyid: data.uniqid,
|
||||
}),
|
||||
});
|
||||
|
||||
const noticeRes = await noticeReq.json();
|
||||
|
||||
console.log("フォロー解除通知: ", noticeRes);
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
import { weatherReply } from "scripts/weatherNotice";
|
||||
import { ueuse } from "types/types.js";
|
||||
|
||||
export default function Weather(data: ueuse) {
|
||||
weatherReply(data.uniqid);
|
||||
}
|
||||
Reference in New Issue
Block a user