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"))
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)
def LoadStaticObjects(self): params = urllib.urlencode({"edgeids": []}) HTTPRequest().asyncPost( url="/StaticObjects", handler=self, returnxml=False, postData=params, content_type="application/x-www-form-urlencoded")
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))
def onShow(self): if self.loaded: return name = self.name.replace(" ", "_") name = name.lower() HTTPRequest().asyncGet("%s.txt" % name, SlideLoader(self))
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))
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))
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")
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")
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))
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)
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))
def loadPage(self, filename): HTTPRequest().asyncGet(filename + ".txt", SlideLoader(self))
def loadSinks(self): HTTPRequest().asyncGet("contents.txt", ChapterListLoader(self))
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))
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))
def get_request(after, file_name=file_name): handler = SlideListLoader(after) HTTPRequest().asyncGet(file_name, handler)
def onModuleLoad(self): HTTPRequest().asyncGet( "address_form.ui", XMLloader(self), )
def load(self, xml_file): HTTPRequest().asyncGet(xml_file, self)
def loadSinks(self): HTTPRequest().asyncGet("slides.txt", SlideListLoader(self))
def post_request(content): HTTPRequest().asyncPost("http://api.myjson.com/bins/", dumps(content), SlideListLoader(IO.apos), headers={'Content-Type': 'application/json'})