動機
slack 無料版でもメッセージを保存する数自体に制限は無いようなのですが、1万件を超えると検索対象にならないとのことで、ただログが流れてくるようなチャンネルは定期的に全消ししておきたいところです。
ところが、チャンネル内のメッセージを一気に一掃したい場合、現在の slack ですとメッセージひとつずつ削除していかなくてはならず、大量のメッセージがある場合は気の遠くなるムダな作業が発生します。
そこで、slack の公式 API を使用して指定したチャンネル内のメッセージ一括削除ができるスクリプトを作成しました。
その名も slacklean=スラックリーン
ネーミングセンスの悪さは気にしない(で下さい)。
インストール
Node.js は必須です。たぶんバージョンは 8 以上あれば大丈夫なんじゃないかなと。
スクリプトは npm に上がってますので、以下のコマンドだけでインストール完了です。
npm i slacklean -g
使い方
基本はレガシートークンとチャンネル名を指定することで、そのチャンネル内のメッセージやファイルが全て削除されていきます。(一括ではありますが、1メッセージ/ファイルにつき1秒のウェイトを挟んでます)
slacklean --token (レガシートークン) --channel (チャンネル名)
例えばこんな感じです。
slacklean --token XXXXXXXXXXXXXXXXXX --channel my-secret-room
チャンネルは公開/非公開どちらのものでもOKです。
ちなみに、コマンドから --channel
を省略すると、選択可能なチャンネルリストが出てきますので ↓
↑
↲
キーで選択できちゃいます。
引数の紹介
arg | short | desc | desc-ja |
---|---|---|---|
--token |
-t |
Specify a legacy token (required) | Slackのレガシートークンを指定(必須) |
--channel |
-c |
Specify a channel name | チャンネル名を指定 |
--not-delete-files |
-n |
Do not delete attached files | 添付ファイルは削除しない |
--version |
-v |
Show version | バージョン表示 |
--help |
-h |
Show help | ヘルプ表示 |
ソースコード
GitHubに上がってます。
MITライセンスなので、みなさんフォークしたりいじったりどうぞ。