Sha256: 5aaa9612309e99e4107892a3c98bb313d0377715b25fe3e205bd996f0a18a7b9

Contents?: true

Size: 1.07 KB

Versions: 4

Compression:

Stored size: 1.07 KB

Contents

class Knj::Degulesider
	include Knj
	
	def initialize(args = {})
		@args = args
		@http = Http.new(
			"host" => "www.degulesider.dk"
		)
	end
	
	def search(sargs)
		url = "/search/#{Php.urlencode(sargs[:where])}/-/1/"
		
		html = @http.get(url)
		ret = []
		
		tbody_match = html["data"].match(/<tbody class='resultBody([\s\S]+?)<\/tbody>/)
		tbody_match[1].scan(/<tr id='res(\d+)'([\s\S]+?)<\/tr>/) do |match|
			res = {}
			
			if title_match = match[1].match(/<h2><a\s+class="fn".*>(.+)<\/a><\/h2>/)
				res[:name] = title_match[1]
			end
			
			if phone_match = match[1].match(/<div class="phones"><ul class="linkList"><li>(Mob.|)\s*([\d\s]+)<\/li><\/ul><\/div>/)
				if phone_match[1] == "Mob."
					res[:mobile] = phone_match[2].gsub(/\s+/, "")
				else
					raise "No such phone-mode: #{phone_match[1]}"
				end
			end
			
			if city_match = match[1].match(/'locality'>(.+)<\/span>/)
				res[:city] = city_match[1]
			end
			
			if category_match = match[1].match(/class='categoryLink'>(.+)<\/a>/)
				res[:category] = category_match[1]
			end
			
			ret << res
		end
		
		return ret
	end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
knjrbfw-0.0.8 lib/knj/degulesider.rb
knjrbfw-0.0.7 lib/knj/degulesider.rb
knjrbfw-0.0.4 lib/knj/degulesider.rb
knjrbfw-0.0.3 lib/knj/degulesider.rb