def succeed(self, result=None): """ Return successful JSON data to the client. """ if result is None: self.response.out.write('{"RE":"OK"}') elif isinstance(result, dict): result['RE'] = 'OK' self.response.out.write(jsonize(result)) elif isinstance(result, list): self.response.out.write(jsonize(result)) elif isinstance(result, basestring): self.response.out.write(result)
def update_users(web, args=None): web.require_admin() usrs = SuiUser.all().fetch(100) for u in usrs: if u.role == 'A': qa = SuiAuthor(key_name=u.key().name()) qa.name = u.name bks = SuiBook.all().filter('authors =',qa.name).fetch(5) wrks = dict((str(b.key().id()),[datetime.strftime(b.started,'%Y-%m-%d %H:%M:%S'),b.pages,0]) for b in bks) qa.works = jsonize(wrks) qa.intro = 'Self-introduction for %s'%qa.name qa.links = '{"web":"http:","blog":"http:","twitter":"1233","facebook":"323"}' qa.put() #db.delete(u) u.put() web.succeed()
def update_users(web, args=None): web.require_admin() usrs = SuiUser.all().fetch(100) for u in usrs: if u.role == 'A': qa = SuiAuthor(key_name=u.key().name()) qa.name = u.name bks = SuiBook.all().filter('authors =', qa.name).fetch(5) wrks = dict((str(b.key().id()), [ datetime.strftime(b.started, '%Y-%m-%d %H:%M:%S'), b.pages, 0 ]) for b in bks) qa.works = jsonize(wrks) qa.intro = 'Self-introduction for %s' % qa.name qa.links = '{"web":"http:","blog":"http:","twitter":"1233","facebook":"323"}' qa.put() #db.delete(u) u.put() web.succeed()
def fail(self, msg=None, format='JSON', page='error.html'): """ Return a failure message to the client. If use error.html, replace {{ error }} with msg. @param msg: message text to return or None, can also be a dict with 'error' in it. @param format: JSON or HTML to return @param page: error.html by default for format=='HTML' @return: {"error":"msg"} #{'RE':'Fail',msg:'...'} """ if format == 'JSON': if msg: if isinstance(msg, basestring): err = '{"error":"%s"}' % msg else: err = jsonize(msg) else: err = '{"error":"Unknown error"}' self.response.out.write(err) elif format == 'HTML': if page == '': logging.error('main.fail(): page not given') return if msg: self.add_var('error', msg) self.render_page(page)
def pack_authors(athrs): buf = [] for a in athrs: if not a.confirmed: continue bks = len(re.findall('\[',a.works or '')) buf.append('{"uid":"%s","name":"%s","job":"%s","books":%d,"intro":%s}' % (a.key().name(),a.name,a.job,bks,jsonize(a.intro))) return '[%s]'%','.join(buf)