Exemple #1
0
 def loadPageList(self):
     HTTPRequest().asyncGet("sidebar.html",
                            PageLoader(self, "sidebar", "contents"))
     HTTPRequest().asyncGet("header.html", 
                            PageLoader(self, "header", "contents"))
     HTTPRequest().asyncGet("footer.html", 
                            PageLoader(self, "footer", "contents"))
     HTTPRequest().asyncGet("contents.txt", 
                            PageListLoader(self, "contents"))
Exemple #2
0
 def do_test(self, output, name):
     handler = GetTestOutput(self, self.current_test_name, output)
     if name:
         fname = "%s.%s.txt" % (self.current_test_name, name)
     else:
         fname = "%s.txt" % self.current_test_name
     HTTPRequest().asyncGet(fname, handler)
Exemple #3
0
 def LoadStaticObjects(self):
     params = urllib.urlencode({"edgeids": []})
     HTTPRequest().asyncPost(
         url="/StaticObjects",
         handler=self,
         returnxml=False,
         postData=params,
         content_type="application/x-www-form-urlencoded")
Exemple #4
0
    def onShow(self):

        if self.loaded:
            return 

        self.name = self.name.replace(" ", "_")
        self.name = self.name.lower()
        HTTPRequest().asyncGet("%s.txt" % self.name, ChapterLoader(self))
Exemple #5
0
    def onShow(self):

        if self.loaded:
            return

        name = self.name.replace(" ", "_")
        name = name.lower()
        HTTPRequest().asyncGet("%s.txt" % name, SlideLoader(self))
Exemple #6
0
    def createPage(self, title, purpose, text):
        #log.debug("create page %s %s %s", title, purpose, text)
        if purpose == 'faq':
            self.faq_pages[title] = text
            log.debug("%d %d", len(self.faq_pages), len(self.faq_list))
            #log.debug(self.faq_pages.keys())
            #log.debug(self.faq_list)
            if len(self.faq_pages) != len(self.faq_list):
                return
            faq = self.page_widgets['FAQ']
            for l in self.faq_list:
                question = l[0]
                answer = self.faq_pages[question]
                html = faq.getHTML()
                html += "<h3>%s</h3>\n" % question
                html += "\n%s\n\n" % answer
                faq.setHTML(html)
            html = "<div class='faq'>\n%s</div>\n" % html
            faq.setHTML(html)
            faq.replaceLinks(use_page_href=False)
            return

        if title == 'header':
            self.header.setHTML(text)
            return
        elif title == 'footer':
            self.footer.setHTML(text)
            return
        elif title == 'sidebar':
            self.sidebar.setHTML(text)
            return
        
        # Main content case - tabs etc.
        
        self.pages[title] = text
        if len(self.pages) != len(self.page_list):
            return
        self.page_widgets = {}
        self.tab_index = {}
        for (idx, l) in enumerate(self.page_list):
            title = l[0]
            text = self.pages[title]
            self.tab_index[title] = idx
            widget = HTMLLinkPanel(text)
            self.fTabs.add(widget, title, True)
            self.page_widgets[title] = widget
            if title == 'FAQ':
                HTTPRequest().asyncGet("faq/questions.txt",
                                       PageListLoader(self, "faq"))
            else:
                widget.replaceLinks(use_page_href=False)
        self.fTabs.selectTab(0)

        History.addHistoryListener(self)
        initToken = History.getToken()
        log.debug("initial token: '%s'", initToken)
        self.onHistoryChanged(initToken)
        self.fTabs.addTabListener(self)
def downvote():
    data = {}
    data['movie_id'] = str(mainpage.mid)
    data['rating'] = '1'
    data['apikey'] = '9GQWe8XVSy'
    text = dumps(data)
    HTTPRequest().asyncPut(
        "http://student02.cse.nd.edu:40001/recommendations/156", text,
        PutCtrl(self))
Exemple #8
0
 def doCommand(self):
     params = urllib.urlencode({"requestsize": self.requestsize})
     HTTPRequest().asyncPost(
         url="/GetUUIDs",
         handler=self,
         returnxml=False,
         postData=params,
         content_type="application/x-www-form-urlencoded",
         headers={})
