Add validation script
[disclosr.git] / admin / validation.py
blob:a/admin/validation.py -> blob:b/admin/validation.py
  #http://packages.python.org/CouchDB/client.html
  import couchdb
  import json
  import pprint
  import re
  from tidylib import tidy_document
   
  couch = couchdb.Server('http://127.0.0.1:5984/')
   
  # select database
  docsdb = couch['disclosr-documents']
   
  def f(x):
  invalid = re.compile(r"ensure|testing|flicker|updating|longdesc|Accessibility Checks|not recognized")
  valid = re.compile(r"line")
  return (not invalid.search(x)) and valid.search(x) and x != ''
   
  for row in docsdb.view('app/getValidationRequired'):
  print row.id
  html = docsdb.get_attachment(row.id,row.value.iterkeys().next()).read()
  #print html
  document, errors = tidy_document(html,options={'accessibility-check':1,'show-warnings':0,'markup':0},keep_doc=True)
  #http://www.aprompt.ca/Tidy/accessibilitychecks.html
  #print document
  errors = '\n'.join(filter(f,errors.split('\n')))
  #print errors
  doc = docsdb.get(row.id)
  doc['validation'] = errors
  docsdb.save(doc)