retrobot の最近のアップデートについて(v0.2.0-v0.3.1)

1年前の自分と暮らす で紹介した retrobot という twitter bot ツールについてですが、記事を読んだ何人かの方が retrobot を運用してくださっているようです。ありがとうございます。

その後、ユーザの皆様からご要望を受けていくつかの改善を行いましたので、今回はその紹介です。

主なバージョンアップ内容

v0.2.0

@sora_h さんによって大幅なリファクタリングが行われました。

  • gem 化されました。
  • いままでは .env による環境変数やコマンドライン引数で挙動を制御していましたが、 YAML 形式の設定ファイルで指定するようになりました。詳細は後述します。

Revolution (gemify, add config yml) by sorah · Pull Request #5 · mirakui/retrobot

v0.2.1-v0.3.1

retweet オプション

リツイート機能がオプションになり、デフォルトではリツイートしなくなりました。(retweet オプション)

add_in_reply_to_url オプション

retrobot は元ツイートがメンションだった場合に @ を外して相手に通知が飛ばないようにしています。これによって1年前のどんなツイートに対しての返信だったのかが分からないという問題がありました。 v0.3.0 では、返信先のURLをツイートの末尾につけられるオプションを追加しました(add_in_reply_to_url オプション)。これを有効にすれば、1年前の文脈を思い出すことができます。

↓1年後 なお、このオプションのアイディアおよび実装は @studio3104 さんによるものです。

Add in reply to URL to tweet text by studio3104 · Pull Request #7 · mirakui/retrobot

suppress_pattern オプション

ツイートもしくはリツイートする文字列が suppress_pattern オプションで指定した正規表現にマッチした場合、ツイートおよびリツイートをしないようになりました。

この正規表現は、 @ を取り除く前の文字列に対してマッチします。そのため、たとえば以下のように指定すると、元ツイートがメンションだった場合にツイートしないという挙動になります。

suppress_pattern: '@\w+'

設定ファイル

デフォルトの設定ファイルは retrobot.example.yml としてリポジトリに含まれています。これを retrobot.yml という名前にコピーすると、起動時に読み込まれます。

https://github.com/mirakui/retrobot/blob/master/retrobot.example.yml

v0.3.1 時点でのデフォルト設定は以下のとおりです。

tweets_csv: tweets/tweets.csv
consumer_key: your_consumer_key
consumer_secret: your_consumer_secret
access_token: your_access_token
access_secret: your_access_secret
retro_days: 365
retweet: false
debug: false
dryrun: false
add_in_reply_to_url: false
suppress_pattern: nil

おわりに

返信がおそくなるかもしれませんが、ご要望や pull request には目を通しております。今後もお気軽にご意見等をいただければと思います。