58 lines
999 B
Ruby
58 lines
999 B
Ruby
#!/usr/bin/ruby
|
|
|
|
require 'discordrb'
|
|
require 'set'
|
|
require './auth'
|
|
|
|
bot = Discordrb::Bot.new token: TOKEN
|
|
|
|
$messages = Set.new
|
|
|
|
bot.ready do |event|
|
|
chan = bot.channel CHANNEL
|
|
bot.online
|
|
bot.watching = "Messages in #" + chan.name
|
|
end
|
|
|
|
bot.message do |event|
|
|
if CHANNELS.include? event.channel.id then
|
|
if $messages.include? event.content then
|
|
msg = event.message
|
|
if msg.attachments.length.zero? then
|
|
msg.delete "r9k"
|
|
end
|
|
else
|
|
$messages << event.content
|
|
end
|
|
end
|
|
end
|
|
|
|
def init_messages
|
|
msg_count = 0
|
|
File.foreach("messages.db") do |entry|
|
|
$messages << entry.chop.gsub("\v", "\n")
|
|
msg_count += 1
|
|
end
|
|
puts "Read #{msg_count.to_s} messages from database"
|
|
end
|
|
|
|
def save_messages
|
|
File.open("messages.db", "w") do |file|
|
|
$messages.each do |msg|
|
|
file.write msg.gsub("\n", "\v") + "\n"
|
|
end
|
|
end
|
|
end
|
|
|
|
Signal.trap("INT") do
|
|
save_messages
|
|
exit
|
|
end
|
|
Signal.trap("TERM") do
|
|
save_messages
|
|
exit
|
|
end
|
|
|
|
init_messages
|
|
bot.run
|