忍者ブログ

Bequeath the SUN

つくって置いとくん棚

「里々」と「Queryfeed」と「httpc7」を使ってユーザのTwitterアカウントを見る

bro.Mにつけた、ユーザのTwitterの投稿を見る機能について書きます。
「里々」と「Queryfeed」と「httpc7」を使って、
ユーザのTwitterアカウントを見るスクリプトです。
 
ココこうすればもっとスマートになるよ、など教えて頂けたら嬉しいです。
ユーザのTwitterも見る 大学生弟ゴーストbro.M もよろしくお願いします~。
#伺か #SSP #里々

伺か用ゴースト 「bro.M」 をダウンロード ]

●里々って?
ご存知 里々さま
URL: http://soliton.sub.jp/satori/index.php?FrontPage
 
●Queryfeedって?
Twitterのつぶやきや検索結果などをRSSで取得することができるWebサービス
プロユーザーとやらになればInstagramも見れる
URL: https://queryfeed.net/
 
●httpc7って?
Webページから情報を切り出すSAORI(作者:櫛ヶ浜やぎさん)
URL: http://ukgk.s34.xrea.com/poskoma/#content_1_13
 
●ざっくり構造
①RSSから最新投稿の日時部分を取得してきて新しい投稿の有無をチェック
②新しい投稿があれば内容を取得
③投稿内容に反応するワードとして用意した単語群(@Twitter投稿反応ワード)と照合
④投稿内容から反応するワードが検出されたら、対応するトークを「$次のトーク」にセット
 
●使い方
①設定とかでユーザから「$ユーザTwitterアカウント」を入力してもらう
 (@を除くIDを入力/初期値(未入力時)は「未設定」を入れておく)
②「@Twitter投稿反応ワード」に反応させたいワードを羅列
③反応させたいワードごとに「*Twitter見たよトーク_○○」を書く
④文章の走査とトークのセットを実行するトーク「*ゴーストがTwitterを見る」を
 呼び出したい場所から呼ぶ(*OnMinuteChange など)
 
●注意点
・Queryfeedを無料で使う上で取得できるのは、3時間ごとに10ツイートまで
・なので毎分とか実行しても意味がない
・反応ワードを格納した単語群が増えるほど走査処理が重くなっていく
 
●セーブデータに記載しておく初期値
$ユーザTwitterアカウント 未設定
$前回取得したTwitter最新投稿の日時 0

 
●処理部分のスクリプト
*ゴーストがTwitterを見る (ユーザTwitterアカウント)!=未設定
(when,(今回取得したTwitter最新投稿の日時)!=(前回取得したTwitter最新投稿の日時),
(call,Twitterの最新投稿から反応ワードを走査してトークをセット,(今回取得したTwitter最新投稿の内容))
(set,前回取得したTwitter最新投稿の日時,(今回取得したTwitter最新投稿の日時))
@Twitter投稿取得用RSS
https://queryfeed.net/tw?q=from%3A(ユーザTwitterアカウント)
@今回取得したTwitter最新投稿の日時
(httpc,(Twitter投稿取得用RSS),<pubDate>,</pubDate>)
@今回取得したTwitter最新投稿の内容
(httpc,(Twitter投稿取得用RSS),φ="0">,</p>)
@Twitterの最新投稿から反応ワードを走査してトークをセット
(set,Twitter走査で検出したワード,(call,単語群「A1」内のワードを文章「A0」から検出,(A0),Twitter投稿反応ワード))φ
(when,(Twitter走査で検出したワード)!=0,
#文章から単語を走査→検出された単語のトークを次トークにセット
(set,次のトーク,Twitter見たよトーク_(Twitter走査で検出したワード))
,#ワードが検出されなかったら何もしない
)(set,Twitter走査で検出したワード,)
@単語群「A1」内のワードを文章「A0」から検出
(set,走査文章,(A0))(set,検出ワード_返り値,0)φ
(set,単語群「(A1)」の重複回避,有効,起動中)φ
(set,検出ループ回数,(単語群「(A1)」の数))φ
(while,(検出ループ回数),
(set,検出するワード,((A1)))
(when,(count,(走査文章),(検出するワード)),
(set,検出ワード_返り値,(検出するワード))(set,検出ループ回数,1)
,(set,検出ワード_返り値,0)
)(set,検出ループ回数,(calc,(検出ループ回数)-1))
)(検出ワード_返り値)φ
(set,検出ループ回数,)(set,検出ワード_返り値,)φ
(set,検出するワード,)(set,走査文章,)
 
●トーク部分のスクリプト(サンプル)
@Twitter投稿反応ワード
更新
腹痛
ミーク
 
*Twitter見たよトーク_更新
:そういえばツイッター、見たよ。
更新作業、お疲れさま!
 
*Twitter見たよトーク_腹痛
:姉ちゃん、お腹痛かったのはもう平気?
 
*Twitter見たよトーク_ミーク
:そういえば、ツイッターで俺の話してなかった?
 
●こんな感じのデバッグがあると便利
*SNS見るやつのデバッグメニュー
:\_q
<<SNS見るやつのデバッグメニュー>>
前回取得したTwitter最新投稿の日時φ:(前回取得したTwitter最新投稿の日時)
  ☆\q[↑をリセット,SNS見るやつのデバッグ_前回取得したTwitter最新投稿の日時]
☆\q[走査処理を実行,ゴーストがTwitterを見る]
\_l[225,335]\q[×閉じる,閉じる]
\_q
 
*SNS見るやつのデバッグ_前回取得したTwitter最新投稿の日時
(set,前回取得したTwitter最新投稿の日時,0)
>SNS見るやつのデバッグメニュー
 
PR