8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
# File 'lib/vehicle_data_mn.rb', line 8
def self.read(plate, format = nil)
plate = plate.to_s.gsub(/\s+/, "")
plate_num = plate[0..3].rjust(4, "0")
plate_ser = plate[4..6]
url = 'https://www.transdep.mn/homepage/i_result.php?search_vehicle=Y&byPlateno='+CGI.escape(plate_num + plate_ser)
begin
retries ||= 0
doc = Nokogiri::HTML(open(url))
rescue
sleep(15)
retry if (retries += 1) < 3
end
if doc.xpath('//center/font/text()').to_s.strip == 'Тохирох мэдээлэл олдсонгүй'
result = {
:result => nil
}
else
vin = doc.xpath('//table/tr[2]/td[2]/text()').to_s.strip
maker = doc.xpath('//table/tr[3]/td[2]/text()').to_s.strip
model = doc.xpath('//table/tr[4]/td[2]/text()').to_s.strip
reinspect = doc.xpath('//table/tr[5]/td[2]/text()').to_s.strip
result = {
:result => {
:plate_ser => plate_ser,
:plate_num => plate_num,
:vin => vin,
:maker => maker,
:model => model,
:next_inspection => reinspect.empty? ? 'NULL' : "'"+Date.parse(reinspect).to_s+"'"
}
}
end
unless format.to_s.downcase == 'json'
return result
else
return result.to_json
end
end
|