我制作了一个很棒的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)
提前谢谢
答案 0 :(得分:0)
我问Heroku有什么事了;他们说,每次你推送到他们的服务器,它重新加载每个文件,所以它运行我的脚本。
解决方案只是制作一个rake文件并运行该命令而不是&#34; rails r&#34;