def POST(self, node_name): node = node_model().get_one({'name':node_name}) if node is None: return admin_render.node_nf('节点不存在', self.crumb.output()) if self.form.validates(): node_model().update({'name':node.name}, {'display_name':self.form.d.display_name, 'description':self.form.d.description}) raise web.SeeOther('/admin/node/'+node.name)
def POST(self, cat_name): cat = cat_model().get_one({"name": cat_name}) if cat is None: self.crumb.append("分类不存在") return admin_render.cat_nf("分类不存在", self.crumb.output()) if self.form.validates(): if node_model().unique_insert({"name": self.form.d.name}): # 为了保证不插入空的display_name的节点,故此 try: node_model().update( {"name": self.form.d.name}, { "category_id": cat.id, "display_name": self.form.d.display_name, "description": self.form.d.description, }, ) except: node_model().delete({"name": self.form.d.name}) web.SeeOther("/admin/node/" + self.form.d.name) else: return admin_render.create_cat("节点名已存在", self.crumb.output(), self.form) else: return admin_render.create_node("添加新节点", self.crumb.output(), cat, self.form)
def GET(self): title = '首页' #sql = 'SELECT post_id FROM comment GROUP BY post_id ORDER BY MAX(time) DESC LIMIT 20' #post_ids = post_model().query_result(sql) post_results = post_model().get_all(order='last_update DESC', limit=20) posts = [] for post_result in post_results: #post_result = post_model().get_one({'id':row.post_id}) post = {'post': post_result} user = user_model().get_one({'id': post_result.user_id}) post['user'] = user node = node_model().get_one({'id': post_result.node_id}) post['node'] = node comment = comment_model().get_one({'post_id': post_result.id}, order='time DESC') if comment: comment_user = user_model().get_one({'id': comment.user_id}) post['comment_user'] = comment_user else: post['comment_user'] = None posts.append(post) cats_result = cat_model().get_all() cats = [] for cat_result in cats_result: cat = {'cat': cat_result} node = node_model().get_all({'category_id': cat_result.id}) cat['node'] = node cats.append(cat) return render.index(cats, posts, title)
def GET(self): title = '首页' #sql = 'SELECT post_id FROM comment GROUP BY post_id ORDER BY MAX(time) DESC LIMIT 20' #post_ids = post_model().query_result(sql) post_results = post_model().get_all(order='last_update DESC', limit=20) posts = [] for post_result in post_results: #post_result = post_model().get_one({'id':row.post_id}) post = {'post':post_result} user = user_model().get_one({'id':post_result.user_id}) post['user'] = user node = node_model().get_one({'id':post_result.node_id}) post['node'] = node comment = comment_model().get_one({'post_id':post_result.id}, order='time DESC') if comment: comment_user = user_model().get_one({'id':comment.user_id}) post['comment_user'] = comment_user else: post['comment_user'] = None posts.append(post) cats_result = cat_model().get_all() cats = [] for cat_result in cats_result: cat = {'cat':cat_result} node = node_model().get_all({'category_id':cat_result.id}) cat['node'] = node cats.append(cat) return render.index(cats, posts, title)
def POST(self, node_name): node = node_model().get_one({"name": node_name}) if node is None: return admin_render.node_nf("节点不存在", self.crumb.output()) if self.form.validates(): node_model().update( {"name": node.name}, {"display_name": self.form.d.display_name, "description": self.form.d.description} ) raise web.SeeOther("/admin/node/" + node.name)
def POST(self, node_name): node = node_model().get_one({"name": node_name}) if node is None: return admin_render.node_nf("节点不存在", self.crumb.output()) cat = cat_model().get_one({"id": node.category_id}) self.crumb.append(cat.display_name, "/admin/cat/" + cat.name) self.crumb.append(node.display_name, "/admin/node/" + node.name) self.crumb.append("设置节点图标") import cgi import os cgi.maxlen = 2 * 1024 * 1024 # 2MB try: x = web.input(icon={}) except ValueError: return admin_render.set_node_icon("设置节点图标", self.crumb.output(), node, " <<超过大小限制") if "icon" in x: # 客户端为windows时注意 filepath = x.icon.filename.replace("\\", "/") # 获取文件名 filename = filepath.split("/")[-1] # 获取后缀 ext = filename.split(".", 1)[1].lower() ext_allow = ("jpg", "png", "gif", "jpeg") # 判断文件后缀名 if ext in ext_allow: # 要上传的路径 filedir = "static/icons/tmp/" try: os.makedirs("static/icons/tmp") except: pass filename = str(session.user_id) + "." + ext if os.path.exists(filedir + filename): os.remove(filedir + filename) fout = open(filedir + filename, "wb") fout.write(x.icon.file.read()) fout.close() node_model().set_icon(filename, node.id) error = False else: message = " <<请上传指定格式文件" error = True if error: return admin_render.set_node_icon("设置节点图标", self.crumb.output(), node, message) else: raise web.SeeOther("/admin/node/icon/" + node.name)
def GET(self): cat_result = cat_model().get_all() cats = [] for cat in cat_result: node_total = node_model().count_table({'category_id':cat.id}) cats.append({'cat':cat, 'node_total':node_total}) return admin_render.index('后台', cats, self.crumb.output())
def GET(self): limit = 10 self.crumb.append('我关注的人的最新主题') # 取出收藏的节点id followings = user_meta_model().get_all({'user_id':session.user_id, 'meta_key':'follow'}) if len(followings) > 0 : user_favs = [] for following in followings: user_favs.append(following.meta_value) total_rows = post_model().count_table({'user_id':user_favs}) pagination = Pagination('/my/following', total_rows, limit = limit) page = pagination.true_page(web.input(p=1)['p']) posts_result = post_model().get_all(conditions = {'user_id': user_favs}, order = 'time DESC', limit = limit, offset = (page-1)*limit) posts = [] for post_result in posts_result: post = {'post':post_result} user = user_model().get_one({'id':post_result.user_id}) post['user'] = user node = node_model().get_one({'id':post_result.node_id}) post['node'] = node comment = comment_model().get_one({'post_id':post_result.id}, order='time DESC') if comment: comment_user = user_model().get_one({'id':comment.user_id}) post['comment_user'] = comment_user else: post['comment_user'] = None posts.append(post) else: posts = None total_rows = 0 pagination = Pagination('/my/nodes', total_rows) page = pagination.true_page(web.input(p=1)['p']) return render.following_posts('来自我收藏的节点的最新主题', posts, total_rows, self.crumb.output(), pagination.output())
def GET(self, name): limit = 10 user = user_model().get_one({'name':name}) crumb = Crumb() if user: crumb.append(name, '/profile/'+name) crumb.append('全部主题') total_rows = post_model().count_table({'user_id':user.id}) pagination = Pagination('/profile/'+name+'/posts', total_rows, limit = limit) page = pagination.true_page(web.input(p=1)['p']) posts_result = post_model().get_all({'user_id':user.id}, limit = limit, offset = (page-1) * limit, order = 'time DESC') posts = [] for post_result in posts_result: post = {'post':post_result} node = node_model().get_one({'id':post_result.node_id}) post['node'] = node comment = comment_model().get_one({'post_id':post_result.id}, order='time DESC') if comment: comment_user = user_model().get_one({'id':comment.user_id}) post['comment_user'] = comment_user else: post['comment_user'] = None posts.append(post) return render.user_posts('全部主题', user, posts, total_rows, crumb.output(), pagination.output()) else: crumb.append('会员未找到') return render.user_nf('会员未找到', crumb.output())
def GET(self): limit = 10 self.crumb.append('我收藏的主题') user = user_model().get_one({'id':session.user_id}) pagination = Pagination('/my/posts', user.post_favs, limit = limit) if user.post_favs > 0: page = pagination.true_page(web.input(p=1)['p']) post_favs = user_meta_model().get_all({'user_id':user.id, 'meta_key':'post_fav'}, limit = limit, offset = (page-1)*limit, order = 'id DESC') posts = [] for post_fav in post_favs: post_result = post_model().get_one({'id':post_fav.meta_value}) post = {'post':post_result} user = user_model().get_one({'id':post_result.user_id}) post['user'] = user node = node_model().get_one({'id':post_result.node_id}) post['node'] = node comment = comment_model().get_one({'post_id':post_result.id}, order='time DESC') if comment: comment_user = user_model().get_one({'id':comment.user_id}) post['comment_user'] = comment_user else: post['comment_user'] = None posts.append(post) else: posts = None return render.post_favs('我收藏的主题', user, posts, self.crumb.output(), pagination.output())
def GET(self): #sql = 'SELECT post_id FROM comment GROUP BY post_id ORDER BY MAX(time) DESC LIMIT 20' #post_ids = post_model().query_result(sql) crumb = Crumb() limit = 50 total = post_model().count_table() pagination = Pagination('/recent', total, limit=limit) page = pagination.true_page(web.input(p=1)['p']) post_results = post_model().get_all(limit=limit, offset=(page - 1) * limit, order='time DESC') posts = [] for post_result in post_results: #post_result = post_model().get_one({'id':row.post_id}) post = {'post': post_result} user = user_model().get_one({'id': post_result.user_id}) post['user'] = user node = node_model().get_one({'id': post_result.node_id}) post['node'] = node comment = comment_model().get_one({'post_id': post_result.id}, order='time DESC') if comment: comment_user = user_model().get_one({'id': comment.user_id}) post['comment_user'] = comment_user else: post['comment_user'] = None posts.append(post) crumb.append('最近的主题') return render.recent('最近的主题', total, crumb.output(), posts, pagination.output())
def POST(self, node_name): if session.user_id is None: raise web.SeeOther('/login?next=/post/create' + node_name) conditions = {'name' : node_name} node = node_model().get_one(conditions) if node is None: return render.not_found('节点未找到', '节点未找到') if not self.form.validates(): return render.create_post(self.form, '创建失败, 请重创:D', self.crumb.output()) user_model().update_session(session.user_id) length, cost = money_model().cal_post(self.form.d.content) if session.money < cost: self.crumb.append('财富不够') return render.no_money('财富不够', '你的财富值不够,不能创建改主题 :(', self.crumb.output()) title = strip_tags(self.form.d.title) content = html2db(self.form.d.content) content, receiver_list = notify_model().convert_content(content) create_time = time.time() post_id = post_model().insert({'title' : title, 'content' : content, 'node_id' : node.id, 'time' : create_time, 'last_update':create_time, 'user_id' : session.user_id}) # money money_type_id = money_type_model().get_one({'name':'post'})['id'] money_model().insert({'user_id':session.user_id, 'money_type_id':money_type_id, 'amount':-cost, 'length':length, 'balance':user_model().update_money(session.user_id, -cost), 'foreign_id':post_id}) # notify receiver_list = list_diff(receiver_list, [session.name]) notify_model().insert_notify(session.user_id, receiver_list, 'post_at', post_id) user_model().update_session(session.user_id) raise web.seeother('/post/' + str(post_id))
def POST(self, cat_name): cat = cat_model().get_one({'name':cat_name}) if cat is None: self.crumb.append('分类不存在') return admin_render.cat_nf('分类不存在', self.crumb.output()) if self.form.validates(): if node_model().unique_insert({'name':self.form.d.name}): # 为了保证不插入空的display_name的节点,故此 try: node_model().update({'name':self.form.d.name}, {'category_id':cat.id, 'display_name':self.form.d.display_name, 'description':self.form.d.description}) except: node_model().delete({'name':self.form.d.name}) self.crumb.clear() web.SeeOther('/admin/node/'+self.form.d.name) else: return admin_render.create_cat('节点名已存在', self.crumb.output(), self.form)
def GET(self, node_name): limit = 10 node = node_model().get_one({'name': node_name}) if node is None: self.crumb.append('节点未找到') return render.node_nf('节点未找到', self.crumb.output()) else: self.crumb.append(node.display_name) node_fav = False if session.user_id: if user_meta_model().get_one({'user_id':session.user_id, 'meta_key':'node_fav', 'meta_value':node.id}): node_fav = True total_rows = post_model().count_table({'node_id':node.id}) pagination = Pagination('/node/'+node_name, total_rows, limit = limit) page = pagination.true_page(web.input(p=1)['p']) posts_result = post_model().get_all({'node_id' : node.id}, limit = limit, offset = (page-1)*limit , order = 'time DESC') posts = [] for post_result in posts_result: post = {'post':post_result} user = user_model().get_one({'id':post_result.user_id}) post['user'] = user comment = comment_model().get_one({'post_id':post_result.id}, order='time DESC') if comment: comment_user = user_model().get_one({'id':comment.user_id}) post['comment_user'] = comment_user else: post['comment_user'] = None posts.append(post) return render.node_posts(posts, node, total_rows, node_fav, self.crumb.output(), pagination.output())
def GET(self): # sql = 'SELECT post_id FROM comment GROUP BY post_id ORDER BY MAX(time) DESC LIMIT 20' # post_ids = post_model().query_result(sql) crumb = Crumb() limit = 50 total = post_model().count_table() pagination = Pagination("/recent", total, limit=limit) page = pagination.true_page(web.input(p=1)["p"]) post_results = post_model().get_all(limit=limit, offset=(page - 1) * limit, order="time DESC") posts = [] for post_result in post_results: # post_result = post_model().get_one({'id':row.post_id}) post = {"post": post_result} user = user_model().get_one({"id": post_result.user_id}) post["user"] = user node = node_model().get_one({"id": post_result.node_id}) post["node"] = node comment = comment_model().get_one({"post_id": post_result.id}, order="time DESC") if comment: comment_user = user_model().get_one({"id": comment.user_id}) post["comment_user"] = comment_user else: post["comment_user"] = None posts.append(post) crumb.append("最近的主题") return render.recent("最近的主题", total, crumb.output(), posts, pagination.output())
def GET(self): cat_result = cat_model().get_all() cats = [] for cat in cat_result: node_total = node_model().count_table({"category_id": cat.id}) cats.append({"cat": cat, "node_total": node_total}) return admin_render.index("后台", cats, self.crumb.output())
def POST(self, node_name): node = node_model().get_one({'name':node_name}) if node is None: return admin_render.node_nf('节点不存在', self.crumb.output()) cat = cat_model().get_one({'id':node.category_id}) self.crumb.append(cat.display_name, '/admin/cat/'+cat.name) self.crumb.append(node.display_name, '/admin/node/'+node.name) self.crumb.append('设置节点图标') import cgi import os cgi.maxlen = 2 * 1024 * 1024 # 2MB try: x = web.input(icon={}) except ValueError: return admin_render.set_node_icon('设置节点图标', self.crumb.output(), node, ' <<超过大小限制') if 'icon' in x: #客户端为windows时注意 filepath=x.icon.filename.replace('\\','/') #获取文件名 filename=filepath.split('/')[-1] #获取后缀 ext = filename.split('.', 1)[1].lower() ext_allow = ('jpg', 'png', 'gif', 'jpeg') #判断文件后缀名 if ext in ext_allow: #要上传的路径 filedir = 'static/icons/tmp/' try: os.makedirs('static/icons/tmp') except: pass filename = str(session.user_id) +'.'+ext if os.path.exists(filedir+filename): os.remove(filedir+filename) fout = open(filedir + filename, 'wb') fout.write(x.icon.file.read()) fout.close() node_model().set_icon(filename, node.id) error = False else: message = ' <<请上传指定格式文件' error = True if error: return admin_render.set_node_icon('设置节点图标', self.crumb.output(), node, message) else: self.crumb.clear() raise web.SeeOther('/admin/node/icon/'+node.name)
def GET(self, node_name): node = node_model().get_one({"name": node_name}) if node is None: return admin_render.node_nf("节点不存在", self.crumb.output()) cat = cat_model().get_one({"id": node.category_id}) self.crumb.append(cat.display_name, "/admin/cat/" + cat.name) self.crumb.append(node.display_name, "/admin/node/" + node.name) self.crumb.append("设置节点图标") return admin_render.set_node_icon("设置节点图标", self.crumb.output(), node)
def GET(self, node_name): node = node_model().get_one({'name':node_name}) if node is None: return admin_render.node_nf('节点不存在', self.crumb.output()) cat = cat_model().get_one({'id':node.category_id}) self.crumb.append(cat.display_name, '/admin/cat/'+cat.name) self.crumb.append(node.display_name, '/admin/node/'+node.name) self.crumb.append('设置节点图标') return admin_render.set_node_icon('设置节点图标', self.crumb.output(), node)
def GET(self, node_name): node = node_model().get_one({'name': node_name}) if node is None: self.crumb.append('节点未找到') return render.node_nf('节点未找到', self.crumb.output()) if session.user_id is None: raise web.SeeOther('/login?next=/node/'+node_name) user_meta_model().delete({'user_id':session.user_id, 'meta_key':'node_fav', 'meta_value':node.id}) user_model().update({'id':session.user_id}, {'node_favs':user_meta_model().count_meta({'user_id':session.user_id, 'meta_key':'node_fav'})}) user_model().update_session(session.user_id) raise web.SeeOther('/node/'+node_name)
def GET(self, method): web.header('Content-Type', 'application/json') if method.lower() == 'show': cats_result = cat_model().get_all() cats = [] for cat_result in cats_result: cat = {'cat':cat_result} node = node_model().get_all({'category_id':cat_result.id}) cat['node'] = node cats.append(cat) return json.dumps(cats)
def POST(self, cat_name): cat = cat_model().get_one({'name':cat_name}) if cat is None: self.crumb.append('分类不存在') return admin_render.cat_nf('分类不存在', self.crumb.output()) if self.form.validates(): if node_model().unique_insert({'name':self.form.d.name, 'category_id':cat.id, 'display_name':self.form.d.display_name, 'description':self.form.d.description}): web.SeeOther('/admin/node/'+self.form.d.name) else: return admin_render.create_cat('节点名已存在', self.crumb.output(), self.form) else: return admin_render.create_node('添加新节点', self.crumb.output(), cat, self.form)
def GET(self, name): limit = 10 user = user_model().get_one({'name': name}) if user is None: crumb = Crumb() crumb.append('会员未找到') return render.user_nf('会员未找到', crumb.output()) else: posts_result = post_model().get_all({'user_id': user.id}, limit=limit, order='time DESC') if len(posts_result) > 0: posts = [] for post_result in posts_result: post = {'post': post_result} node = node_model().get_one({'id': post_result.node_id}) post['node'] = node comment = comment_model().get_one( {'post_id': post_result.id}, order='time DESC') if comment: comment_user = user_model().get_one( {'id': comment.user_id}) post['comment_user'] = comment_user else: post['comment_user'] = None posts.append(post) else: posts = None comments_result = comment_model().get_all({'user_id': user.id}, limit=limit, order='time DESC') if len(comments_result) > 0: comments = [] for comment_result in comments_result: post = post_model().get_one({'id': comment_result.post_id}) post_user = user_model().get_one({'id': post.user_id}) comment = { 'post': post, 'comment': comment_result, 'post_user': post_user } comments.append(comment) else: comments = None following = False if session.user_id: if user_meta_model().get_one({ 'user_id': session.user_id, 'meta_key': 'follow', 'meta_value': user.id }): following = True return render.profile(user.name, user, posts, comments, following)
def GET(self, node_name): if session.user_id is None: raise web.SeeOther('/login?next=/post/create/' + node_name) conditions = {'name' : node_name} node = node_model().get_one(conditions) self.crumb.append(node.display_name, '/node/'+node.name) self.crumb.append('创建新主题') if node is None: self.crumb.claer() return render.not_found('节点未找到', '节点未找到') title = '创建主题' return render.create_post(self.form, title, self.crumb.output())
def GET(self, cat_name): cat = cat_model().get_one({'name':cat_name}) if cat is None: self.crumb.append('分类不存在') return admin_render.cat_nf('分类不存在', self.crumb.output()) else: self.crumb.append(cat.display_name) nodes = node_model().get_all({'category_id':cat.id}) self.form.name.set_value(cat.name) self.form.display_name.set_value(cat.display_name) self.form.description.set_value(cat.description) return admin_render.cat_view(cat.display_name, self.crumb.output(), cat, self.form, nodes)
def GET(self, node_name): node = node_model().get_one({'name':node_name}) if node is None: return admin_render.node_nf('节点不存在', self.crumb.output()) ##return node cat = cat_model().get_one({'id':node.category_id}) self.form.name.set_value(node.name) self.form.display_name.set_value(node.display_name) self.form.description.set_value(node.description) self.crumb.append(cat.display_name, '/admin/cat/'+cat.name) self.crumb.append(node.display_name) return admin_render.node_view(node.display_name, self.crumb.output(), node, self.form)
def GET(self, node_name): if session.user_id is None: raise web.SeeOther('/login?next=/post/create/' + node_name) conditions = {'name': node_name} node = node_model().get_one(conditions) self.crumb.append(node.display_name, '/node/' + node.name) self.crumb.append('创建新主题') if node is None: self.crumb.claer() return render.not_found('节点未找到', '节点未找到') title = '创建主题' return render.create_post(self.form, title, self.crumb.output())
def GET(self): title = '首页' #sql = 'SELECT post_id FROM comment GROUP BY post_id ORDER BY MAX(time) DESC LIMIT 20' #post_ids = post_model().query_result(sql) posts = post_model().trends() cats_result = cat_model().get_all() cats = [] for cat_result in cats_result: cat = {'cat':cat_result} node = node_model().get_all({'category_id':cat_result.id}) cat['node'] = node cats.append(cat) return render.index(cats, posts, title)
def GET(self): title = '首页' #sql = 'SELECT post_id FROM comment GROUP BY post_id ORDER BY MAX(time) DESC LIMIT 20' #post_ids = post_model().query_result(sql) posts = post_model().trends() cats_result = cat_model().get_all() cats = [] for cat_result in cats_result: cat = {'cat': cat_result} node = node_model().get_all({'category_id': cat_result.id}) cat['node'] = node cats.append(cat) return render.index(cats, posts, title)
def POST(self, node_name): if session.user_id is None: raise web.SeeOther('/login?next=/post/create' + node_name) conditions = {'name': node_name} node = node_model().get_one(conditions) if node is None: return render.not_found('节点未找到', '节点未找到') if not self.form.validates(): return render.create_post(self.form, '创建失败, 请重创:D', self.crumb.output()) user_model().update_session(session.user_id) length, cost = money_model().cal_post(self.form.d.content) if session.money < cost: self.crumb.append('财富不够') return render.no_money('财富不够', '你的财富值不够,不能创建改主题 :(', self.crumb.output()) title = strip_tags(self.form.d.title) content = html2db(self.form.d.content) content, receiver_list = notify_model().convert_content(content) create_time = time.time() post_id = post_model().insert({ 'title': title, 'content': content, 'node_id': node.id, 'time': create_time, 'last_update': create_time, 'user_id': session.user_id }) # money money_type_id = money_type_model().get_one({'name': 'post'})['id'] money_model().insert({ 'user_id': session.user_id, 'money_type_id': money_type_id, 'amount': -cost, 'length': length, 'balance': user_model().update_money(session.user_id, -cost), 'foreign_id': post_id }) # notify receiver_list = list_diff(receiver_list, [session.name]) notify_model().insert_notify(session.user_id, receiver_list, 'post_at', post_id) user_model().update_session(session.user_id) raise web.seeother('/post/' + str(post_id))
def GET(self, node_name): limit = 10 node = node_model().get_one({'name': node_name}) if node is None: self.crumb.append('节点未找到') return render.node_nf('节点未找到', self.crumb.output()) else: self.crumb.append(node.display_name) node_fav = False if session.user_id: if user_meta_model().get_one({'user_id':session.user_id, 'meta_key':'node_fav', 'meta_value':node.id}): node_fav = True total_rows = post_model().count_table({'node_id':node.id}) pagination = Pagination('/node/'+node_name, total_rows, limit = limit) page = pagination.true_page(web.input(p=1)['p']) posts = post_model().trends(limit, (page-1) * limit, node.id) return render.node_posts(posts, node, total_rows, node_fav, self.crumb.output(), pagination.output())
def GET(self, node_name): limit = 10 node = node_model().get_one({'name': node_name}) if node is None: self.crumb.append('节点未找到') return render.node_nf('节点未找到', self.crumb.output()) else: self.crumb.append(node.display_name) node_fav = False if session.user_id: if user_meta_model().get_one({ 'user_id': session.user_id, 'meta_key': 'node_fav', 'meta_value': node.id }): node_fav = True total_rows = post_model().count_table({'node_id': node.id}) pagination = Pagination('/node/' + node_name, total_rows, limit=limit) page = pagination.true_page(web.input(p=1)['p']) posts_result = post_model().get_all({'node_id': node.id}, limit=limit, offset=(page - 1) * limit, order='time DESC') posts = [] for post_result in posts_result: post = {'post': post_result} user = user_model().get_one({'id': post_result.user_id}) post['user'] = user comment = comment_model().get_one({'post_id': post_result.id}, order='time DESC') if comment: comment_user = user_model().get_one( {'id': comment.user_id}) post['comment_user'] = comment_user else: post['comment_user'] = None posts.append(post) return render.node_posts(posts, node, total_rows, node_fav, self.crumb.output(), pagination.output())
def GET(self, name): limit = 10 user = user_model().get_one({'name':name}) if user is None: crumb = Crumb() crumb.append('会员未找到') return render.user_nf('会员未找到', crumb.output()) else: posts_result = post_model().get_all({'user_id':user.id}, limit = limit, order = 'time DESC') if len(posts_result) > 0: posts = [] for post_result in posts_result: post = {'post':post_result} node = node_model().get_one({'id':post_result.node_id}) post['node'] = node comment = comment_model().get_one({'post_id':post_result.id}, order='time DESC') if comment: comment_user = user_model().get_one({'id':comment.user_id}) post['comment_user'] = comment_user else: post['comment_user'] = None posts.append(post) else: posts = None comments_result = comment_model().get_all({'user_id':user.id}, limit = limit, order = 'time DESC') if len(comments_result) > 0: comments = [] for comment_result in comments_result: post = post_model().get_one({'id':comment_result.post_id}) post_user = user_model().get_one({'id':post.user_id}) comment = {'post':post, 'comment':comment_result, 'post_user':post_user} comments.append(comment) else: comments = None following = False if session.user_id: if user_meta_model().get_one({'user_id':session.user_id, 'meta_key':'follow', 'meta_value':user.id}): following = True return render.profile(user.name, user, posts, comments, following)
def GET(self, id): limit = 10 post_model().add_view(id) post = post_model().get_one({'id':id}) if post is None: self.crumb.append('主题未找到') return render.post_nf('主题未找到', self.crumb.output()) else: post_fav = False if session.user_id: if user_meta_model().get_one({'user_id':session.user_id, 'meta_key':'post_fav', 'meta_value':post.id}): post_fav = True favs = user_meta_model().count_meta({'meta_key':'post_fav','meta_value':id}) node = node_model().get_one({'id':post.node_id}) user = user_model().get_one({'id':post.user_id}) #return user.name self.crumb.append(node.display_name, '/node/'+node.name) thanks = False if session.user_id is not None: if post_thanks_model().get_one({'user_id':session.user_id, 'post_id':post.id}): thanks = True condition = {'post_id' : post.id} # Pagination total = comment_model().count_table(condition) pagination = Pagination('/post/'+str(post.id), total, limit = 100) page = pagination.true_page(web.input(p=1)['p']) comments_result = comment_model().get_all(condition, order = 'time ASC', limit = 100, offset = (page-1)*100) comments = [] if comments_result is not None: for comment_result in comments_result: comment_user = user_model().get_one({'id':comment_result.user_id}) comment_thanks = False if session.user_id is not None: if comment_thanks_model().get_one({'user_id':session.user_id, 'comment_id':comment_result.id}): comment_thanks = True comments.append({'comment':comment_result, 'user':comment_user, 'thanks':comment_thanks}) form = comment_model().form return render.post_view(post, user, comments, form, post_fav, favs, thanks, self.crumb.output(), pagination)
def GET(self, id): limit = 10 post_model().add_view(id) post = post_model().get_one({'id':id}) if post is None: self.crumb.append('主题未找到') return render.post_nf('主题未找到', self.crumb.output()) else: post_fav = False if session.user_id: if user_meta_model().get_one({'user_id':session.user_id, 'meta_key':'post_fav', 'meta_value':post.id}): post_fav = True favs = user_meta_model().count_meta({'meta_key':'post_fav','meta_value':id}) node = node_model().get_one({'id':post.node_id}) user = user_model().get_one({'id':post.user_id}) #return user.name self.crumb.append(node.display_name, '/node/'+node.name) thanks = False if session.user_id is not None: if post_thanks_model().get_one({'user_id':session.user_id, 'post_id':post.id}): thanks = True condition = {'post_id' : post.id} # Pagination total = comment_model().count_table(condition) pagination = Pagination('/post/'+str(post.id), total, limit = 100) page = pagination.true_page(web.input(p=(total/100)*100 + 1)['p']) comments_result = comment_model().get_all(condition, order = 'time ASC', limit = 100, offset = (page-1)*100) comments = [] if comments_result is not None: for comment_result in comments_result: comment_user = user_model().get_one({'id':comment_result.user_id}) comment_thanks = False if session.user_id is not None: if comment_thanks_model().get_one({'user_id':session.user_id, 'comment_id':comment_result.id}): comment_thanks = True comments.append({'comment':comment_result, 'user':comment_user, 'thanks':comment_thanks}) form = comment_model().form return render.post_view(post, user, comments, form, post_fav, favs, thanks, self.crumb.output(), pagination)
def __init__(self): super(node, self).__init__() self.form = node_model().modify_form
def __init__(self): super(create_node, self).__init__() self.form = node_model().create_form