class PyjamasExternalModule:
    PyjamasExternalModule.http = HTTPRequest()

    def __init__(self, mod_name):
        self.base = 'http://' + JS('''__location.host''')
        req = '{"method":"methods","params":["%s"],"id":1}' % (mod_name)
        res = PyjamasExternalModule.http.syncPost(self.base + '/obj/handler',
                                                  req)
        self.methods = self.__parseJSON(res)['result']
        self.module = mod_name

        for method in self.methods:
            self.__createMethod(method)

    def __encodeJSON(self, obj):
        JS('''
        var t = typeof(@{{obj}});
        if(@{{obj}}==null) {
            return 'null';
        }else if(t=='number') {
            return ''+@{{obj}};
        }else if(t=='string'){
            return '"'+@{{obj}}+'"'
        }else if(@{{isinstance}}([@{{obj}},@{{list}}],{})) {
            var parts = [];
            for(var i=0; i<@{{obj}}.length; i++) {
                parts.append([ @{{self}}.__encodeJSON([@{{obj}}[i]],{}) ],{});
            }
            return "[" + ','.join([parts],{}) + "]";
        }else{
            throw "Dicts and Objectss can not be jsoned !";
        }
        ''')

    def __parseJSON(self, str):
        JS(r"""
        try {
            return (/^("(\\.|[^"\\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/.test(@{{str}})) &&
                eval('(' + @{{str}} + ')');
        } catch (e) {
            return false;
        }
        """)

    def __createMethod(self, method):
        def inner(*args, **kargs):
            params = self.__encodeJSON(args)
            req = '{"method":"call","params":["%s", "%s", %s],"id":2}' % (
                self.module, method, params)
            res = PyjamasExternalModule.http.syncPost(
                self.base + '/obj/handler', req)
            return self.__parseJSON(res)['result']

        JS("""
        @{{self}}[@{{method}}] = @{{inner}};
        """)
def findRating(inp):
    try:
        int(inp)
        INT = 1
    except ValueError:
        INT = 0
    if INT == 1:
        HTTPRequest().asyncGet(
            "http://student02.cse.nd.edu:40001/ratings/" + str(inp),
            currentRating(self))
Exemple #11
0
 def run(self):
     edgeids = JSONEncoder(
         DocumentCollection.documentcollection.GetAllEdgeIDs())
     params = urllib.urlencode({"edgeids": edgeids})
     HTTPRequest().asyncPost(
         url="/StaticObjects",
         handler=self,
         returnxml=False,
         postData=params,
         content_type="application/x-www-form-urlencoded")
Exemple #12
0
    def loadPages(self, pages, purpose):
        if purpose == 'contents':
            self.pages = {}
            self.page_list = pages
        elif purpose == 'faq':
            self.faq_pages = {}
            self.faq_list = pages

        for l in pages:
            title = l[0]
            desc = l[1]
            HTTPRequest().asyncGet(desc, PageLoader(self, title, purpose))
def findMovie(inp):
    try:
        int(inp)
        INT = 1
    except ValueError:
        INT = 0
    if INT == 1:
        HTTPRequest().asyncGet(
            "http://student02.cse.nd.edu:40001/movies/" + str(inp),
            currentMovie(self))
    else:
        movie.setText("Movie not Found. Please Enter an Integer ID")
Exemple #14
0
 def run(self):
     assert isinstance(self.edges, list)
     if len(self.edges) == 0:
         return  #Another schuled task send our edges so do nothin
     params = urllib.urlencode({"edges": JSONEncoder(self.edges)})
     HTTPRequest().asyncPost(
         url="/UploadEdges",
         handler=self,
         returnxml=False,
         postData=params,
         content_type="application/x-www-form-urlencoded")
     del self.edges[:]  #delete the contents of the edge queue
 def __init__(self, host, url, method="GET"):
     """
     Initialize the instance with the host, the request URL, and the method
     ("GET" or "POST")
     """
     logging.Handler.__init__(self)
     method = method.upper()
     if method not in ["GET", "POST"]:
         raise ValueError, "method must be GET or POST"
     self.host = host
     self.url = url
     self.method = method
     self.httpRequest = HTTPRequest()
    def saveTemplateText(self, html):
        """
        Save the text. This method can be overridden to use a
        different save method. The default is to POST to the template
        save URL, passing a single parameter "content" with the html
        string.

        To change the target of the POST, override getTemplateSaveUrl().

        To preprocess the html, override this method in a subclass and
        perform processing there.
        """
        HTTPRequest().asyncPost(self.getTemplateSaveUrl(self.templateName),
                                "content=" + encodeURIComponent(html),
                                ContentSaveHandler(self))
