[Slack]feed listコマンドの出力テキストをyamlに変換する

2023.02.10

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

  • t_o_dと申します。
  • 効率的な情報収集のため、SlackのRSSフィード機能のfeedコマンドを活用しています。
  • 今回は一覧参照の/feed listコマンドの出力テキストをyamlに変換する方法を記録いたします。

環境

  • mac OS Ventura 13.1

結果

  • /feed listで出力される対象のテキスト例は以下とし、格納するファイル名はfeed.txtとします。
    • ※出力内容は登録されている各RSSによって異なります。
ID: 123456 - タイトル: xxxさんのフィード
URL: https://xxxx.xxx/xxx/feed
ID: 456789 - タイトル: xxxさんのフィード
URL: https://xxxx.xxx/xxx/feed
ID: 789123 - タイトル: xxxさんのフィード
URL: https://xxxx.xxx/xxx/feed
  • ファイル作成後、以下のスクリプトをターミナルに貼り付けて実行すると、「情報が整理されてyamlに変換されたフィード情報」を出力します。
cat feed.txt | awk -F ': ' '
/^ID/{
  gsub("[^0-9]","",$2)
  gsub("さん.+","",$3)
  print "- id:", $2
  print "  author:", $3
}
/^URL/{
  print "  url:", $2
}
'
  • 実行後、以下のような内容で出力されることを確認します。
- id: 123456
  author: xxx
  url: https://xxxx.xxx/xxx/feed
- id: 456789
  author: xxx
  url: https://xxxx.xxx/xxx/feed
- id: 789123
  author: xxx
  url: https://xxxx.xxx/xxx/feed
  • 以上です。

補足

  • 以下のようにrubyかyqを利用すれば、簡単にyamlをjsonに変換することが可能です。
# rubyの場合
cat feed.yaml | ruby -ryaml -rjson -e 'puts JSON.pretty_generate(YAML.load(STDIN))'

# yqの場合
cat feed.yaml | yq -o=json

まとめ

  • Slackのフィード機能で登録されている情報はデータとしても有益であるため、適切に活用していこうと思います。

参考

アノテーション株式会社について

アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社WEBサイトをご覧ください。