def add_or_update(self, user_id, app_id, value): if self.get_by_signature(user_id, app_id): tt = self.get_by_signature(user_id, app_id) entry = self.tab.update(value=value).where(self.tab.uid == tt.uid) entry.execute() else: entry = self.tab.create(uid=tools.get_uuid(), user=user_id, app=app_id, value=value)
def insert_data(self, post_data): if '/' in post_data['user_name'][0]: return False if ':' in post_data['user_name'][0]: return False if len(post_data['user_name'][0]) < 5 or len(post_data['user_name'][0]) > 20: return False if '\\' in post_data['user_name'][0]: return False if '#' in post_data['user_name'][0]: return False if '+' in post_data['user_name'][0]: return False if "'" in post_data['user_name'][0]: return False if '"' in post_data['user_name'][0]: return False if '(' in post_data['user_name'][0]: return False if ')' in post_data['user_name'][0]: return False if ' ' in post_data['user_name'][0]: return False try: CabMember.create(uid=tools.get_uuid(), user_name=post_data['user_name'][0], user_pass=tools.md5(post_data['user_pass'][0]), user_email=post_data['user_email'][0], privilege='10000', reset_passwd_timestamp=0, ) return True except: return False
def index(self): cstr = tools.get_uuid() self.set_cookie('user_pass', cstr) kwd = {'cookie_str': cstr} self.render('{0}/index/index.html'.format(self.tmpl_sig), kwd=kwd, userinfo=self.userinfo, catalog_info=self.mcat.query_all(by_order=True))
def insert_data(self, post_data): print(post_data) print(type(post_data['user_name'][0])) print(type(post_data['user_email'][0])) entry = CabMember.create(uid=tools.get_uuid(), user_name=post_data['user_name'][0], user_pass=hashlib.md5(post_data['user_pass'][0].encode('utf-8')).hexdigest(), user_email=post_data['user_email'][0], privilege='10000') return True
def insert_data(self, post_data): try: CabMember.create(uid=tools.get_uuid(), user_name=post_data['user_name'][0], user_pass=tools.md5(post_data['user_pass'][0]), user_email=post_data['user_email'][0], privilege='10000', reset_passwd_timestamp=0, ) return True except: return False
def index(self): cstr = tools.get_uuid() self.set_cookie('user_pass', cstr) kwd = { 'cookie_str': cstr } self.render('tplite/index/index.html', kwd = kwd, userinfo=self.userinfo, catalog_info = self.mcat.query_all( by_order=True) )
def addata(self,post_data): entry = CabSpec.create( uid=tools.get_uuid(), name=post_data['title'][0], slug=post_data['slug'][0], order=post_data['order'][0], img=post_data['img'][0], desc=post_data['desc'][0], abstract = post_data['abstract'][0], date = datetime.datetime.now(), )
def addata(self, post_data): entry = CabSpec.create( uid=tools.get_uuid(), name=post_data['title'][0], slug=post_data['slug'][0], order=post_data['order'][0], img=post_data['img'][0], desc=post_data['desc'][0], abstract=post_data['abstract'][0], date=datetime.datetime.now(), )
def index(self): cstr = tools.get_uuid() self.set_cookie('user_pass', cstr) kwd = { 'cookie_str': cstr } self.render('index/index.html', kwd=kwd, userinfo=self.userinfo, catalog_info=self.mcat.query_all(by_order=True), unescape=tornado.escape.xhtml_unescape, )
def add_or_update(self, json_uid, user_id, app_id, geojson): current_count = TabJson.select().where(TabJson.uid == json_uid).count() self.add_json(json_uid, user_id, geojson) if current_count: pass else: entry = TabApp2Json.create( uid=tools.get_uuid(), app=app_id, json=json_uid, )
def index(self): cstr = tools.get_uuid() self.set_cookie('user_pass', cstr) kwd = {'cookie_str': cstr} self.render( 'index/index.html', kwd=kwd, userinfo=self.userinfo, catalog_info=self.mcat.query_all(by_order=True), link=self.mlink.query_all(), unescape=tornado.escape.xhtml_unescape, )
def add_or_update(self, json_uid, user_id, app_id, geojson): current_count = TabJson.select().where(TabJson.uid == json_uid).count() self.add_json(json_uid, user_id, geojson) if current_count: pass else: entry = TabApp2Json.create( uid = tools.get_uuid(), app = app_id, json = json_uid, )
def insert_data(self, raw_data): entry = CabWikiHist.create( uid=tools.get_uuid(), title=raw_data.title, date=raw_data.date, wiki_id=raw_data.uid, time_create=raw_data.time_create, user_name=raw_data.user_name, cnt_md=raw_data.cnt_md, time_update=raw_data.time_update, ) return (entry.uid)
def insert_data(self, id_post, id_reply): uid = tools.get_uuid() try: self.tab.create( uid=uid, post_id=id_post, reply_id=id_reply, timestamp=time.time(), ) return (uid) except: return False
def insert_data(self, post_data): try: entry = CabMember.create( uid = tools.get_uuid(), user_name = post_data['user_name'][0], user_pass =hashlib.md5(post_data['user_pass'][0].encode('utf-8')).hexdigest() , user_email = post_data['user_email'][0] ) return True except: return False
def insert_data2(self, id_post, id_reply): uid = tools.get_uuid() try: entry = self.tab.create( uid=uid, post_id=id_post, reply_id= id_reply, timestamp=time.time(), ) return (uid) except: return False
def add_or_update(self, user_id, app_id, value): if self.get_by_signature(user_id, app_id): tt = self.get_by_signature(user_id, app_id) entry = self.tab.update( value=value, ).where(self.tab.uid == tt.uid) entry.execute() else: entry = self.tab.create( uid=tools.get_uuid(), user=user_id, app=app_id, value=value, )
def add_or_update(self, user_id, app_id): if self.get_by_signature(user_id, app_id): tt = self.get_by_signature(user_id, app_id) entry = self.tab.update(timestamp=int(time.time())).where( self.tab.uid == tt.uid) entry.execute() else: entry = self.tab.create( uid=tools.get_uuid(), user=user_id, app=app_id, timestamp=int(time.time()), )
def add_record(self, post_id, tag_name, order=1): tag_id = self.mtag.get_id_by_name(tag_name) tt = self.get_by_info(post_id, tag_id) if tt: entry = self.tab.update( order=order, ).where(self.tab.uid == tt.uid) entry.execute() else: entry = self.tab.create( uid=tools.get_uuid(), app=post_id, tag=tag_id, order=order, )
def add_or_update(self, user_id, app_id): if self.get_by_signature(user_id, app_id): tt = self.get_by_signature(user_id, app_id) entry = self.tab.update( timestamp = int(time.time()) ).where(self.tab.uid == tt.uid) entry.execute() else: entry = self.tab.create( uid = tools.get_uuid(), user = user_id, app = app_id, timestamp = int(time.time()), )
def addata(self, post_data): try: CabSpec.create( uid=tools.get_uuid(), name=post_data["title"][0], slug=post_data["slug"][0], order=post_data["order"][0], img=post_data["img"][0], desc=post_data["desc"][0], abstract=post_data["abstract"][0], date=datetime.datetime.now(), ) return True except: return False
def insert_data(self, raw_data): uid = tools.get_uuid() entry = CabPostHist.create( uid=uid, title=raw_data.title, date=raw_data.date, post_id=raw_data.uid, time_create=raw_data.time_create, user_name=raw_data.user_name, cnt_md=raw_data.cnt_md, time_update=raw_data.time_update, id_spec=raw_data.id_spec, logo=raw_data.logo, ) return (uid)
def insert_data(self, post_data): uid = tools.get_uuid() try: CabReply.create( uid=uid, user_name=post_data['user_name'], create_user_id=post_data['user_id'], timestamp=tools.timestamp(), date=datetime.datetime.now(), cnt_md=post_data['cnt_md'][0], cnt_html=tools.markdown2html(post_data['cnt_md'][0]), vote=0, ) return (uid) except: return False
def add_or_update(self, user_id, app_id, title, order): if self.get_by_signature(user_id, app_id): tt = self.get_by_signature(user_id, app_id) entry = TabToolbox.update( order=order, ).where(TabToolbox.uid == tt.uid) entry.execute() else: entry = TabToolbox.create( uid=tools.get_uuid(), user=user_id, cnt=title, title=title, app=app_id, order=order, )
def add_record(self, post_id, catalog_id, order=1): tt = self.get_by_info(post_id, catalog_id) if tt: entry = self.tab_post2catalog.update( order=order, ).where(self.tab_post2catalog.uid == tt.uid) entry.execute() else: try: self.tab_post2catalog.create( uid=tools.get_uuid(), post=post_id, catalog=catalog_id, order=order, ) return True except: return False
def add_or_update(self, user_id, sig): tt = self.get_by_signature(user_id, sig) uu = self.mapp2catalog.get_app_catalog(sig) if uu == False: return False cat_id = uu.catalog.uid if tt.count() > 0: rec = tt.get() self.count_increate(rec.uid, cat_id, rec.count) else: entry = self.tab.create( uid=tools.get_uuid(), signature=sig, user=user_id, count=1, catalog_id=cat_id, timestamp=int(time.time()), )
def add_or_update(self, user_id, sig): tt =self.get_by_signature(user_id, sig) uu = self.mapp2catalog.get_app_catalog(sig) if uu == False: return False cat_id = uu.catalog.uid if tt.count() > 0: rec = tt.get() self.count_increate(rec.uid, cat_id, rec.count) else: entry = self.tab.create( uid=tools.get_uuid(), signature=sig, user= user_id, count=1, catalog_id =cat_id, timestamp=int(time.time()), )
def add_or_update(self, user_id, app_id,title, order ): if self.get_by_signature(user_id, app_id): tt = self.get_by_signature(user_id, app_id) entry = TabToolbox.update( order=order, ).where(TabToolbox.uid == tt.uid) entry.execute() else: entry = TabToolbox.create( uid = tools.get_uuid(), user = user_id, cnt = title, title = title, app = app_id, order = order, )
def insert_data(self, user_id, reply_id): record = CabVoter2Reply.select().where( (CabVoter2Reply.reply_id == reply_id) & ( CabVoter2Reply.voter_id == user_id )) if record.count() > 0: pass return (False) else: entry = CabVoter2Reply.create( uid=tools.get_uuid(), reply_id=reply_id, voter_id=user_id, timestamp=time.time(), ) cur_count = CabVoter2Reply.select().where(CabVoter2Reply.reply_id == reply_id).count() return cur_count
def add_relation(self, app_f, app_t, weight = 1): cur = self.tab_relation.select().where((self.tab_relation.app_f == app_f) & (self.tab_relation.app_t == app_t)) if cur.count() > 1: for x in cur: self.delete(x.uid) if cur.count() == 0: uid = tools.get_uuid() entry = self.tab_relation.create( uid=uid, app_f=app_f, app_t=app_t, count=1, ) return entry.uid elif cur.count() == 1: self.update_relation(app_f, app_t, weight) else: return False
def insert_data(self, user_id, reply_id): record = CabVoter2Reply.select().where( (CabVoter2Reply.reply_id == reply_id) & (CabVoter2Reply.voter_id == user_id)) if record.count() > 0: return (False) try: CabVoter2Reply.create( uid=tools.get_uuid(), reply_id=reply_id, voter_id=user_id, timestamp=time.time(), ) return CabVoter2Reply.select().where(CabVoter2Reply.reply_id == reply_id).count() except: return False
def insert_data(self, raw_data): uid = tools.get_uuid() try: CabPostHist.create( uid=uid, title=raw_data.title, date=raw_data.date, post_id=raw_data.uid, time_create=raw_data.time_create, user_name=raw_data.user_name, cnt_md=raw_data.cnt_md, time_update=raw_data.time_update, id_spec=raw_data.id_spec, logo=raw_data.logo, ) return (uid) except: return False
def insert_data(self, user_id, reply_id): record = CabUser2Reply.select().where( (CabUser2Reply.reply_id == reply_id) & (CabUser2Reply.user_id == user_id)) if record.count() > 0: pass return (False) else: entry = CabUser2Reply.create( uid=tools.get_uuid(), reply_id=reply_id, user_id=user_id, timestamp=time.time(), ) cur_count = CabUser2Reply.select().where( CabUser2Reply.reply_id == reply_id).count() return cur_count
def insert_data(self, user_id, reply_id): record = CabVoter2Reply.select().where( (CabVoter2Reply.reply_id == reply_id) & (CabVoter2Reply.voter_id == user_id)) if record.count() > 0: return (False) try: CabVoter2Reply.create( uid=tools.get_uuid(), reply_id=reply_id, voter_id=user_id, timestamp=time.time(), ) return CabVoter2Reply.select().where( CabVoter2Reply.reply_id == reply_id).count() except: return False
def index(self): cstr = tools.get_uuid() self.set_cookie('user_pass', cstr) kwd = {'cookie_str': cstr} out_str = self.gen_info() pipe = c.pipeline() pipe.set('fooa', out_str) pipe.expire('fooa', 60 * 60 * 25) res_hset, res_expire = yield tornado.gen.Task(pipe.execute) foo2 = yield tornado.gen.Task(c.get, 'fooa') self.render( 'tplite/index/index.html', kwd=kwd, userinfo=self.userinfo, catalog_info=self.mcat.query_all(by_order=True), foo=foo2, unescape=tornado.escape.xhtml_unescape, )
def index(self): cstr = tools.get_uuid() self.set_cookie('user_pass', cstr) t1 = self.mpycate.get_qian2('01') s1 = self.format_cat(t1, 1) t2 = self.mpycate.get_qian2('02') s2 = self.format_cat(t2, 2) t3 = self.mpycate.get_qian2('03') s3 = self.format_cat(t3, 3) t4 = self.mpycate.get_qian2('04') s4 = self.format_cat(t4, 4) t5 = self.mpycate.get_qian2('05') s5 = self.format_cat(t5, 5) t6 = self.mpycate.get_qian2('06') s6 = self.format_cat(t6, 6) kwd = { 's1': s1, 's2': s2, 's3': s3, 's4': s4, 's5': s5, 's6': s6, 'parentid': '0000', 'parentlist': self.mpycate.get_parent_list(), 'cookie_str': cstr } self.render('index/index.html', kwd=kwd, userinfo=self.userinfo, catalog_info=self.mcat.query_all(by_order=True), view=self.mpost.query_most_pic(20), )
def show_app(self, app_id): """ 打开App. """ qian = self.get_secure_cookie("map_hist") if qian: qian = qian.decode("utf-8") else: qian = "" self.set_secure_cookie("map_hist", (app_id + qian)[:20]) replys = self.mreply.get_by_id(app_id) rec = self.mapp.get_by_uid(app_id) if rec == False: kwd = {"info": "您要找的云算应用不存在。"} self.render("html/404.html", kwd=kwd) return False last_map_id = self.get_secure_cookie("use_app_uid") if last_map_id: last_map_id = last_map_id.decode("utf-8") self.set_secure_cookie("use_app_uid", app_id) if last_map_id and self.mapp.get_by_uid(last_map_id): self.add_relation(last_map_id, app_id) cookie_str = tools.get_uuid() kwd = { "pager": "", "url": rec.html_path, "cookie_str": cookie_str, "signature": app_id, "tkw": "在线计算,在线计算器", "tdesc": "", "eval_0": self.mevaluation.app_evaluation_count(app_id, 0), "eval_1": self.mevaluation.app_evaluation_count(app_id, 1), } self.mapp.view_count_increase(app_id) if self.get_current_user(): self.musage.add_or_update(self.userinfo.uid, app_id) self.set_cookie("user_pass", cookie_str) map_hist = [] if self.get_secure_cookie("map_hist"): for xx in range(0, len(self.get_secure_cookie("map_hist").decode("utf-8")), 4): map_hist.append(self.get_secure_cookie("map_hist").decode("utf-8")[xx : xx + 4]) if "fullscreen" in self.request.arguments: tmpl = "app_theme/app/full_screen.html" else: tmpl = "app_theme/app/show_map.html" self.render( tmpl, kwd=kwd, calc_info=rec, userinfo=self.userinfo, relations=self.mrel.get_app_relations(rec.uid), unescape=tornado.escape.xhtml_unescape, ad_switch=random.randint(1, 18), tag_info=self.mapp2tag.get_by_id(app_id), recent_apps=self.musage.query_recent(self.get_current_user(), 6)[1:], map_hist=map_hist, replys=replys, )
def show_app(self, app_id): ''' 打开App. ''' qian = self.get_secure_cookie('map_hist') if qian: qian = qian.decode('utf-8') else: qian = '' self.set_secure_cookie('map_hist', (app_id + qian)[:20]) replys = self.mreply.get_by_id(app_id) rec = self.mapp.get_by_uid(app_id) if rec == False: kwd = { 'info': '您要找的云算应用不存在。', } self.render('html/404.html', kwd=kwd) return False last_map_id = self.get_secure_cookie('use_app_uid') if last_map_id: last_map_id = last_map_id.decode('utf-8') self.set_secure_cookie('use_app_uid', app_id) if last_map_id and self.mapp.get_by_uid(last_map_id): self.add_relation(last_map_id, app_id) cookie_str = tools.get_uuid() kwd = { 'pager': '', 'url': rec.html_path, 'cookie_str': cookie_str, 'signature': app_id, 'tkw': '在线计算,在线计算器', 'tdesc': '', 'eval_0': self.mevaluation.app_evaluation_count(app_id, 0), 'eval_1': self.mevaluation.app_evaluation_count(app_id, 1), } self.mapp.view_count_increase(app_id) if self.get_current_user(): self.musage.add_or_update(self.userinfo.uid, app_id) self.set_cookie('user_pass', cookie_str) map_hist = [] if self.get_secure_cookie('map_hist'): for xx in range( 0, len(self.get_secure_cookie('map_hist').decode('utf-8')), 4): map_hist.append( self.get_secure_cookie('map_hist').decode('utf-8')[xx:xx + 4]) if 'fullscreen' in self.request.arguments: tmpl = 'app_theme/app/full_screen.html' else: tmpl = 'app_theme/app/show_map.html' self.render( tmpl, kwd=kwd, calc_info=rec, userinfo=self.userinfo, relations=self.mrel.get_app_relations(rec.uid), unescape=tornado.escape.xhtml_unescape, ad_switch=random.randint(1, 18), tag_info=self.mapp2tag.get_by_id(app_id), recent_apps=self.musage.query_recent(self.get_current_user(), 6)[1:], map_hist=map_hist, replys=replys, )
def show_app(self, app_id): qian = self.get_secure_cookie('map_hist') post_data = {} for key in self.request.arguments: post_data[key] = self.get_arguments(key) if qian: qian = qian.decode('utf-8') else: qian = '' self.set_secure_cookie('map_hist', (app_id + qian)[:20]) replys = self.mreply.get_by_id(app_id) rec = self.mapp.get_by_uid(app_id) if rec == False: kwd = { 'info': '您要找的云算应用不存在。', } self.render('html/404.html', kwd=kwd) return False if 'zoom' in post_data: rec.zoom_current = post_data['zoom'][0] if 'lat' in post_data: rec.lat = post_data['lat'][0] if 'lon' in post_data: rec.lon = post_data['lon'][0] if 'lng' in post_data: rec.lon = post_data['lng'][0] last_map_id = self.get_secure_cookie('use_app_uid') if last_map_id: last_map_id = last_map_id.decode('utf-8') self.set_secure_cookie('use_app_uid', app_id) if last_map_id and self.mapp.get_by_uid(last_map_id): self.add_relation(last_map_id, app_id) cookie_str = tools.get_uuid() kwd = { 'pager': '', 'url': self.request.uri, 'cookie_str': cookie_str, 'marker': 1 if 'marker' in post_data else 0, 'geojson': post_data['gson'][0] if 'gson' in post_data else '', 'signature': app_id, 'tdesc': '', 'eval_0': self.mevaluation.app_evaluation_count(app_id, 0), 'eval_1': self.mevaluation.app_evaluation_count(app_id, 1), 'site_url': config.site_url, 'login': 1 if self.get_current_user() else 0, } self.mapp.view_count_increase(app_id) if self.get_current_user(): self.musage.add_or_update(self.userinfo.uid, app_id) json_recs = self.mjson.query_by_app(app_id, self.userinfo.uid) layout_recs = self.mlayout.query_by_app(app_id, self.userinfo.uid) layout_links = [] for layout_rec in layout_recs: out_link = '{0}?zoom={1}&lat={2}&lon={3}'.format(layout_rec.app.uid, layout_rec.zoom, layout_rec.lat, layout_rec.lon) if layout_rec.marker != 0: out_link = out_link + '&marker=1' if layout_rec.json != '': out_link = out_link + '&gson={0}'.format(layout_rec.json) layout_links.append({'uid': layout_rec.uid, 'link': out_link}) else: json_recs = [] layout_links = [] self.set_cookie('user_pass', cookie_str) map_hist = [] if self.get_secure_cookie('map_hist'): for xx in range(0, len(self.get_secure_cookie('map_hist').decode('utf-8')), 4): map_hist.append(self.get_secure_cookie('map_hist').decode('utf-8')[xx: xx + 4]) if 'fullscreen' in self.request.arguments: tmpl = 'app_theme/app/full_screen.html' # if self.userinfo.privilege[4] == '1': # tmpl = 'app_theme/app/full_vip.html' # else: # tmpl = 'app_theme/app/full_screen.html' else: tmpl = 'app_theme/app/show_map.html' rel_recs = self.mrel.get_app_relations(rec.uid, 4) rand_recs = self.mapp.query_random(4 - rel_recs.count() + 2) self.render(tmpl, kwd=kwd, calc_info=rec, userinfo=self.userinfo, relations=rel_recs, rand_recs=rand_recs, unescape=tornado.escape.xhtml_unescape, ad_switch=random.randint(1, 18), tag_info=self.mapp2tag.get_by_id(app_id), recent_apps=self.musage.query_recent(self.get_current_user(), 6)[1:], map_hist=map_hist, json_recs=json_recs, layout_links=layout_links, replys=replys, )
def show_app(self, app_id): qian = self.get_secure_cookie('map_hist') post_data = {} for key in self.request.arguments: post_data[key] = self.get_arguments(key) if qian: qian = qian.decode('utf-8') else: qian = '' self.set_secure_cookie('map_hist', (app_id + qian)[:20]) replys = self.mreply.get_by_id(app_id) rec = self.mapp.get_by_uid(app_id) if rec == False: kwd = { 'info': '您要找的云算应用不存在。', } self.render('html/404.html', kwd=kwd) return False if 'zoom' in post_data: rec.zoom_current = post_data['zoom'][0] if 'lat' in post_data: rec.lat = post_data['lat'][0] if 'lon' in post_data: rec.lon = post_data['lon'][0] if 'lng' in post_data: rec.lon = post_data['lng'][0] last_map_id = self.get_secure_cookie('use_app_uid') if last_map_id: last_map_id = last_map_id.decode('utf-8') self.set_secure_cookie('use_app_uid', app_id) if last_map_id and self.mapp.get_by_uid(last_map_id): self.add_relation(last_map_id, app_id) cookie_str = tools.get_uuid() kwd = { 'pager': '', 'url': self.request.uri, 'cookie_str': cookie_str, 'marker': 1 if 'marker' in post_data else 0, 'geojson': post_data['gson'][0] if 'gson' in post_data else '', 'signature': app_id, 'tdesc': '', 'eval_0': self.mevaluation.app_evaluation_count(app_id, 0), 'eval_1': self.mevaluation.app_evaluation_count(app_id, 1), 'site_url': config.site_url, 'login': 1 if self.get_current_user() else 0, } self.mapp.view_count_increase(app_id) if self.get_current_user(): self.musage.add_or_update(self.userinfo.uid, app_id) json_recs = self.mjson.query_by_app(app_id, self.userinfo.uid) layout_recs = self.mlayout.query_by_app(app_id, self.userinfo.uid) layout_links = [] for layout_rec in layout_recs: out_link = '{0}?zoom={1}&lat={2}&lon={3}'.format( layout_rec.app.uid, layout_rec.zoom, layout_rec.lat, layout_rec.lon) if layout_rec.marker != 0: out_link = out_link + '&marker=1' if layout_rec.json != '': out_link = out_link + '&gson={0}'.format(layout_rec.json) layout_links.append({'uid': layout_rec.uid, 'link': out_link}) else: json_recs = [] layout_links = [] self.set_cookie('user_pass', cookie_str) map_hist = [] if self.get_secure_cookie('map_hist'): for xx in range( 0, len(self.get_secure_cookie('map_hist').decode('utf-8')), 4): map_hist.append( self.get_secure_cookie('map_hist').decode('utf-8')[xx:xx + 4]) if 'fullscreen' in self.request.arguments: tmpl = 'app_theme/app/full_screen.html' # if self.userinfo.privilege[4] == '1': # tmpl = 'app_theme/app/full_vip.html' # else: # tmpl = 'app_theme/app/full_screen.html' else: tmpl = 'app_theme/app/show_map.html' rel_recs = self.mrel.get_app_relations(rec.uid, 4) rand_recs = self.mapp.query_random(4 - rel_recs.count() + 2) self.render( tmpl, kwd=kwd, calc_info=rec, userinfo=self.userinfo, relations=rel_recs, rand_recs=rand_recs, unescape=tornado.escape.xhtml_unescape, ad_switch=random.randint(1, 18), tag_info=self.mapp2tag.get_by_id(app_id), recent_apps=self.musage.query_recent(self.get_current_user(), 6)[1:], map_hist=map_hist, json_recs=json_recs, layout_links=layout_links, replys=replys, )