|
- require 'scraperwiki'
- require 'petrify'
-
- class Site
- def self.generate
- # Home page
- summary = ScraperWiki.select("
- authority_name, status, decision, appeal_status, appeal_decision, count(*) as applications
- from applications
- group by authority_name, status, decision, appeal_status, appeal_decision
- ")
-
- q = ScraperWiki.select("
- scraped_at
- from applications
- order by scraped_at desc
- limit 1")
-
- last_updated = DateTime.parse(q[0]['scraped_at'])
-
- path = '.'
- Petrify.page(path, 'index', { summary: summary, last_updated: last_updated })
- Petrify.csv(path, 'inlink-summary', summary)
-
- # New applications page
- apps = ScraperWiki.select("* from `applications` order by date_received desc limit 60")
- Petrify.page('new-applications', 'new-applications', { apps: apps })
-
- # Latest decisions page
- apps = ScraperWiki.select("* from `applications` order by date_decision desc limit 60")
- path = 'decisions'
- Petrify.page(path, 'decisions', { apps: apps })
- Petrify.csv(path, 'inlink-decisions', apps)
-
- # Appeals page
- summary = ScraperWiki.select("
- authority_name, appeal_status, appeal_decision, count(*) as applications
- from applications
- where appeal_status is not null
- and appeal_status != 'Unknown'
- group by authority_name, appeal_status, appeal_decision
- ")
-
- apps = ScraperWiki.select("
- * from applications
- where appeal_status is not null
- and appeal_status != 'Unknown'
- ")
-
- path = 'appeals'
- Petrify.page(path, 'appeals', { summary: summary, apps: apps })
- Petrify.csv(path, 'inlink-appeals', apps)
-
- # Authority pages
- auths = ScraperWiki.select("distinct(authority_name) as authority_name from applications")
-
- auths.each do |auth|
- summary = ScraperWiki.select("
- status, decision, appeal_status, appeal_decision, count(*) as qty
- from applications
- where authority_name = ?
- group by status, decision, appeal_status, appeal_decision
- ", auth['authority_name'])
-
- apps = ScraperWiki.select("* from applications where authority_name = ? order by date_received desc", auth['authority_name'])
-
- path = ['authorities', slug(auth['authority_name'])]
- Petrify.page(path, 'authority', { apps: apps, auth: auth, summary: summary })
- Petrify.csv(path, slug(auth['authority_name']), apps)
- end
- end
- end
|