예제 #1
0
 def find_parse_function(connection, url, all_tasks):
     url = valid_lp_url(url, BASEURL.BLUEPRINTLIST)
     lp_content = connection.get(url)
     xmldoc = libxml2.htmlParseDoc(unicode_for_libxml2(lp_content.text), "UTF-8")
     u = urlparse.urlsplit(url)
     if "+milestone" in u[2]:
         result = BlueprintPage.parse_html_milestone_specs(xmldoc, all_tasks, url)
     else:
         result = BlueprintPage.parse_html_blueprintpage(xmldoc, all_tasks, url)
     return result
예제 #2
0
 def find_parse_function(connection, url, all_tasks):
     url = valid_lp_url(url, BASEURL.BUGPAGE)
     lp_content = connection.get(url)
     xmldoc = libxml2.htmlParseDoc(unicode_for_libxml2(lp_content.text), "UTF-8")
     u = urlparse.urlsplit(url)
     if "+milestone" in u[2]:
         result = BugPage.parse_html_milestone_bugpage(xmldoc, all_tasks, url)
     elif "+expirable-bugs" in u[2]:
         result = BugPage.parse_html_expirable_bugpage(xmldoc, all_tasks, url)
     elif "bugs/bugtrackers" in u[2]:
         result = BugPage.parse_html_bugtracker_bugpage(xmldoc, all_tasks, url)
     else:
         result = BugPage.parse_html_bugpage(xmldoc, all_tasks, url)
     return result
예제 #3
0
def _parse_page(text):
    guess_type = UNKNOWNERROR
    errors = {}
    t = libxml2.htmlParseDoc(unicode_for_libxml2(text), "UTF-8")
    e = t.xpathEval('//tr[@class="error"]')
    for i in e:
        msg = ""
        m = i.xpathEval('td/div[@class="message"]')
        if m:
            msg = m[0].content
        m = i.xpathEval("td/div/input | td/div/textarea")
        assert m
        val = m[0].prop("name")
        errors[val] = msg
    return guess_type, errors
예제 #4
0
 def __init__(self, url, connection):
     LPBluePrint.__init__(self, url, connection)
     
     page = self._connection.get(self.url)
     #TODO: check redirection
     
     self.xmldoc = libxml2.htmlParseDoc(unicode_for_libxml2(page.text), "UTF-8")
     
     self.__info_box = InfoBox(self.xmldoc.xpathEval('//table[@class="summary"]/tbody'))
     self.__subscribers = Subscribers(self.xmldoc.xpathEval('//div[@id="portlet-subscribers"]/div[@class="portletBody"]//div'))
     self.__lifecycle = Lifecycle(self.xmldoc.xpathEval('//div[@id="portlet-lifecycle"]/div/table/tbody'))
     self.__related_bugs = RelatedBugs(self.xmldoc.xpathEval('//div[@id="portlet-related-bugs"]/div/ul//li'))
     self.__overview = Overview(self.xmldoc.xpathEval('//table[@class="summary"]/following-sibling::p[1]'))
     self.__full_spec = FullSpec(self.xmldoc.xpathEval('//table[@class="summary"]/following-sibling::ul[1]/li/a'))
     self.__mentors = Mentors(self.xmldoc.xpathEval('//table[@class="summary"]/following-sibling::p[2]//a'))
     self.__whiteboard = WhiteBoard(self.xmldoc.xpathEval('//h2[contains(.,"Whiteboard")]/following-sibling::div'))
     self.__feedback_request = FeedbackRequest(self.xmldoc.xpathEval('//div[@id="portlet-feedback"]/div/ul//li'))