Commit 931465fe by Tô Ngọc Ánh

fix no directory, refactor code in csv.rb

parent c99884c7
Pipeline #726 canceled with stages
in 0 seconds
...@@ -9,10 +9,8 @@ class CsvImport ...@@ -9,10 +9,8 @@ class CsvImport
end end
def import_job(direction) def import_job(direction)
index = 0 CSV.foreach("#{direction}/jobs.csv", headers: true).with_index(2) do |row, index|
CSV.foreach("#{direction}/jobs.csv", headers: true) do |row| next if row['category'].blank? || row['category'].match(/^[0-9]+$/).present?
index += 1
next if integer?(row['category'])
title = row['name'].strip title = row['name'].strip
company = Company.find_or_create_by(name: row['company name']) do |c| company = Company.find_or_create_by(name: row['company name']) do |c|
...@@ -37,15 +35,9 @@ class CsvImport ...@@ -37,15 +35,9 @@ class CsvImport
job.description = description job.description = description
end end
puts title puts title
end
rescue StandardError => e rescue StandardError => e
puts e puts e
@logger.error "Job #{index}: #{e.message}" @logger.error "Job #{index}: #{e.message}"
end end
private
def integer?(str)
str.to_i.to_s == str
end end
end end
...@@ -6,15 +6,16 @@ namespace :import_data do ...@@ -6,15 +6,16 @@ namespace :import_data do
logger ||= Logger.new('./log/import_data.log') logger ||= Logger.new('./log/import_data.log')
desc 'crawl industries locations jobs' desc 'crawl industries locations jobs'
task :crawler, %i[page link] => [:environment] do |_, args| task :crawler, %i[page_number link] => [:environment] do |_, args|
args.with_defaults(page: 1, link: 'https://careerbuilder.vn/viec-lam/tat-ca-viec-lam-vi.html') args.with_defaults(page_number: 1, link: 'https://careerbuilder.vn/viec-lam/tat-ca-viec-lam-vi.html')
crawler = Crawler.new(logger) crawler = Crawler.new(logger)
crawler.crawl_data(args[:page].to_i, args[:link]) crawler.crawl_data(args[:page_number].to_i, args[:link])
end end
desc 'Download csv file from FTP and import' desc 'Download csv file from FTP and import'
task csv: :environment do task csv: :environment do
destination_dir = './lib/data' destination_dir = './lib/data'
Dir.mkdir destination_dir unless File.exists?(destination_dir)
ftp = Ftp.new('192.168.1.156', 'training', 'training') ftp = Ftp.new('192.168.1.156', 'training', 'training')
ftp.download_file('jobs.zip', destination_dir) ftp.download_file('jobs.zip', destination_dir)
ftp.close ftp.close
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment