discord-r9k/lib/discord-r9k.rb
2021-10-13 21:07:25 +02:00

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