pgaspar/oqfc

View on GitHub
tasks/restore.rake

Summary

Maintainability
Test Coverage
# frozen_string_literal: true

task :restore do
  txt = open('tasks/oqfc.html').read
  regex = /"\/entry\/(\d+)">([^<]+)<.*\n.*\n.*\n.*<small>.+(\d\d\/\d\d\/\d{4}).*\n.*\n.*\n.*\n.+Baseado em (\d{1,3}) votos.">(-?\d{1,3})/i

  matches = txt.scan(regex)

  matches.each do |id_str, text, date_str, total_str, score_str|
    total_votes = total_str.to_i
    score = score_str.to_i
    down_votes = (total_votes - score) / 2
    up_votes = (total_votes - down_votes)
    date = DateTime.strptime(date_str, '%d/%m/%Y')

    puts id_str
    # puts date.strftime("%d/%m/%Y")

    res = Entry.create(id: id_str,
                       text: text,
                       created_at: date,
                       vote_count: total_votes,
                       up_vote_count: up_votes,
                       down_vote_count: down_votes,
                       vote_score: score)

    puts ">> #{res.errors.full_messages}" unless res
  end

  puts 'DONE'
end