【755】curl, jqコマンドで今までに投稿したやじコメを一気に閲覧
概要
タイトル通り。
何気にそういったのを手軽にみれたら面白いかなと思い、エモに浸る意味でも調べてみました。
ワンライナーでいけたのがミソ
手順
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)
$ 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"}'
表示は新着順(ルームによっては表示されるまでにそこそこ時間を要します)
最初の頃はなかなかのおじさんぷりを発揮してるなぁ、、(˘ω˘)
コマンド処理の解説
まずトークルームが開設されてから投稿された全やじコメ(全ユーザー分)の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の値はトークルームに合わせて適宜変更して下さい)
commentIdは一つのやじコメに紐づくユニークIDでコメントが投稿される度、インクリメント採番される値のようです。よって最新のcommentId=やじコメの総件数となり、この画像の場合は188811件となります。
上記の手順を踏まなくとも、とりあえずlimitに1000000ぐらい指定すれば大概のルームでは問題ないのかなと思われます(希望的観測)
最後に
とりま、、jqカッケーすね
参考:
https://qiita.com/dev100kg/items/f2d01bfd6b0880f93d58
https://www.setouchino.cloud/blogs/19
Author And Source
この問題について(【755】curl, jqコマンドで今までに投稿したやじコメを一気に閲覧), 我々は、より多くの情報をここで見つけました https://qiita.com/meisei315/items/35085846f742762c0ad0著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .