創作関係のハッシュタグをブーストするBotをつくってみた

はじめに

 

この記事は Mastodon Advent Calendar 2018 の16日目の記事です

 

qiita.com

内容は、Mastodonで創作関係のハッシュタグを拡散してくれるBotを作ったときのことになります

 

作ったもの

gamelinks007.net

 

#創作 などの創作系ハッシュタグや #pixiv などのハッシュタグハッシュタグタイムラインから検知してブーストしてくれるBotです

 

Pawooからのイラストなどが良くブーストされている感じですねー

 

ソースコードはこちらになります

 

github.com

 

やったこと

 

 

Gemfileに

gem 'mastodon-api', require: 'mastodon'

gem 'omniauth-mastodon'

gem 'omniauth'

gem 'dotenv-rails'

を追加して、bundle install

 

あと、環境変数として

MASTODON_URL=<インスタンスのURL>

ACCESS_TOKEN=<インスタンスで取得したアクセストークン> 

 をセットした

 

最後に、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 を使って定期的にタスク処理を走らせてますねー

 

jp.heroku.com

 

つくってみて

意外と簡単にできたかなとは思う

 

とはいえ、ハッシュタグの登録画面とか作ってないので手抜き工事もいいところ……

今後は、そのあたりも実装していこうかなと思う

 

ちなみに、Creative BoosterのおかげでCreatodonの連合タイムラインは結構流れが速くなったかな