def on_message(self, message): json_data = get_cleaned_json_data_websocket(message, ['opt', 'data']) data = json_data['data'] opt = json_data['opt'] if opt == 'update_recent_user_list': current_user_list = ChatMessage.get_recent_user_list( self.current_user) current_user_list['code'] = 'update_recent_user_list' self.write_message(json_result(0, current_user_list)) elif opt == 'update_recent_user_list_and_open': current_user_list = ChatMessage.get_recent_user_list( self.current_user) current_user_list['code'] = 'update_recent_user_list_and_open' self.write_message(json_result(0, current_user_list)) elif opt == 'send_message': other_id = data['user_id'] other = User.get(User.id == other_id) content = data['content'] cl = ChatMessage.create(sender=self.current_user, receiver=other, content=content) other_websocket = WebsocketChatHandler.is_online(other.username) self.write_message( json_result( 0, { 'code': 'receive_message', 'other_id': other.id, 'msg': ['>', cl.content, TimeUtil.datetime_delta(cl.time)] })) other_websocket.write_message( json_result( 0, { 'code': 'receive_message', 'other_id': self.current_user.id, 'msg': ['<', cl.content, TimeUtil.datetime_delta(cl.time)] })) elif opt == 'recent_chat_message': other_id = data['user_id'] other = User.get(User.id == other_id) recent_message = ChatMessage.get_recent_chat_message( self.current_user, other) recent_message['code'] = 'recent_chat_message' self.write_message(json_result(0, recent_message))
def post(self, *args, **kwargs): post_data = get_cleaned_post_data(self, ['username', 'email', 'password']) if User.get_by_username(username=post_data['username']): self.write(json_result(1, MSG.str('register_same_name'))) return if User.get_by_email(email=post_data['email']): self.write(json_result(1, MSG.str('register_same_email'))) return user = User.new(username=post_data['username'], email=post_data['email'], password=post_data['password']) self.write(json_result(0,{'username': user.username}))
def post(self, *args, **kwargs): post_data = get_cleaned_post_data(self, ['username', 'email', 'password']) if User.get_by_username(username=post_data['username']): self.write(json_result(1, '用户名经存在')) return if User.get_by_email(email=post_data['email']): self.write(json_result(1, '邮箱已经存在')) return user = User.new(username=post_data['username'], email=post_data['email'], password=post_data['password']) self.write(json_result(0, {'username': user.username}))
def post(self, *args, **kwargs): json_data = get_cleaned_json_data(self, ['opt', 'data']) data = json_data['data'] opt = json_data['opt'] # 关注用户 if opt == 'follow-user': try: user = User.get(User.id == data['user']) except: self.write(json_result(1, '没有该用户')) return Follower.create(user=user, follower=self.current_user) self.write(json_result(0, 'success')) # 取关用户 elif opt == 'unfollow-user': try: user = User.get(User.id == data['user']) except: self.write(json_result(1, '没有该用户')) return try: f = Follower.get(Follower.user == user, Follower.follower == self.current_user) except: self.write(json_result(1, '还没有关注他')) return f.delete_instance() self.write(json_result(0, 'success')) # 更新头像 elif opt == 'update-avatar': import base64 avatar = base64.b64decode(data['avatar']) user = self.current_user avatar_file_name = user.username + '.png' avatar_file = open(config.avatar_upload_path + avatar_file_name, 'wb') avatar_file.write(avatar) user.avatar = avatar_file_name user.save() self.write(json_result(0, 'success')) # 更新社区主题 elif opt == 'update-theme': user = self.current_user user.theme = data['theme'] user.save() self.write(json_result(0, 'success')) else: self.write(json_result(1, 'opt不支持'))
def get(self, user_id, *args, **kwargs): user = User.get(User.id == user_id) profile = Profile.get_by_user(user) posts = Post.select().where(Post.user == user, Post.is_delete == False).limit(10) postreplys = PostReply.select().where(PostReply.user == user).limit(10) collectposts = CollectPost.select().where( CollectPost.user == user).limit(10) who_follow = Follower.select( Follower.follower).where(Follower.user == user) follow_who = Follower.select( Follower.user).where(Follower.follower == user) # 是否显示关注 is_follow = True if Follower.is_follow(user, self.current_user) else False is_online = True if WebsocketChatHandler.is_online( user.username) else False self.render('user/profile.html', user=user, who_follow=who_follow, follow_who=follow_who, profile=profile, posts=posts, postreplys=postreplys, is_follow=is_follow, is_online=is_online, collectposts=collectposts)
def post(self, *args, **kwargs): post_data = get_cleaned_post_data(self, ['username', 'password']) user = User.auth(post_data['username'], post_data['password']) if user: self.set_secure_cookie('uuid', user.username) result = json_result(0, 'login success!') else: result = json_result(-1, 'login failed!') self.write(result)
def get_current_user(self): """ 获取当前用户 :return: """ username = self.get_secure_cookie('uuid') if not username: return None user = User.get_by_username(username) return user
def post(self, *args, **kwargs): post_data = get_cleaned_post_data(self, ['username', 'password']) user = User.auth(post_data['username'], post_data['password']) if user: # self.set_secure_cookie('uuid', user.username) self.set_current_user(user.username) result = json_result(0, 'login success!') else: result = json_result(-1, MSG.str('login_password_error')) self.write(result)
def post(self, *args, **kwargs): post_data = get_cleaned_post_data(self, ['username', 'password']) user = User.auth(post_data['username'], post_data['password']) if user: self.set_secure_cookie('uuid', user.username) self.set_secure_cookie('isteacher', str(user.level)) # print('set user level'+str(user.level)+ str(type(user.level)) ) result = json_result(0, 'login success!') else: result = json_result(-1, '用户名密码错误...') self.write(result)
def on_message(self, message): json_data = get_cleaned_json_data_websocket(message, ['opt', 'data']) data = json_data['data'] opt = json_data['opt'] if opt == 'update_recent_user_list': logger.debug('update_recent_user_list...') recent_user_list = ChatMessage.get_recent_user_list(self.current_user) self.write_message(json_result(0,{'code': 'recent_user_list', 'data': recent_user_list})) elif opt == 'update_recent_user_list_and_open': recent_user_list = ChatMessage.get_recent_user_list(self.current_user) self.write_message(json_result(0,recent_user_list)) elif opt == 'send_message': other_id = data['user_id'] other = User.get(User.id == other_id) content = data['content'] cl = ChatMessage.create(sender=self.current_user, receiver=other, content=content) self.write_message(json_result(0, {'code': 'receive_a_message', 'data': { 'id': other.id, 'name': other.username, 'avatar': other.avatar, 'msg': ['>', cl.content, TimeUtil.datetime_delta(cl.time)]}})) # send to other user other_websocket = WebsocketChatHandler.is_online(other.username) if other_websocket: other_websocket.write_message(json_result(0, {'code': 'receive_a_message', 'data': { 'id': self.current_user.id, 'avatar': self.current_user.avatar, 'name': self.current_user.username, 'msg': ['<', cl.content, TimeUtil.datetime_delta(cl.time)]}})) elif opt == 'update_recent_message_list': other_id = data['user_id'] other = User.get(User.id == other_id) recent_message = ChatMessage.get_recent_chat_message(self.current_user, other) logger.debug(recent_message) self.write_message(json_result(0,{'code': 'recent_message_list', 'data':recent_message}))
def get(self, user_id, *args, **kwargs): user = User.get(User.id == user_id) who_follow = Follower.select(Follower.follower).where(Follower.user == user) follow_who = Follower.select(Follower.user).where(Follower.follower == user) profile = Profile.get_by_user(user) is_follow = Follower.is_follow(user, self.current_user) self.render('user/profile_follower.html', user=user, profile=profile, who_follow=who_follow, follow_who=follow_who, is_follow=is_follow)
def get_current_user(self): """ :return: """ # username = self.get_secure_cookie('uuid') if greenlet.getcurrent().parent: session = MongoSessionManager.load_session_from_request(self) username = session.data.get('username', None) if not username: return None user = User.get_by_username(username) return user return None
def test_user(): user = User.get_by_username('admin') if user: user.delete_instance() print('already exist <admin>,so delete it!') else: print('<admin> not exist') user = User.new(username='******', nickname='admin', password='******') print('new user <admin:admin>', user) user.set_password('root') print('change <admin> password to <root>') if User.auth('admin', 'admin'): print('auth success!') else: print('auth failed!') if User.exist('admin'): print('admin exist') else: print('admin not exist') print('User count ', User.count())
def get(self, user_id, *args, **kwargs): user = User.get(User.id == user_id) who_follow = Follower.select( Follower.follower).where(Follower.user == user) follow_who = Follower.select( Follower.user).where(Follower.follower == user) profile = Profile.get_by_user(user) is_follow = Follower.is_follow(user, self.current_user) self.render('user/profile_follower.html', user=user, profile=profile, who_follow=who_follow, follow_who=follow_who, is_follow=is_follow)
def get(self, user_id, *args, **kwargs): user = User.get(User.id == user_id) profile = Profile.get_by_user(user) posts = Post.select().where(Post.user == user).limit(10) postreplys = PostReply.select().where(PostReply.user == user).limit(10) collectposts = CollectPost.select().where( CollectPost.user == user).limit(10) # 是否显示关注 is_follow = Follower.is_follow(user, self.current_user) self.render('user/profile.html', user=user, profile=profile, posts=posts, postreplys=postreplys, is_follow=is_follow, collectposts=collectposts)
def get(self, user_id, *args, **kwargs): user = User.get(User.id == user_id) profile = Profile.get_by_user(user) posts = Post.select().where(Post.user == user, Post.is_delete == False).limit(10) postreplys = PostReply.select().where(PostReply.user == user).limit(10) collectposts = CollectPost.select().where(CollectPost.user == user).limit(10) who_follow = Follower.select(Follower.follower).where(Follower.user == user) follow_who = Follower.select(Follower.user).where(Follower.follower == user) # 是否显示关注 is_follow = True if Follower.is_follow(user, self.current_user) else False is_online = True if WebsocketChatHandler.is_online(user.username) else False self.render('user/profile.html', user=user, who_follow=who_follow, follow_who=follow_who, profile=profile, posts=posts, postreplys=postreplys, is_follow=is_follow, is_online=is_online, collectposts=collectposts)
def test_post(): user = User.get_by_username('admin') post = Post.create(title="test_vul_scan", content="vul_scan_content_04.27_12:47", user=user) post.up_visit() post.up_collect() print('new post <test_vul_scan:admin>') postreply = PostReply.create(post=post, user=user, content='test_reply') print('new postreply <test_reply:admin>') postreply.up_like() post.up_reply() post_test = Post.create( title="IDS是一种积极主动的安全防护技术", content= "入侵检测系统的核心价值在于通过对全网信息的分析,了解信息系统的安全状况,进而指导信息系统安全建设目标以及安全策略的确立和调整,而入侵防御系统的核心价值在于安全策略的实施—对黑客行为的阻击", user=user) postreply_test = PostReply.create( post=post, user=user, content= '入侵检测系统需要部署在网络内部,监控范围可以覆盖整个子网,包括来自外部的数据以及内部终端之间传输的数据,入侵防御系统则必须部署在网络边界,抵御来自外部的入侵,对内部攻击行为无能为力。' )
def create_test_data(db_mysql): from db.mysql_model.user import User, Profile, Follower, ChatMessage from db.mysql_model.post import Post, PostReply, PostCategory, PostTopic, CollectPost from db.mysql_model.common import Notification from db.mysql_model.blog import BlogPost, BlogPostLabel, BlogPostCategory logger.debug("DataBase is not exist, so create test data.") # -------------------- 测试用户功能 --------------- user_admin = User.new(username='******', email='*****@*****.**', password='******') user_test = User.new(username='******', email='*****@*****.**', password='******') # -------------------- 测试关注功能 --------------- Follower.create(user=user_admin, follower=user_test) # -------------------- 测试分类功能 -------------- logger.debug(''' 版块分类 专业: 计算机 学习: 学习资料、考研资料、家教、竞赛 生活: 共享账号、电影资源、常用软件、电脑故障 爱好: 摄影、健身 未分类: 校园通知、讨论 ''') postcategory0 = PostCategory.create(name='分类', str='live') posttopic0 = PostTopic.create(category=postcategory0, name='爱学习', str='live-study') posttopic1 = PostTopic.create(category=postcategory0, name='爱生活', str='live-life') posttopic2 = PostTopic.create(category=postcategory0, name='爱管“闲事”', str='live-thing') posttopic10 = PostTopic.create(name='通知', str='notice') posttopic11 = PostTopic.create(name='讨论', str='discussion') # ---------------- 测试新文章 -------------- post = Post.create( topic=posttopic0, title='test', content=tmp_post, user=user_admin ) # ---------------- 测试通知 -------------- Notification.new_post(post) # ------------测试新回复-------------- postreply = PostReply.create( post=post, user=user_test, content='test' ) post.update_latest_reply(postreply) # ---------------- 测试Blog -------------- bpc0 = BlogPostCategory.create(name='Tornado', str='Tornado') bp0 = BlogPost.create(title='Tornado', category=bpc0, content='Tornado content') BlogPostLabel.add_post_label('python,tornado', bp0) # ---------------- 测试chat -------------- chat_log_0 = ChatMessage.create(sender=user_admin, receiver=user_test, content='self>other') chat_log_0 = ChatMessage.create(sender=user_test, receiver=user_admin, content='other>self')
def get(self, *args, **kwargs): user_count = User.select().count() post_count = Post.select().count() self.render('dashboard/pages/index.html', user_count=user_count, post_count=post_count)
def get(self, *args, **kwargs): users = User.select() self.render('dashboard/pages/db-user-list.html', users=users)
def create_test_data(db_mysql): from db.mysql_model.user import User, Profile, Follower, ChatLog from db.mysql_model.post import Post, PostReply, PostCategory, PostTopic, CollectPost from db.mysql_model.common import Notification from db.mysql_model.blog import BlogPost, BlogPostLabel, BlogPostCategory logger.debug("DataBase is not exist, so create test data.") # -------------------- 建表 --------------- db_mysql.create_tables([User, ChatLog, PostCategory, PostTopic, Post, PostReply, CollectPost, Profile, Follower, Notification, BlogPostCategory, BlogPost, BlogPostLabel], safe=True) user_admin = User.new(username='******', email='*****@*****.**', password='******') user_test = User.new(username='******', email='*****@*****.**', password='******') # -------------------- 测试关注功能 --------------- Follower.create(user=user_admin, follower=user_test) # -------------------- 测试分类功能 -------------- logger.debug(""" 版块分类 docker: docker文章 registry: registry文章、私有hub、images分享, dockerfile分享 docker集群: docker集群文章 """) postcategory0 = PostCategory.create(name='docker', str='docker') postcategory1 = PostCategory.create(name='registry', str='registry') postcategory2 = PostCategory.create(name='docker集群', str='docker-cluster') posttopic0 = PostTopic.create(category=postcategory0, name='docker文章', str='docker-article') posttopic1 = PostTopic.create(category=postcategory1, name='registry文章', str='registry-article') posttopic2 = PostTopic.create(category=postcategory1, name='私有hub', str='private-hub') posttopic3 = PostTopic.create(category=postcategory1, name='image分享', str='image-share') posttopic4 = PostTopic.create(category=postcategory1, name='dockerfile分享', str='dockerfile-share') posttopic5 = PostTopic.create(category=postcategory2, name='docker集群文章', str='docker-cluster-article') posttopic10 = PostTopic.create(name='通知', str='notice') posttopic11 = PostTopic.create(name='讨论', str='discussion') # ---------------- 测试新文章 -------------- post = Post.create( topic=posttopic0, title='test', content=tmp_post, user=user_admin ) # ---------------- 测试通知 -------------- Notification.new_post(post) # ------------测试新回复-------------- postreply = PostReply.create( post=post, user=user_test, content='test' ) post.update_latest_reply(postreply) # ---------------- 测试Blog -------------- bpc0 = BlogPostCategory.create(name='Tornado', str='Tornado') bp0 = BlogPost.create(title='Tornado', category=bpc0, content='Tornado content') BlogPostLabel.add_post_label('python,tornado', bp0) # ---------------- 测试chat -------------- chat_log_0 = ChatLog.create(me=user_admin, other=user_test, content='self>other') chat_log_0 = ChatLog.create(me=user_test, other=user_admin, content='other>self')
def create_test_data(db_mysql): from db.mysql_model.user import User, Profile, Follower, ChatLog from db.mysql_model.post import Post, PostReply, PostCategory, PostTopic, CollectPost from db.mysql_model.common import Notification from db.mysql_model.blog import BlogPost, BlogPostLabel, BlogPostCategory logger.debug("DataBase is not exist, so create test data.") # -------------------- 建表 --------------- db_mysql.create_tables([User, ChatLog, PostCategory, PostTopic, Post, PostReply, CollectPost, Profile, Follower, Notification, BlogPostCategory, BlogPost, BlogPostLabel], safe=True) user_admin = User.new(username='******', email='*****@*****.**', password='******') user_test = User.new(username='******', email='*****@*****.**', password='******') # -------------------- 测试关注功能 --------------- Follower.create(user=user_admin, follower=user_test) # -------------------- 测试分类功能 -------------- logger.debug(''' 版块分类 docker: docker文章 registry: registry文章、私有hub、images分享, dockerfile分享 docker集群: docker集群文章 ''') postcategory0 = PostCategory.create(name='docker', str='docker') postcategory1 = PostCategory.create(name='registry', str='registry') postcategory2 = PostCategory.create(name='docker集群', str='docker-cluster') posttopic0 = PostTopic.create(category=postcategory0, name='docker文章', str='docker-article') posttopic1 = PostTopic.create(category=postcategory1, name='registry文章', str='registry-article') posttopic2 = PostTopic.create(category=postcategory1, name='私有hub', str='private-hub') posttopic3 = PostTopic.create(category=postcategory1, name='image分享', str='image-share') posttopic4 = PostTopic.create(category=postcategory1, name='dockerfile分享', str='dockerfile-share') posttopic5 = PostTopic.create(category=postcategory2, name='docker集群文章', str='docker-cluster-article') posttopic10 = PostTopic.create(name='通知', str='notice') posttopic11 = PostTopic.create(name='讨论', str='discussion') # ---------------- 测试新文章 -------------- post = Post.create( topic=posttopic0, title='test', content=tmp_post, user=user_admin ) # ---------------- 测试通知 -------------- Notification.new_post(post) # ------------测试新回复-------------- postreply = PostReply.create( post=post, user=user_test, content='test' ) post.update_latest_reply(postreply) # ---------------- 测试Blog -------------- bpc0 = BlogPostCategory.create(name='Tornado', str='Tornado') bp0 = BlogPost.create(title='Tornado', category=bpc0, content='Tornado content') BlogPostLabel.add_post_label('python,tornado', bp0) # ---------------- 测试chat -------------- chat_log_0 = ChatLog.create(me=user_admin, other=user_test, content='self>other') chat_log_0 = ChatLog.create(me=user_test, other=user_admin, content='other>self')
def create_test_data(db_mysql): from db.mysql_model.user import User, Profile, Follower, ChatMessage from db.mysql_model.post import Post, PostReply, PostCategory, PostTopic, CollectPost from db.mysql_model.common import Notification from db.mysql_model.blog import BlogPost, BlogPostLabel, BlogPostCategory logger.debug("DataBase is not exist, so create test data.") # -------------------- 测试用户功能 --------------- user_admin = User.new(username='******', email='*****@*****.**', password='******') user_test = User.new(username='******', email='*****@*****.**', password='******') # -------------------- 测试关注功能 --------------- Follower.create(user=user_admin, follower=user_test) # -------------------- 测试分类功能 -------------- logger.debug(""" 版块分类 专业: 计算机 学习: 学习资料、考研资料、家教、竞赛 生活: 共享账号、电影资源、常用软件、电脑故障 爱好: 摄影、健身 未分类: 校园通知、讨论 """) postcategory0 = PostCategory.create(name='学习', str='study') postcategory1 = PostCategory.create(name='专业', str='major') postcategory2 = PostCategory.create(name='生活', str='live') postcategory3 = PostCategory.create(name='爱好', str='hobby') posttopic0 = PostTopic.create(category=postcategory0, name='学习资料', str='study-material') posttopic1 = PostTopic.create(category=postcategory0, name='考研资料', str='study-advance-material') posttopic2 = PostTopic.create(category=postcategory0, name='竞赛', str='study-competition') posttopic3 = PostTopic.create(category=postcategory0, name='请教', str='study-advice') posttopic4 = PostTopic.create(category=postcategory1, name='计算机', str='major-computer') posttopic5 = PostTopic.create(category=postcategory2, name='电影资源', str='live-movie') posttopic6 = PostTopic.create(category=postcategory2, name='共享账号', str='live-account') posttopic7 = PostTopic.create(category=postcategory2, name='电脑故障', str='live-computer-repair') posttopic8 = PostTopic.create(category=postcategory3, name='摄影', str='hobby-photography') posttopic9 = PostTopic.create(category=postcategory3, name='健身', str='hobby-fitness') posttopic10 = PostTopic.create(name='通知', str='notice') posttopic11 = PostTopic.create(name='讨论', str='discussion') # ---------------- 测试新文章 -------------- post = Post.create( topic=posttopic0, title='test', content=tmp_post, user=user_admin ) # ---------------- 测试通知 -------------- Notification.new_post(post) # ------------测试新回复-------------- postreply = PostReply.create( post=post, user=user_test, content='test' ) post.update_latest_reply(postreply) # ---------------- 测试Blog -------------- bpc0 = BlogPostCategory.create(name='Tornado', str='Tornado') bp0 = BlogPost.create(title='Tornado', category=bpc0, content='Tornado content') BlogPostLabel.add_post_label('python,tornado', bp0) # ---------------- 测试chat -------------- chat_log_0 = ChatMessage.create(sender=user_admin, receiver=user_test, content='self>other') chat_log_0 = ChatMessage.create(sender=user_test, receiver=user_admin, content='other>self')
def post(self, *args, **kwargs): json_data = get_cleaned_json_data(self, ['opt', 'data']) data = json_data['data'] opt = json_data['opt'] # 关注用户 if opt == 'follow-user': try: user = User.get(User.id == data['user']) except: self.write(json_result(1, '没有该用户')) return Follower.create(user=user, follower=self.current_user) self.write(json_result(0, 'success')) # 取关用户 elif opt == 'unfollow-user': try: user = User.get(User.id == data['user']) except: self.write(json_result(1, '没有该用户')) return try: f = Follower.get(Follower.user == user, Follower.follower == self.current_user) except: self.write(json_result(1, '还没有关注他')) return f.delete_instance() self.write(json_result(0, 'success')) # 更新头像 elif opt == 'update-avatar': import base64 avatar = base64.b64decode(data['avatar']) user = self.current_user avatar_file_name = user.username + '.png' avatar_file = open(config.avatar_upload_path + avatar_file_name, 'wb') avatar_file.write(avatar) user.avatar = avatar_file_name user.save() self.write(json_result(0, 'success')) # 更新社区主题 elif opt == 'update-theme': user = self.current_user user.theme = data['theme'] user.save() self.write(json_result(0, 'success')) # 获取聊天记录 elif opt == 'realtime-chat': user = self.current_user other_id = data['other'] other = User.get(User.id == other_id) result = ChatMessage.get_recent_chat_message(user, other) self.write(json_result(0, result)) # 发送消息 elif opt == 'chat-to' : user = self.current_user other_id = data['other'] other = User.get(User.id == other_id) content = data['content'] ChatMessage.create(me=user, other=other, content=content) self.write(json_result(0, 'success')) else: self.write(json_result(1, 'opt不支持'))
import sys, os sys.path.append(os.path.dirname(sys.path[0])) from db.mysql_model import db_mysql from db.mysql_model.user import User from db.mysql_model.post import Post, PostReply if User.table_exists(): print('[User]表已经存在') else: db_mysql.create_table(User) if Post.table_exists(): print('[Post]表已经存在') else: db_mysql.create_table(Post) if PostReply.table_exists(): print('[PostReply]表已经存在') else: db_mysql.create_table(PostReply) PostReply.delete().execute() Post.delete().execute() User.delete().execute() def test_user(): user = User.get_by_username('admin') if user: user.delete_instance()
def create_test_data(db_mysql): from db.mysql_model.user import User, Profile, Follower, ChatMessage from db.mysql_model.post import Post, PostReply, PostCategory, PostTopic, CollectPost from db.mysql_model.common import Notification from db.mysql_model.blog import BlogPost, BlogPostLabel, BlogPostCategory logger.debug("DataBase is not exist, so create test data.") # -------------------- 测试用户功能 --------------- user_admin = User.new(username='******', email='*****@*****.**', password='******') user_test = User.new(username='******', email='*****@*****.**', password='******') # -------------------- 测试关注功能 --------------- Follower.create(user=user_admin, follower=user_test) # -------------------- 测试分类功能 -------------- logger.debug(""" 版块分类 专业: 计算机 学习: 学习资料、考研资料、家教、竞赛 生活: 共享账号、电影资源、常用软件、电脑故障 爱好: 摄影、健身 未分类: 校园通知、讨论 """) postcategory0 = PostCategory.create(name='学习', str='study') postcategory1 = PostCategory.create(name='专业', str='major') postcategory2 = PostCategory.create(name='生活', str='live') postcategory3 = PostCategory.create(name='爱好', str='hobby') posttopic0 = PostTopic.create(category=postcategory0, name='学习资料', str='study-material') posttopic1 = PostTopic.create(category=postcategory0, name='考研资料', str='study-advance-material') posttopic2 = PostTopic.create(category=postcategory0, name='竞赛', str='study-competition') posttopic3 = PostTopic.create(category=postcategory0, name='请教', str='study-advice') posttopic4 = PostTopic.create(category=postcategory1, name='计算机', str='major-computer') posttopic5 = PostTopic.create(category=postcategory2, name='电影资源', str='live-movie') posttopic6 = PostTopic.create(category=postcategory2, name='共享账号', str='live-account') posttopic7 = PostTopic.create(category=postcategory2, name='电脑故障', str='live-computer-repair') posttopic8 = PostTopic.create(category=postcategory3, name='摄影', str='hobby-photography') posttopic9 = PostTopic.create(category=postcategory3, name='健身', str='hobby-fitness') posttopic10 = PostTopic.create(name='通知', str='notice') posttopic11 = PostTopic.create(name='讨论', str='discussion') # ---------------- 测试新文章 -------------- post = Post.create(topic=posttopic0, title='test', content=tmp_post, user=user_admin) # ---------------- 测试通知 -------------- Notification.new_post(post) # ------------测试新回复-------------- postreply = PostReply.create(post=post, user=user_test, content='test') post.update_latest_reply(postreply) # ---------------- 测试Blog -------------- bpc0 = BlogPostCategory.create(name='Tornado', str='Tornado') bp0 = BlogPost.create(title='Tornado', category=bpc0, content='Tornado content') BlogPostLabel.add_post_label('python,tornado', bp0) # ---------------- 测试chat -------------- chat_log_0 = ChatMessage.create(sender=user_admin, receiver=user_test, content='self>other') chat_log_0 = ChatMessage.create(sender=user_test, receiver=user_admin, content='other>self')
def on_message(self, message): json_data = get_cleaned_json_data_websocket(message, ['opt', 'data']) data = json_data['data'] opt = json_data['opt'] if opt == 'update_recent_user_list': logger.debug('update_recent_user_list...') recent_user_list = ChatMessage.get_recent_user_list( self.current_user) self.write_message( json_result(0, { 'code': 'recent_user_list', 'data': recent_user_list })) elif opt == 'update_recent_user_list_and_open': recent_user_list = ChatMessage.get_recent_user_list( self.current_user) self.write_message(json_result(0, recent_user_list)) elif opt == 'send_message': other_id = data['user_id'] other = User.get(User.id == other_id) content = data['content'] cl = ChatMessage.create(sender=self.current_user, receiver=other, content=content) self.write_message( json_result( 0, { 'code': 'receive_a_message', 'data': { 'id': other.id, 'name': other.username, 'avatar': other.avatar, 'msg': [ '>', cl.content, TimeUtil.datetime_delta(cl.time) ] } })) # send to other user other_websocket = WebsocketChatHandler.is_online(other.username) if other_websocket: other_websocket.write_message( json_result( 0, { 'code': 'receive_a_message', 'data': { 'id': self.current_user.id, 'avatar': self.current_user.avatar, 'name': self.current_user.username, 'msg': [ '<', cl.content, TimeUtil.datetime_delta(cl.time) ] } })) elif opt == 'update_recent_message_list': other_id = data['user_id'] other = User.get(User.id == other_id) recent_message = ChatMessage.get_recent_chat_message( self.current_user, other) logger.debug(recent_message) self.write_message( json_result(0, { 'code': 'recent_message_list', 'data': recent_message }))
def create_test_data(db_mysql): from db.mysql_model.user import User, Profile, Follower from db.mysql_model.post import Post, PostReply, PostCategory, PostTopic, CollectPost from db.mysql_model.common import Notification from db.mysql_model.blog import BlogPost, BlogPostLabel, BlogPostCategory logger.debug("DataBase is not exist, so create test data.") # -------------------- 建表 --------------- db_mysql.create_tables([User, PostCategory, PostTopic, Post, PostReply, CollectPost, Profile, Follower, Notification, BlogPostCategory, BlogPost, BlogPostLabel], safe=True) logger.debug('add user: [admin:admin], [test:test]') user_admin = User.new(username='******', email='*****@*****.**', password='******') user_test = User.new(username='******', email='*****@*****.**', password='******') # -------------------- 测试关注功能 --------------- logger.debug('add follower: [test]->[admin]') Follower.create(user=user_admin, follower=user_test) # -------------------- 测试分类功能 -------------- logger.debug('add postcategory and posttopic:') logger.debug(''' 版块分类 专业: 计算机 学习: 学习资料、考研资料、家教、竞赛 生活: 共享账号、电影资源、常用软件、电脑故障 爱好: 摄影、健身 未分类: 校园通知、讨论 ''') postcategory0 = PostCategory.create(name='学习', str='study') postcategory1 = PostCategory.create(name='专业', str='major') postcategory2 = PostCategory.create(name='生活', str='live') postcategory3 = PostCategory.create(name='爱好', str='hobby') posttopic0 = PostTopic.create(category=postcategory0, name='学习资料', str='study-material') posttopic1 = PostTopic.create(category=postcategory0, name='考研资料', str='study-advance-material') posttopic2 = PostTopic.create(category=postcategory0, name='竞赛', str='study-competition') posttopic3 = PostTopic.create(category=postcategory0, name='请教', str='study-advice') posttopic4 = PostTopic.create(category=postcategory1, name='计算机', str='major-computer') posttopic5 = PostTopic.create(category=postcategory2, name='电影资源', str='live-movie') posttopic6 = PostTopic.create(category=postcategory2, name='共享账号', str='live-account') posttopic7 = PostTopic.create(category=postcategory2, name='电脑故障', str='live-computer-repair') posttopic8 = PostTopic.create(category=postcategory3, name='摄影', str='hobby-photography') posttopic9 = PostTopic.create(category=postcategory3, name='健身', str='hobby-fitness') posttopic10 = PostTopic.create(name='通知', str='notice') posttopic11 = PostTopic.create(name='讨论', str='discussion') # ---------------- 测试新文章 -------------- logger.debug('add post: [SICP换零钱(递归转尾递归)]') post = Post.create( topic=posttopic0, title='SICP换零钱(递归转尾递归)', content=tmp_post, user=user_admin ) # ---------------- 测试通知 -------------- logger.debug('add notice: [admin]->[admin\'s followers]') Notification.new_post(post) # ------------测试新回复-------------- logger.debug('add postreply: [test]->[admin]') postreply = PostReply.create( post=post, user=user_test, content='迭代需要重复利用递归产生的冗余数据' ) post.update_latest_reply(postreply) # ---------------- 测试Blog -------------- logger.debug('add blogpost: [tornado]') bpc0 = BlogPostCategory.create(name='Tornado', str='Tornado') bp0 = BlogPost.create(title='Tornado', category=bpc0, content='Tornado content') BlogPostLabel.add_post_label('python,tornado', bp0)