くりにっき

フルスタックキュアエンジニアです

TwittodonというTwitterからMastodonに流すボットを作った

ここ最近作ってた便利ツールの共有です

Twittodonとは?

Twitterからの任意のツイートをMastodonに流すためのボットです

github.com

ちなみにTwittodon(ついっとどん)とはTwitter + Mastodonの造語です

サンプル

f:id:sue445:20170601004222p:plain

https://precure.ml/@sue445/85064

  • Twitterの検索クエリにマッチしたツイートをMastodonにトゥートする
  • ツイートに画像が含まれていればMastodonにもアップロードして画像付きのトゥートにする
  • トゥートに元ツイートへのリンクを付与
  • ツイートに短縮URL(t.co)が含まれていた場合、短縮前の元URLの状態でトゥートに含める

といったことをやっています

使い方

TwitterMastodonAPIを使うためのトークンを取得する部分は手動ですが*1Heroku のアカウントがあればその後のサーバへのデプロイはDeploy to Herokuボタンを使ってワンクリックでデプロイできます。

f:id:sue445:20170601005523p:plain

Twitterの検索条件はHeroku Schedulerのジョブに渡せます。

f:id:sue445:20170601005947p:plain

詳しくは https://github.com/sue445/twittodon/blob/master/GETTING_STARTED.md を読んで下さい

Twitter -> Mastodon トゥート同期アプリ」との違い

似たようなサービスで Twitter -> Mastodon トゥート同期アプリ というのがあります。

sync.twi2mstdn.space

Twitter -> Mastodon トゥート同期アプリ」だと連携したTwitterアカウントのツイートを全てMastodonに送るようですが、TwittodonだとMastodonに送るツイートを検索条件で指定することができます。

検索APIを使っているので、自分以外のツイートもMastodonに送れます。

イメージ的にはIFTTTの「Post to Slack when a tweet matches your search term(Twitterの検索条件にマッチしたツイートをSlackに送るアプレット)」のMastodon版を目指して作っています。

ifttt.com

最後に

最初のトークンの取得が手動なのが面倒かもしれませんが*2、ワンクリックでデプロイできるようにしたりTwitterの画像をMastodonに再アップロードなどいろいろ作り込んでいて便利なので是非ご利用ください。

また、インスタンスによってはボット利用が禁止されたり制限されてる場合もあるので節度をもって使うようにしてください。

*1:GETTING_STARTEDに手順は全部書いてる

*2:その手順を簡略化するためのアプリの作成もなくはなかったんですが、これ以上簡単にしすぎるとボットが作られ放題でそれはそれで治安が悪くなりそうな予感があったので、最低限トークンの取得くらい手順書見ながら自力でどうにかできる人だけに使ってほしいという思いでふるいにかけるために現状の仕様にしています