Пример #1
0
    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))
Пример #2
0
    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}))
Пример #3
0
    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}))
Пример #4
0
 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不支持'))
Пример #5
0
    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)
Пример #6
0
 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)
Пример #7
0
 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
Пример #8
0
 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)
Пример #9
0
 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
Пример #10
0
 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)
Пример #11
0
 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)
Пример #12
0
    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}))
Пример #13
0
 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)
Пример #14
0
 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
Пример #15
0
 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
Пример #16
0
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())
Пример #17
0
 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)
Пример #18
0
 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)
Пример #19
0
    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)
Пример #20
0
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')
Пример #22
0
 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)
Пример #23
0
 def get(self, *args, **kwargs):
     users = User.select()
     self.render('dashboard/pages/db-user-list.html', users=users)
Пример #24
0
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')
Пример #25
0
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')
Пример #26
0
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')
Пример #27
0
 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)
Пример #28
0
    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不支持'))
Пример #29
0
 def get(self, *args, **kwargs):
     users = User.select()
     self.render('dashboard/pages/db-user-list.html',
                 users=users)
Пример #30
0
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()
Пример #31
0
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')
Пример #32
0
    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
                }))
Пример #33
0
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)