add database bootstrapper
This commit is contained in:
parent
7d75c736c4
commit
687db72911
57
lib/bootstrap-db.rb
Normal file
57
lib/bootstrap-db.rb
Normal file
|
@ -0,0 +1,57 @@
|
|||
#!/usr/bin/ruby
|
||||
|
||||
require 'discordrb'
|
||||
require 'set'
|
||||
require './auth'
|
||||
|
||||
FETCH_COUNT = 10
|
||||
FETCH_AMOUNT = 100 # must be <= 100
|
||||
|
||||
bot = Discordrb::Bot.new token: TOKEN
|
||||
|
||||
$messages = Set.new
|
||||
|
||||
bot.ready do |event|
|
||||
bot.update_status("dnd", "Bootstrapping Database", nil)
|
||||
|
||||
chan = bot.channel CHANNEL
|
||||
last_message = chan.history(1)[0].id
|
||||
i = 1
|
||||
for iter in 0..FETCH_COUNT do
|
||||
chan.history(FETCH_AMOUNT, last_message).each do |msg|
|
||||
print "Fetching messages (#{i}/#{FETCH_COUNT * FETCH_AMOUNT}) ...\r"
|
||||
$stdout.flush
|
||||
$messages << msg.content
|
||||
if msg.id < last_message then
|
||||
last_message = msg.id
|
||||
end
|
||||
sleep(0.072) # ratelimit
|
||||
i += 1
|
||||
end
|
||||
end
|
||||
|
||||
print "Fetching messages (#{i}/#{FETCH_COUNT * FETCH_AMOUNT}) ...\n"
|
||||
puts "Done! Shutting down..."
|
||||
save_db
|
||||
bot.stop
|
||||
end
|
||||
|
||||
def read_db
|
||||
msg_count = 0
|
||||
File.foreach("messages.db") do |entry|
|
||||
$messages << entry.chop
|
||||
msg_count += 1
|
||||
end
|
||||
puts "Read #{msg_count.to_s} messages from database"
|
||||
end
|
||||
|
||||
def save_db
|
||||
File.open("messages.db", "w") do |file|
|
||||
$messages.each do |msg|
|
||||
file.write msg + "\n"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
read_db
|
||||
bot.run
|
Loading…
Reference in a new issue