You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
913 B
34 lines
913 B
#!/bin/env ruby |
|
|
|
require 'discordrb' |
|
require 'rufus-scheduler' |
|
|
|
# fetches a random quote from quotes |
|
def random_quote(quotes) |
|
quote = "**Quote of the Day**" |
|
quote << "```" |
|
quotes.sample.split("\n")[2..].each { | line | quote << line.delete("^") + "\n" } |
|
quote << "```" |
|
end |
|
|
|
token = File.read("./token").strip |
|
bot = Discordrb::Bot.new token: token |
|
quotes = File.read("Game Files/blurbsx.txt").split("##") |
|
quotes.delete_at(0) # Remove empty first item |
|
scheduler = Rufus::Scheduler.new |
|
start_time = Rufus::Scheduler.parse('12:30') # what time of day the message should send |
|
# start tomorrow if start_time has passed |
|
start_time += Rufus::Scheduler.parse('1d') if start_time < Time.now |
|
|
|
scheduler.every '1d', first_at: start_time do |
|
bot.send_message(852541842511495210, random_quote(quotes)) |
|
end |
|
|
|
bot.message(with_text: 'Ping!') do |event| |
|
|
|
event.respond random_quote(quotes) |
|
pp bot |
|
end |
|
|
|
bot.run |
|
|
|
|