This repository has been archived by the owner on Jan 15, 2024. It is now read-only.
forked from tainakanchu/mds-cli
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
yogarasu
committed
Aug 16, 2022
1 parent
9c40ce8
commit 37c25f5
Showing
2 changed files
with
184 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
import { Command } from "commander" | ||
import dotenv from "dotenv" | ||
import { resolve, join } from "node:path" | ||
import { Spinner } from "../../libs/util/spinner.mjs" | ||
import { createDiscordGuild } from "../../libs/client.mjs" | ||
import { getChannelFile } from "../../libs/channel.mjs" | ||
import { deleteAllMessage } from "../../libs/message.mjs" | ||
|
||
const __dirname = new URL(import.meta.url).pathname | ||
const distDirPath = resolve(__dirname, "../../../.dist/") | ||
const distChannelFilePath = join(distDirPath, "channel.json") | ||
|
||
dotenv.config({ path: "./.envrc" }) | ||
const spinner = new Spinner() | ||
|
||
interface Options { | ||
discordBotToken?: string | ||
discordServerId?: string | ||
} | ||
|
||
;(async () => { | ||
const program = new Command() | ||
program | ||
.description("Delete message command") | ||
.requiredOption( | ||
"-dt, --discord-bot-token [string]", | ||
"DiscordBot OAuth Token", | ||
process.env.DISCORD_BOT_TOKEN | ||
) | ||
.requiredOption( | ||
"-ds, --discord-server-id [string]", | ||
"Discord Server ID", | ||
process.env.DISCORD_SERVER_ID | ||
) | ||
.parse(process.argv) | ||
|
||
// パラメーターの取得 | ||
spinner.loading("Check parameter") | ||
const options: Options = program.opts() | ||
const { discordBotToken, discordServerId } = options | ||
if (discordBotToken === undefined || discordServerId === undefined) { | ||
spinner.failed(null, "Required parameter is not found") | ||
process.exit(0) | ||
} | ||
spinner.success() | ||
|
||
// Discordのギルドを作成する | ||
spinner.loading("Create discord guild") | ||
const { discordGuild, ...createDiscordGuildResult } = | ||
await createDiscordGuild(discordBotToken, discordServerId) | ||
if (!discordGuild || createDiscordGuildResult.status === "failed") { | ||
spinner.failed(null, createDiscordGuildResult.message) | ||
process.exit(0) | ||
} | ||
spinner.success() | ||
|
||
// チャンネルを取得する | ||
spinner.loading("Get channel") | ||
const { channels, ...getChannelFileResult } = await getChannelFile( | ||
distChannelFilePath | ||
) | ||
if (getChannelFileResult.status === "failed") { | ||
spinner.failed(null, getChannelFileResult.message) | ||
process.exit(0) | ||
} | ||
spinner.success() | ||
|
||
// メッセージを削除する | ||
spinner.loading("Delete message") | ||
const deleteAllMessageResult = await deleteAllMessage(discordGuild, channels) | ||
if (deleteAllMessageResult.status === "failed") { | ||
spinner.failed(null, deleteAllMessageResult.message) | ||
process.exit(0) | ||
} | ||
spinner.success() | ||
|
||
process.exit(0) | ||
})() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters