lib/ayadn/databases.rb in ayadn-3.0 vs lib/ayadn/databases.rb in ayadn-4.0

- old
+ new

@@ -2,11 +2,11 @@ module Ayadn class Databases def self.open_databases - @sqlfile = "#{Settings.config[:paths][:db]}/ayadn.sqlite" + @sqlfile = "#{Settings.config.paths.db}/ayadn.sqlite" @sql = Amalgalite::Database.new(@sqlfile) @accounts = Amalgalite::Database.new(Dir.home + "/ayadn/accounts.sqlite") end def self.create_tables(user) @@ -176,24 +176,10 @@ exit end end end - # def self.import_blacklist(blacklist) - # new_list = self.init blacklist - # new_list.each {|name,type| @blacklist[name] = type} - # new_list.close - # end - # def self.convert_blacklist - # dummy = {} - # @blacklist.each {|v,k| dummy[v.downcase] = k} - # @blacklist.clear - # dummy.each {|v,k| @blacklist[v] = k} - # end - - - def self.active_account(acc) crashes = 0 begin acc.execute("SELECT * FROM Accounts WHERE active=1")[0] rescue Amalgalite::SQLite3::Error => e @@ -626,16 +612,18 @@ crashes = 0 begin @sql.execute("DELETE FROM TLIndex") @sql.transaction do |db_in_transaction| posts.each do |k, v| - insert_data = {} - insert_data[":post_id"] = v[:id] - insert_data[":count"] = v[:count] - insert_data[":content"] = v.to_json.to_s - db_in_transaction.prepare("INSERT INTO TLIndex(count, post_id, content) VALUES(:count, :post_id, :content);") do |insert| - insert.execute(insert_data) + if !v.blank? + insert_data = {} + insert_data[":post_id"] = v[:id] + insert_data[":count"] = v[:count] + insert_data[":content"] = v.to_json.to_s + db_in_transaction.prepare("INSERT INTO TLIndex(count, post_id, content) VALUES(:count, :post_id, :content);") do |insert| + insert.execute(insert_data) + end end end end rescue Amalgalite::SQLite3::Error => e if crashes < 2 @@ -869,45 +857,45 @@ def self.has_new?(stream, title) crashes = 0 begin res = @sql.execute("SELECT post_id FROM Pagination WHERE name=(?)", [title]).flatten[0] - stream['meta']['max_id'].to_i > res.to_i + stream.meta.max_id.to_i > res.to_i rescue Amalgalite::SQLite3::Error => e if crashes < 2 crashes += 1 sleep(0.01) retry else puts "ERROR in Databases" puts caller puts e - puts ['has_new?', stream, title].inspect + puts ['has_new?', stream.inspect, title].inspect exit end end end def self.save_max_id(stream, name = 'unknown') crashes = 0 begin - if stream['meta']['marker'].nil? + if stream.meta.marker.nil? key = name else - key = stream['meta']['marker']['name'] + key = stream.meta.marker.name end @sql.execute("DELETE FROM Pagination WHERE name=(?)", [key]) - @sql.execute("INSERT INTO Pagination(name, post_id) VALUES(?, ?);", [key, stream['meta']['max_id'].to_i]) + @sql.execute("INSERT INTO Pagination(name, post_id) VALUES(?, ?);", [key, stream.meta.max_id.to_i]) rescue Amalgalite::SQLite3::Error => e if crashes < 2 crashes += 1 sleep(0.01) retry else puts "ERROR in Databases" puts caller puts e - puts ['save_max_id', stream, name].inspect + puts ['save_max_id', stream.inspect, name].inspect exit end end end