LoginSignup
2
0

More than 3 years have passed since last update.

【755】curl, jqコマンドで今までに投稿したやじコメを一気に閲覧

Last updated at Posted at 2019-06-19

概要

タイトル通り。

何気にそういったのを手軽にみれたら面白いかなと思い、エモに浸る意味でも調べてみました。
ワンライナーでいけたのがミソ

手順

OSのターミナルを開いて以下コマンドを入力 ※予めjpコマンドをインストールする必要があります
(またmacOSの場合はawkではなくgawkをインストールして使用)

curl "https://api.7gogo.jp/web/v3/talks/<①>/comments?limit=1000000" | jq '.data[] | select(.user.name == "<②>") | .comment | .time, .body[].text' | awk 'NR%2!=0 {print strftime("%Y/%m/%d %H:%M:%S %a",$0)} NR%2==0 {gsub("\\\\n","\n",$0); print $0,"\n"}'

①対象となるトークルームのtalkId
②ご自身のユーザー名

トークルームのURLからtalkIdは確認できます。
https://7gogo.jp/<この部分がtalkId>

例:AKB48稲垣香織さんのトークルームの場合
https://7gogo.jp/inagaki-kaori // 指定するtalkIdは”inagaki-kaori”となります。

コマンド実行

実行環境(macOS)

macOS
$ curl "https://api.7gogo.jp/web/v3/talks/inagaki-kaori/comments?limit=1000000" | \
jq '.data[] | select(.user.name == "めいせい") | .comment | .time, .body[].text' | \
gawk 'NR%2!=0 {print strftime("%Y/%m/%d %H:%M:%S %a",$0)} NR%2==0 {gsub("\\\\n","\n",$0); print $0,"\n"}'

表示は新着順(ルームによっては表示されるまでにそこそこ時間を要します)
 2019-06-18 22.16.31.png
最初の頃はなかなかのおじさんぷりを発揮してるなぁ、、(˘ω˘)  2019-06-18 22.18.05.png

コマンド処理の解説

まずトークルームが開設されてから投稿された全やじコメ(全ユーザー分)のJSONデータを取得。

curl "https://api.7gogo.jp/web/v3/talks/inagaki-kaori/comments?limit=1000000" |

&limit=1000000
limitパラメータは取得件数の最大値となります。
limitパラメータを指定しない場合、100件程しか取得されません。
全てのやじコメを取得するには、やじコメの総件数以上の値を指定する必要があるため1000000としています。
▶やじコメの総件数を確認する方法

指定したユーザー名のやじコメとそれに紐づく投稿時間をJSONデータから抽出。

jq '.data[] | select(.user.name == "めいせい") | .comment | .time, .body[].text' |

抽出されたデータを加工して表示。
・投稿時間をunixtimeからシステム標準時に変更
・コメントの文字列に含まれている改行のエスケープシーケンス[\n]を実際の改行として出力

gawk 'NR%2!=0 {print strftime("%Y/%m/%d %H:%M:%S %a",$0)} NR%2==0 {gsub("\\\\n","\n",$0); print $0,"\n"}'

やじコメの総件数を確認する方法

以下のURLを押下し最初に表示されるcommentIdの値がやじコメの総件数です。
https://api.7gogo.jp/web/v3/talks/inagaki-kaori/comments?talkId=inagaki-kaori
(talkIdの値はトークルームに合わせて適宜変更して下さい)
 2019-06-16 19.35.41.png

commentIdは一つのやじコメに紐づくユニークIDでコメントが投稿される度、インクリメント採番される値のようです。よって最新のcommentId=やじコメの総件数となり、この画像の場合は188811件となります。

上記の手順を踏まなくとも、とりあえずlimitに1000000ぐらい指定すれば大概のルームでは問題ないのかなと思われます(希望的観測)

最後に

とりま、、jqカッケーすね

参考:
https://qiita.com/dev100kg/items/f2d01bfd6b0880f93d58
https://www.setouchino.cloud/blogs/19

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0