-import zephyr
-import feedparser
-import pycurl
-from BeautifulSoup import BeautifulSoup
-
-"""Screen scrapes jira.mit.edu. Supposedly. Doesn't actually work yet.
-
-You need to have a personal certificate named cert.pem in this
-directory to run this script. You also need the abovementioned scripts.
-The zephyr bindings can be gotten from ebroder's GitHub repository
-located: http://github.com/ebroder/python-zephyr/tree/master
-
-SSL server CA authentication is disabled because we don't know how to
-make curl stop complaining.
-
-Current difficulty is we are causing a NullPointer exception on
-(we think) touchstone's servers."""
-
-class Browser(object):
- def __init__(self, **kwargs):
- self.opts = kwargs
- self.lastResult = None
- def _callback(self, buf):
- self.lastResult += buf
- def get(self, url):
- c = pycurl.Curl()
- c.setopt(c.URL, url)
- c.setopt(c.WRITEFUNCTION, self._callback)
- for k,v in self.opts.items():
- c.setopt(getattr(c, k), v)
- self.lastResult = ''
- c.perform()
- return self.lastResult
- def getPage(self, url):
- return Page(url, self.get(url), self)
-
-class Page(object):
- def __init__(self, url, contents, browser):
- self.url = url
- self.soup = BeautifulSoup(contents)
- self.browser = browser
- def submitForm(self, name, args ={}):
- form = self.soup.find(name='form', attrs={"name": name})
- if form == None: return False
- dest = form.get('action', self.url)
- # this has a lot of edge-cases that don't work
- inputs = form.findAll(name='input')
- vals = {}
- for input in inputs:
- vals[input[name]] = input[value]
- for k,v in args.items():
- vals[k] = v
- return self.browser.getPage()
-
-
-b = Browser(
- SSLCERT = "cert.pem",
- SSLKEY = "cert.pem",
- SSL_VERIFYPEER = 0,
- COOKIEJAR = "jirabot.cookie",
- FOLLOWLOCATION = 1,
- AUTOREFERER = 1,
- HTTPHEADER = ["Accept-Language: en-us,en;q=0.5"],
-)
-
-b.get("https://jira.mit.edu/jira/secure/Dashboard.jspa")
-page = b.getPage("https://jira.mit.edu/jira/secure/mit_login.jsp?os_destination=/secure/Dashboard.jspa")
-
-print page.submitForm('wayfForm1')
-
-#c.setopt(c.URL, "https://jira.mit.edu/jira/sr/jira.issueviews:searchrequest-rss/temp/SearchRequest.xml?&pid=10185&updated%3Aprevious=-1w&sorter/field=updated&sorter/order=DESC&tempMax=1000")
-
-#d = feedparser.parse(t.contents)
-#print d
-