Slack のメッセージを自動削除 2021 (2)

前回 GAS で Slack のメッセージを自動削除しようとしてうまくいかなかった。

Slack のメッセージを自動削除 2021(失敗) – with a Christian Wife
https://wacw.cf/2021/07/14/deleting-messages-of-slack-automatically-2021/

GAS を使わない方法を試してみることにした。

以前 slack-cleaner を使った。

Slack でチャンネル内のメッセージを一括削除する – with a Christian Wife
https://wacw.cf/2018/04/23/delete-all-messages-in-slack/

slack-cleaner は公開チャンネルも非公開チャンネルも削除できるし、削除の日付を指定できる。問題は日本語のチャンネル名だと削除できないことだった。

日本語のチャンネル名で削除できないのは Python2 ではなく、Python3 を使えば解決すると分かった。つまり、slack-cleaner で Python3 が使用されるになるように設定すればいい。Mac はデフォルトで Python 2.x 系なのが問題の原因のようだ。

環境:macOS Catalina Version 10.15.6(英語環境)

(1)現在のデフォルトの python コマンドのバージョンを確認する。

$ python -V
Python 2.7.16

やはり、Python 2.x 系だ。

(2)以下のコマンドで python3 のインストールパスを確認する。

$ brew info python

いろいろ表示されるが以下の部分に着目する。

Unversioned symlinks python, python-config, pip etc. pointing to python3, python3-config, pip3 etc., respectively, have been installed into /usr/local/opt/python@3.9/libexec/bin

これで私の環境では python3 のパスが /usr/local/opt/python@3.9/libexec/bin だと分かる。

(3)~/.bashrc を編集し、以下を追記、保存する。

export PATH=[2で確認したパス]:/Users/[ユーザー名]/.nodebrew/current/bin:$PATH

コマンドを実行すると、エラーが出る。

再読み込みをする。

$ source .bashrc

(4)python コマンドで確認。

$ python -V
Python 3.9.4

この状態で slack-cleaner のコマンド(日本語がチャンネル名のもの)を打ってみたが変わらない。

(5)試しに slack-cleaner の後続版である slack-cleaner2 をインストールして使ってみることにした。

以下のコマンドでインストールする。

$ pip install slack-cleaner2

slack-cleaner2 で改めて日本語がチャンネル名の投稿を削除するコマンドを実行すると、無事削除できた。

なお、Python3 をデフォルトにしなくても、最初から slack-cleaner2 を使えばいいのではないかと思ったが、Python3 がデフォルトの状態でないと slack-cleaner2 のインストールが実行できないようだった。

これで、公開チャンネルも非公開チャンネルも対象とし、日付を指定でき、日本語がチャンネル名であっても削除できるようになった。

よく分からないのが、–quiet オプションを付けても slack-cleaner.[タイムスタンプ].log というファイルが生成されてしまうことだ。

参考:
MacでPython3デフォルトにする – あとらすの備忘録
https://kitigai.hatenablog.com/entry/2019/10/06/042527