Skip to content

Instantly share code, notes, and snippets.

@AaronMT
Created January 13, 2012 16:04
Show Gist options
  • Save AaronMT/1607207 to your computer and use it in GitHub Desktop.
Save AaronMT/1607207 to your computer and use it in GitHub Desktop.
table-generator
#!/usr/bin/python
__author__ = 'aaron.train@gmail.com'
import sys
import getopt
import HTML
import json
class generate_table:
def __init__(self, sites, browser_info):
self._sites = sites
self._browser_info = browser_info
def Run(self):
self._list_of_sites = self._read_sites()
self._browser_info = self._read_browser_info()
self._generate_table()
def _read_sites(self):
self.json_file = open(self._sites).read()
self.json_data = json.loads(self.json_file)
return self.json_data
def _read_browser_info(self):
self.json_file = open(self._browser_info)
self.json_data = json.load(self.json_file)
return self.json_data
def _generate_table(self):
self.header_row = ['Website URL']
for index, self.browser in enumerate(self._browser_info):
self.header_row.append(self.browser["Browser Name"] + "<br/>" + self.browser["User Agent"])
self.t = HTML.Table(header_row = self.header_row)
for index, self.x in enumerate(self._list_of_sites):
self.t.rows.append([HTML.link(self.x, self.x), self._image(index), self._image(index), self._image(index)])
self.htmlcode = str(self.t)
print self.htmlcode
def _image(self, url):
return "<img src='%s.png'>" % (url)
def main():
try:
opts, args = getopt.getopt(sys.argv[1:], "", ["sites=", "browser-info="])
except getopt.error, msg:
print 'python generate-table.py --sites [sites (JSON)] --browser-info [browser_info (JSON)]'
sys.exit(2)
sites = ""
browser_info = ""
for o, a in opts:
if o == "--sites":
sites = a
if o == "--browser-info":
browser_info = a
if sites == "" or browser_info == "":
print 'python generate-table.py --sites [sites (JSON)] --browser-info [browser_info (JSON)]'
sys.exit(2)
n = generate_table(sites, browser_info)
n.Run()
if __name__ == "__main__":
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment