Skip to content

sawa-it/Slack-Communication-Visualization

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 

Repository files navigation

Slack-Communication-Visualization.

Slackのコミュニケーションを可視化する

スクリーンショット 2021-11-02 19 21 11

graphviz install

graphvizのインストール

brew install graphviz
pip install graphviz

Log preparation

ログの準備

下記からエクスポートしたログをフォルダ毎jsonsディレクトリに入れる

※ワークスペース名/ディレクトリ名/YYYY-MM-DD.json で出力されるためそのまま設置する場合はscv.pyのパスを置き換えること

https://mu-club.slack.com/services/export  (要管理者権限)

WorkingDirectory/
├ scv.py
├ jsons/
│ └ hoge/
│    └ hoge.json
│ └ huga/
│    └ huga.json
│
├ image/
  └ hoge
  └ hoge.svg

Channel settings you want to visualize

可視化したいチャンネルの設定

複数チャンネルある場合、描画及び生成に時間がかかるため19行目のパスを変更する

json_files = glob.glob("./logs//.json") # 特定のチャンネルを確認する時はここを変更する

※9行目については社員リスト(ID:氏名)を先に生成する必要があるためそのままにしておくこと

Execute

実行する

python scv.py

実行するとimageディレクトリに可視化対象としたチャンネルのdotファイルおよびsvgファイルが生成される スクリーンショット 2021-11-02 19 21 11

dotファイル
graph {
  "a" -- "b"
  "a" -- "c"
  "b" -- "c"
}

拡張子およびレイアウトについては21行目で変更できる

graph = Graph(format='svg', engine='sfdp')

参考:https://melborne.github.io/2013/04/02/graphviz-layouts/

すぐに結果を確認したい場合、コメントをとけば描画後ブラウザで確認ができる。 チャンネルが多いと描画が終わるたびに開かれるので注意

graph.view() # 画像を見たい時用

Remarks

備考

  • 以下の環境で確認済み

    Python 3.10.0 pyenv 2.1.0

  • 誰と誰が連絡を取っているかをメインに考えたため、@hereやグループメンション等については考慮していない
  • ログの仕様上発言がないユーザからは real_name が取得できないためユーザIDを氏名に置き換えている(グループメンションも同様)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages