Rails Twitter机器人双帖

时间:2017-03-21 18:07:00

标签: ruby-on-rails ruby post twitter bots

我制作了一个很棒的Twitter机器人,使用本教程进行CrossFit训练: http://www.katelyndinkgrave.com/ruby/2016/01/31/civ-game-generator-twitterbot.html

然而,保持双重发布;如何在每次运行脚本时只发布一次?

模型是:

class Wod < ApplicationRecord

  def initialize
    @wod_type = WOD_TYPES.sample
    @time = time
    @rounds = rounds
    ...
  end

I've omitted code not relevant to the post...

  def print_wod
        if @wod_type == "EMOM"      
        "#{@wod_type} #{@time}:\n\n" +
        "#{@sets}\n\n" +
      "#{bbweight}" +
      "#{kbweight}" +
      "#{height}" +
      "#{slamweight}" +
      "#{wallweight}" +
      "\nFind more at: https://GymBull.com\n"
    else
        "#{@rounds}#{@wod_type}#{@time}:\n\n" +
      "#{@sets}\n\n" +
      "#{bbweight}" +
      "#{kbweight}" +
      "#{height}" +
      "#{slamweight}" +
      "#{wallweight}" +
      "\nFind more at: https://GymBull.com\n"
    end
  end

end

和bot脚本一起运行(rails r app / models / bot.rb):

require 'twitter'

client = Twitter::REST::Client.new do |config|
  config.consumer_key        = ENV["CONSUMER_KEY"]
  config.consumer_secret     = ENV["CONSUMER_SECRET"]
  config.access_token        = ENV["ACCESS_TOKEN"]
  config.access_token_secret = ENV["ACCESS_TOKEN_SECRET"]
end

wod = Wod.new
client.update(wod.print_wod)

提前谢谢

1 个答案:

答案 0 :(得分:0)

我问Heroku有什么事了;他们说,每次你推送到他们的服务器,它重新加载每个文件,所以它运行我的脚本。

解决方案只是制作一个rake文件并运行该命令而不是&#34; rails r&#34;