module Eesitemap
Constants
- VERSION
Public Class Methods
entry(site, uriprefix, row)
click to toggle source
# File lib/eesitemap.rb, line 61 def self.entry(site, uriprefix, row) <<-eos <url> <loc>#{site}#{uriprefix}#{row[:url_title]}</loc> <lastmod>#{Time.now.strftime('%Y-%m-%d')}</lastmod> <changefreq>weekly</changefreq> <priority>0.5</priority> </url> eos end
generate(cfgfilename)
click to toggle source
# File lib/eesitemap.rb, line 10 def self.generate(cfgfilename) cfg = YAML.load(IO.read(cfgfilename)) params = { adapter: cfg['db']['adapter'], host: cfg['db']['host'], database: cfg['db']['database'], user: cfg['db']['user'], password: cfg['db']['password'] } db = Sequel.connect(params) puts <<-eos <?xml version="1.0" encoding="UTF-8"?> <urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1" xmlns:geo="http://www.google.com/geo/schemas/sitemap/1.0" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:mobile="http://www.google.com/schemas/sitemap-mobile/1.0" xmlns:pagemap="http://www.google.com/schemas/sitemap-pagemap/1.0" xmlns:xhtml="http://www.w3.org/1999/xhtml" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"> eos puts entry(cfg['site']['url'], "", {url_title: ""}) cfg['mapnodes'].each do |name, node| db["select ct.url_title from exp_structure s, exp_channel_titles ct where s.parent_id = ? and s.entry_id = ct.entry_id", node['parentid']].each do |row| puts entry(cfg['site']['url'], node['uriprefix'], row) end end db["select ct.url_title from exp_channel_titles ct, exp_channels c where ct.channel_id=c.channel_id and c.channel_name='Branches'"].each do |row| puts entry(cfg['site']['url'], '/branches/', row) end [145, 155, 165, 175, 185, 195, 205, 215, 225, 235, 245, 255, 265, 275, 285, 295, 305, 315, 325, 335, 345, 355].each do |width| [25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80].each do |profile| [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24].each do |wheel_size| puts entry(cfg['site']['url'], "/search/", {url_title: "#{width}-#{profile}-r#{wheel_size}"}) end end end manufacturers_list(cfg).each do |manufacturer| puts entry(cfg['site']['url'], "/tyres/brand/", {url_title: manufacturer}) patterns_list(cfg, manufacturer).each do |pattern| puts entry(cfg['site']['url'], "/tyres/brand/#{manufacturer}/", {url_title: pattern['permalink']}) skus_list(cfg, pattern['permalink']).each do |sku| puts entry(cfg['site']['url'], "/tyres/brand/#{manufacturer}/#{pattern['permalink']}/", {url_title: sku['tyre_url']}) end end break if ENV['DEBUG_EESITEMAP'] end puts "</urlset>" end
manufacturers_list(cfg)
click to toggle source
# File lib/eesitemap.rb, line 72 def self.manufacturers_list(cfg) response = RestClient.get(cfg['site']['api'] + "/manufacturers/" + cfg['site']['code'] + ".json") if response.code == 200 JSON.parse(response.body).map{|o| o['name'].gsub('','') }.uniq else [] end rescue [] end
patterns_list(cfg, manufacturer)
click to toggle source
# File lib/eesitemap.rb, line 83 def self.patterns_list(cfg, manufacturer) response = RestClient.get(cfg['site']['api'] + "/manufacturers/" + cfg['site']['code'] + "/" + URI::escape(manufacturer) + ".json") if response.code == 200 JSON.parse(response.body)['products'] else [] end rescue [] end
skus_list(cfg, permalink)
click to toggle source
# File lib/eesitemap.rb, line 94 def self.skus_list(cfg, permalink) response = RestClient.get(cfg['site']['api'] + "/products/" + cfg['site']['code'] + "/" + URI::escape(permalink) + ".json") if response.code == 200 JSON.parse(response.body)['variants'] else [] end rescue [] end