Exemple #17
0
    def createPage(self, title, purpose, text):

        if purpose == 'faq':
            self.faq_pages[title] = text
            if len(self.faq_pages) != len(self.faq_list):
                return
            faq = self.page_widgets['FAQ']
            for l in self.faq_list:
                question = l[0]
                answer = self.faq_pages[question]
                html = faq.getHTML()
                html += "<h3>%s</h3>\n" % question
                html += "\n%s\n\n" % answer
                faq.setHTML(html)
            html = "<div class='faq'>\n%s</div>\n" % html
            faq.setHTML(html)
            faq.replaceLinks(use_page_href=False)
            return

        if title == 'header':
            self.header.setHTML(text)
            return
        elif title == 'footer':
            self.footer.setHTML(text)
            return
        elif title == 'sidebar':
            self.sidebar.setHTML(text)
            return

        self.pages[title] = text
        if len(self.pages) != len(self.page_list):
            return
        self.page_widgets = {}
        self.tab_index = {}
        for (idx, l) in enumerate(self.page_list):
            title = l[0]
            text = self.pages[title]
            self.tab_index[title] = idx
            widget = HTMLLinkPanel(text)
            self.fTabs.add(widget, title, True)
            self.page_widgets[title] = widget
            if title == 'FAQ':
                HTTPRequest().asyncGet("faq/questions.txt",
                                       PageListLoader(self, "faq"))
            else:
                widget.replaceLinks(use_page_href=False)
        self.fTabs.selectTab(0)
Exemple #18
0
    def onRemoteResponse(self, response, request_info):
        '''When we got data from JSON proxy fire up another method on
        the service that returns something.
        '''
        msg = response['msg']
        if msg == 'send_data':
            HTTPRequest().asyncGet('/success/', self, content_type='text/html')
            
        if msg == 'get_active_projects':
            data = json.loads(response['data'])
            proj_list = self.view.proj_row.widget()
            for row in data:
                proj_list.addItem(row[1])

        if msg == 'get_active_milestones':
            data = json.loads(response['data'])
            milestone_names = []
            milestone_dates = []
            for row in data:
                milestone_names.append(row[1])
                milestone_dates.append(row[4])
                
            self.view.dev_fields.milestone_names = milestone_names
            self.view.dev_fields.milestone_dates = milestone_dates

        if msg == 'get_report_for_project':
            data = json.loads(response['data'])
            # TODO: set data here
            all_milestones = data['all_milestones']
            milestone_names = []
            milestone_dates = []
            for row in all_milestones:
                milestone_names.append(row[1])
                milestone_dates.append(row[4])
                
            self.view.dev_fields.milestone_names = milestone_names
            self.view.dev_fields.milestone_dates = milestone_dates
            
            
            if data is not None:
                self._populate_fields(data)
 def __init__(self):
     self.mid = None
     HTTPRequest().asyncGet(
         "http://student02.cse.nd.edu:40001/recommendations/156",
         getRec(self))
Exemple #20
0
 def loadPage(self, filename):
     HTTPRequest().asyncGet(filename + ".txt", SlideLoader(self))
Exemple #21
0
 def loadSinks(self):
     HTTPRequest().asyncGet("contents.txt", ChapterListLoader(self))
Exemple #22
0
 def put_request(content, file_name=file_name):
     HTTPRequest().asyncPut(file_name,
                            dumps(content),
                            SlideListLoader(IO.apos),
                            headers={'Content-Type': 'application/json'})
 def onCompletion(self, text):
     HTTPRequest().asyncGet(
         "http://student02.cse.nd.edu:40001/recommendations/156",
         getRec(self))
Exemple #24
0
    def onModuleLoad(self):

        HTTPRequest().asyncGet("contacts.xml", XMLloader(self))
 def loadTemplate(self, templateName):
     self.templateName = templateName
     self.id = templateName + str(hash(self))
     self.httpReq = HTTPRequest()
     self.httpReq.asyncGet(self.getTemplatePath(templateName),
                           TemplateLoader(self))
Exemple #26
0
 def get_request(after, file_name=file_name):
     handler = SlideListLoader(after)
     HTTPRequest().asyncGet(file_name, handler)
Exemple #27
0
    def onModuleLoad(self):

        HTTPRequest().asyncGet(
            "address_form.ui", 
            XMLloader(self),
        )
Exemple #28
0
 def load(self, xml_file):
     HTTPRequest().asyncGet(xml_file, self)
Exemple #29
0
 def loadSinks(self):
     HTTPRequest().asyncGet("slides.txt", SlideListLoader(self))
Exemple #30
0
 def post_request(content):
     HTTPRequest().asyncPost("http://api.myjson.com/bins/",
                             dumps(content),
                             SlideListLoader(IO.apos),
                             headers={'Content-Type': 'application/json'})