はじめに
この記事は Mastodon Advent Calendar 2018 の16日目の記事です
内容は、Mastodonで創作関係のハッシュタグを拡散してくれるBotを作ったときのことになります
作ったもの
#創作 などの創作系ハッシュタグや #pixiv などのハッシュタグをハッシュタグタイムラインから検知してブーストしてくれるBotです
Pawooからのイラストなどが良くブーストされている感じですねー
ソースコードはこちらになります
やったこと
Gemfileに
gem 'mastodon-api', require: 'mastodon'
gem 'omniauth-mastodon'
gem 'omniauth'
gem 'dotenv-rails'
を追加して、bundle install
あと、環境変数として
をセットした
最後に、lib/tasks/scheduler.rake を作成し、
task :toot => :environment do
client = Mastodon::REST::Client.new(base_url: ENV["MASTODON_URL"], bearer_token: ENV["ACCESS_TOKEN"])
@keywords = Keyword.all#指定のハッシュタグを含むTootのBoost
@keywords.each do |keyword|client.hashtag_timeline(keyword.key, :limit => 5000).each do |toot|
if !toot.reblogged? then
response = client.reblog(toot.id)
response = client.favourite(toot.id)
end
end
end
end
こんな感じにコードを追加
あとは、Keywordモデルを作成して、そこへブーストしたいタグを登録していくだけ(Railsのコンソール使ってやってる)
運用にはHerokuを使用し、Heroku Scheduler を使って定期的にタスク処理を走らせてますねー
つくってみて
意外と簡単にできたかなとは思う
とはいえ、ハッシュタグの登録画面とか作ってないので手抜き工事もいいところ……
今後は、そのあたりも実装していこうかなと思う
ちなみに、Creative BoosterのおかげでCreatodonの連合タイムラインは結構流れが速くなったかな