require 'net/http' require 'uri' module Format class Zbozi def initialize @recode = false end def filename 'temp/'+self.class.name+'.xml' end def load_saved_file File.read filename end def load_file return load_saved_file if !$DOWNLOAD && File.file?(filename) data = ::Net::HTTP.get(URI.parse(@url)) File.write(filename, data) data end def parse_product_name(xml) xml.match(/(.*?)<\/PRODUCT>/m)[1]; end def parse_price(xml) xml.match(/(.*?)<\/PRICE_VAT>/m)[1]; end def parse_description(xml) xml.match(/(.*?)<\/DESCRIPTION>/m)[1]; end def parse_url(xml) xml.match(/(.*?)<\/URL>/m)[1]; end def parse_img(xml) xml.match(/(.*?)<\/IMGURL>/m)[1]; end def parse_item xml { :name => parse_product_name(xml), :price => parse_price(xml), :url => parse_url(xml), :img => parse_img(xml), :desc => parse_description(xml) } end def parse xml items = [] xml.scan(/.*?<\/SHOPITEM>/m) do |x| items << parse_item(x) end items end def products file = load_file if @recode convertor = Encoding::Converter.new(@recode[0], @recode[1]) file = convertor.convert file end parse file end end end