Exemple #1
0
def follow(username):
    user = MongoClient().blog.User.find_one({'username': username})
    if user is None:
        flash('此用户不存在.')
        return redirect(url_for('.index'))
    very = False
    temp = MongoClient().blog.User.find_one({
        'username': current_user.username
    }).get('following')
    for i in range(temp.__len__()):
        if temp[i][0] == username:
            very = True
            break
    if very:
        flash('您已经关注过了他,不能重复关注.')
        return redirect(url_for('.user', username=username))
    followers = user.get('followers')
    time = datetime.utcnow()
    follow = [current_user.username, time]
    followers.append(follow)
    MongoClient().blog.User.update({'username': username},
                                   {'$set': {
                                       'followers': followers
                                   }})
    post2 = MongoClient().blog.User.find_one(
        {'username': current_user.username})
    following = post2.get('following')
    follow = [user.get('username'), time]
    following.append(follow)
    MongoClient().blog.User.update({'username': current_user.username},
                                   {'$set': {
                                       'following': following
                                   }})
    flash('您成功关注了 %s.' % username)
    return redirect(url_for('.user', username=username))
Exemple #2
0
 def __init__(self, page, id):
     posts = MongoClient().blog.Aritical.find_one({
         '_id': ObjectId(id)
     }).get('comments')
     self.total = posts.__len__()
     self.pages = int(self.total / 20)
     if self.total % 20 != 0:
         self.pages += 1
     if page == -1:
         self.page = self.pages
     else:
         self.page = page
     if self.page == 1:
         self.has_prev = False
     else:
         self.has_prev = True
     if self.page == self.pages:
         self.has_next = False
     else:
         self.has_next = True
     self.next_num = self.page + 1
     self.per_page = 20
     self.prev_num = self.page - 1
     self.current_num = self.total - (20 * (self.page - 1))
     if self.current_num > 20:
         self.current_num = 20
     self.items = []
     for i in range(self.current_num):
         self.items.append({
             'body': posts[self.prev_num * 20 + i][0],
             'username': posts[self.prev_num * 20 + i][1],
             'timestamp': posts[self.prev_num * 20 + i][2]
         })
         self.items.reverse()
Exemple #3
0
 def __init__(self, page, username):
     posts = MongoClient().blog.User.find_one({
         'username': username
     }).get('following')
     self.total = posts.__len__()
     self.pages = int(self.total / 20)
     if self.total % 20 != 0:
         self.pages += 1
     if page == 1:
         self.has_prev = False
     else:
         self.has_prev = True
     if page == self.pages:
         self.has_next = False
     else:
         self.has_next = True
     self.next_num = page + 1
     self.page = page
     self.per_page = 20
     self.prev_num = page - 1
     self.current_num = self.total - (20 * (page - 1))
     if self.current_num > 20:
         self.current_num = 20
     self.item = []
     for i in range(self.current_num):
         self.item.append({
             'username': posts[self.prev_num * 20 + i][0],
             'timestamp': posts[self.prev_num * 20 + i][1]
         })
Exemple #4
0
 def is_following(self, user):
     temp = MongoClient().blog.User.find_one({
         'username': self.username
     }).get('following')
     for i in range(temp.__len__()):
         if temp[i][0] == user.username:
             return True
     return False
Exemple #5
0
 def __init__(self, page, show_follow):
     if show_follow == 0:
         posts = MongoClient().blog.Aritical.find().sort(
             'issuing_time', DESCENDING)
         self.total = posts.count()
         self.posts = posts
     if show_follow == 1:
         self.posts = []
         following = MongoClient().blog.User.find_one({
             'username':
             current_user.username
         }).get('following')
         artical = MongoClient().blog.Aritical.find().sort(
             'issuing_time', DESCENDING)
         # following.append([current_user.username, 'date'])
         for i in range(following.__len__()):
             for x in range(artical.count()):
                 if following[i][0] == artical[x].get('username'):
                     self.posts.append(artical[x])
                     self.posts.sort(key=lambda x: x.get('issuing_time'),
                                     reverse=True)
         self.total = self.posts.__len__()
     self.pages = int(self.total / 20)
     if self.total % 20 != 0:
         self.pages += 1
     if page == 1:
         self.has_prev = False
     else:
         self.has_prev = True
     if page == self.pages:
         self.has_next = False
     else:
         self.has_next = True
     self.next_num = page + 1
     self.page = page
     self.per_page = 20
     self.prev_num = page - 1
     self.current_num = self.total - (20 * (page - 1))
     if self.current_num > 20:
         self.current_num = 20
     self.item = []
     for i in range(self.current_num):
         self.item.append(self.posts[self.prev_num * 20 + i])
Exemple #6
0
def unfollow(username):
    user = MongoClient().blog.User.find_one({'username': username})
    if user is None:
        flash('此用户不存在.')
        return redirect(url_for('.index'))
    very = False
    temp = MongoClient().blog.User.find_one({
        'username': current_user.username
    }).get('following')
    for i in range(temp.__len__()):
        if temp[i][0] == username:
            very = True
            break
    if not very:
        flash('您没有关注这个用户.')
        return redirect(url_for('.user', username=username))
    followers = user.get('followers')
    for i in range(followers.__len__()):
        if followers[i][0] == current_user.username:
            followers.remove(followers[i])
            break
    MongoClient().blog.User.update({'username': username},
                                   {'$set': {
                                       'followers': followers
                                   }})
    post2 = MongoClient().blog.User.find_one(
        {'username': current_user.username})
    following = post2.get('following')
    for i in range(following.__len__()):
        if following[i][0] == username:
            following.remove(following[i])
            break
    MongoClient().blog.User.update({'username': current_user.username},
                                   {'$set': {
                                       'following': following
                                   }})
    flash('您取消关注了 %s.' % username)
    return redirect(url_for('.user', username=username))