Example #1
0
def get_news_feed():
    person_id = request.args.get("person_id", None)
    order = request.args.get("order", "date")  # [date, likes]
    # page = request.args.get("page", 1)
    # limit = request.args.get("limit", 10)
    # if limit > 10 or limit <= 0:
    #     limit = 10
    if person_id:
        try:
            if order == "date":
                query = Post.select(Post.post_id, Post.author, Post.text, Post.pic_url, Post.date, Post.latitude, Post.longitude, Post.likes, Post.comments)\
                    .where(Post.author == person_id, Post.is_deleted == False)\
                    .order_by(Post.date.desc())\
                    .tuples()
            else:
                query = Post.select(Post.post_id, Post.author, Post.text, Post.pic_url, Post.date, Post.latitude, Post.longitude, Post.likes, Post.comments)\
                    .where(Post.author == person_id, Post.is_deleted == False)\
                    .order_by(Post.likes.desc())\
                    .tuples()
        except DoesNotExist:
            query = []
        res = prepare_feed_from_query_result(query)
        return json.dumps(res)
    else:
        return json.dumps({"message": "This person does not exist"})
Example #2
0
def like_post(person_id, post_id):
    """ Helper func to add a entry (or add back) in the Like table and update the Post entry
    :param person_id: int
    :param post_id: int
    :return: bool
    """
    try:
        Person.get(Person.vkid == person_id)
        try:
            l = Likes.get(Likes.person == person_id, Likes.post == post_id)
            if l.is_deleted:
                l.is_deleted = False
                l.save()
                p = Post.get(Post.post_id == post_id)
                p.likes += 1  # some day it may cause race condition
                p.save()
                return True
            else:
                return False
        except DoesNotExist:
            Likes.create(person=person_id, post=post_id)
            p = Post.get(Post.post_id == post_id)
            p.likes += 1  # some day it may cause race condition
            p.save()
        return True
    except DoesNotExist:
        print "Like on person_id='{0}', post_id='{1}' doesn't exist".format(person_id, post_id)
    except Exception as e:
        print "like_post exception: {0}".format(repr(e))
    return False
Example #3
0
def like_post(person_id, post_id):
    """ Helper func to add a entry (or add back) in the Like table and update the Post entry
    :param person_id: int
    :param post_id: int
    :return: bool
    """
    try:
        Person.get(Person.vkid == person_id)
        try:
            l = Likes.get(Likes.person == person_id, Likes.post == post_id)
            if l.is_deleted:
                l.is_deleted = False
                l.save()
                p = Post.get(Post.post_id == post_id)
                p.likes += 1  # some day it may cause race condition
                p.save()
                return True
            else:
                return False
        except DoesNotExist:
            Likes.create(person=person_id, post=post_id)
            p = Post.get(Post.post_id == post_id)
            p.likes += 1  # some day it may cause race condition
            p.save()
        return True
    except DoesNotExist:
        print "Like on person_id='{0}', post_id='{1}' doesn't exist".format(
            person_id, post_id)
    except Exception as e:
        print "like_post exception: {0}".format(repr(e))
    return False
Example #4
0
def get_news_feed():
    person_id = request.args.get("person_id", None)
    order = request.args.get("order", "date")  # [date, likes]
    # page = request.args.get("page", 1)
    # limit = request.args.get("limit", 10)
    # if limit > 10 or limit <= 0:
    #     limit = 10
    if person_id:
        try:
            if order == "date":
                query = Post.select(Post.post_id, Post.author, Post.text, Post.pic_url, Post.date, Post.latitude, Post.longitude, Post.likes, Post.comments)\
                    .where(Post.author == person_id, Post.is_deleted == False)\
                    .order_by(Post.date.desc())\
                    .tuples()
            else:
                query = Post.select(Post.post_id, Post.author, Post.text, Post.pic_url, Post.date, Post.latitude, Post.longitude, Post.likes, Post.comments)\
                    .where(Post.author == person_id, Post.is_deleted == False)\
                    .order_by(Post.likes.desc())\
                    .tuples()
        except DoesNotExist:
            query = []
        res = prepare_feed_from_query_result(query)
        return json.dumps(res)
    else:
        return json.dumps({"message": "This person does not exist"})
Example #5
0
def create_new_post():
    vkid = request.form.get(VKID_NAME)
    text = request.form.get("text", None)
    # pic = request.files.get("pic", None)
    latitude = request.form.get("latitude", None)
    longitude = request.form.get("longitude", None)
    if text and latitude and longitude:
        # pic_url = save_picture(pic)
        author = Person.get(Person.vkid == vkid)
        author.posts += 1
        author.save()
        Post.create(author=author, text=text, pic_url="", latitude=latitude, longitude=longitude)
        return json.dumps({"success": 1})
    else:
        return json.dumps({"success": 0})
Example #6
0
def demo_add_post(person_id):
    _, words_amount, text = generate_sentence()
    # Piter coordinates:
    # lat, lon
    # 59.93900, 30.325896
    latitude = 59.0 + 1.0 * random.randint(850000, 999999) / 1000000
    longitude = 30.0 + 1.0 * random.randint(200000, 399999) / 1000000
    pic_url = "http://lorempixel.com/300/300/"
    try:
        if person_id:
            Person.get(Person.vkid == person_id)
        else:
            all_p = Person.select(Person.vkid)
            count = all_p.count() - 1
            person_id = all_p[random.randint(0, count)]
        Post.create(author=person_id, text=text, pic_url=pic_url, latitude=latitude, longitude=longitude)
        return True
    except DoesNotExist:
        return False
Example #7
0
def create_new_post():
    vkid = request.form.get(VKID_NAME)
    text = request.form.get("text", None)
    # pic = request.files.get("pic", None)
    latitude = request.form.get("latitude", None)
    longitude = request.form.get("longitude", None)
    if text and latitude and longitude:
        # pic_url = save_picture(pic)
        author = Person.get(Person.vkid == vkid)
        author.posts += 1
        author.save()
        Post.create(author=author,
                    text=text,
                    pic_url="",
                    latitude=latitude,
                    longitude=longitude)
        return json.dumps({"success": 1})
    else:
        return json.dumps({"success": 0})
Example #8
0
def demo_add_comment(author_id, post_id):
    _, words_amount, text = generate_sentence()
    try:
        if author_id:
            Person.get(Person.vkid == author_id)
        else:
            all_pers = Person.select(Person.vkid)
            count = all_pers.count() - 1
            author_id = all_pers[random.randint(0, count)]

        if post_id:
            p = Post.get(Post.post_id == post_id)
        else:
            all_posts = Post.select()
            count = all_posts.count() - 1
            p = all_posts[random.randint(0, count)]
            p.comments += 1
            p.save()
        Comment.create(post=p, author=author_id, text=text)
        return True
    except DoesNotExist:
        return False
Example #9
0
def demo_add_comment(author_id, post_id):
    _, words_amount, text = generate_sentence()
    try:
        if author_id:
            Person.get(Person.vkid == author_id)
        else:
            all_pers = Person.select(Person.vkid)
            count = all_pers.count() - 1
            author_id = all_pers[random.randint(0, count)]

        if post_id:
            p = Post.get(Post.post_id == post_id)
        else:
            all_posts = Post.select()
            count = all_posts.count() - 1
            p = all_posts[random.randint(0, count)]
            p.comments += 1
            p.save()
        Comment.create(post=p, author=author_id, text=text)
        return True
    except DoesNotExist:
        return False
Example #10
0
def create_new_comment():
    vkid = request.form.get(VKID_NAME)
    post_id = request.form.get("post_id", None)
    text = request.form.get("text", None)
    if post_id and text:
        try:
            p = Post.get(Post.post_id == post_id)
            p.comments += 1
            p.save()
            Comment.create(post=p, author=vkid, text=text)
            return json.dumps({"success": 1})
        except DoesNotExist as e:
            print "Post with id='{0}' doesn't exist: {0}".format(e)
    return json.dumps({"success": 0})
Example #11
0
def demo_add_post(person_id):
    _, words_amount, text = generate_sentence()
    # Piter coordinates:
    # lat, lon
    # 59.93900, 30.325896
    latitude = 59.0 + 1.0 * random.randint(850000, 999999) / 1000000
    longitude = 30.0 + 1.0 * random.randint(200000, 399999) / 1000000
    pic_url = "http://lorempixel.com/300/300/"
    try:
        if person_id:
            Person.get(Person.vkid == person_id)
        else:
            all_p = Person.select(Person.vkid)
            count = all_p.count() - 1
            person_id = all_p[random.randint(0, count)]
        Post.create(author=person_id,
                    text=text,
                    pic_url=pic_url,
                    latitude=latitude,
                    longitude=longitude)
        return True
    except DoesNotExist:
        return False
Example #12
0
def create_new_comment():
    vkid = request.form.get(VKID_NAME)
    post_id = request.form.get("post_id", None)
    text = request.form.get("text", None)
    if post_id and text:
        try:
            p = Post.get(Post.post_id == post_id)
            p.comments += 1
            p.save()
            Comment.create(post=p, author=vkid, text=text)
            return json.dumps({"success": 1})
        except DoesNotExist as e:
            print "Post with id='{0}' doesn't exist: {0}".format(e)
    return json.dumps({"success": 0})
Example #13
0
def dislike_post(person_id, post_id):
    """ Helper func to remove Like from Post and update the Post entry
    :param person_id: int
    :param post_id: int
    :return: bool
    """
    try:
        Person.get(Person.vkid == person_id)
        l = Likes.get(Likes.person == person_id, Likes.post == post_id)
        if not l.is_deleted:
            l.is_deleted = True
            l.save()
            p = Post.get(Post.post_id == post_id)
            p.likes -= 1  # some day it may cause race condition
            p.save()
            return True
    except DoesNotExist:
        print "Like on person_id='{0}', post_id='{1}' doesn't exist".format(person_id, post_id)
    except Exception as e:
        print "dislike_post exception: {0}".format(repr(e))
    return False
Example #14
0
def dislike_post(person_id, post_id):
    """ Helper func to remove Like from Post and update the Post entry
    :param person_id: int
    :param post_id: int
    :return: bool
    """
    try:
        Person.get(Person.vkid == person_id)
        l = Likes.get(Likes.person == person_id, Likes.post == post_id)
        if not l.is_deleted:
            l.is_deleted = True
            l.save()
            p = Post.get(Post.post_id == post_id)
            p.likes -= 1  # some day it may cause race condition
            p.save()
            return True
    except DoesNotExist:
        print "Like on person_id='{0}', post_id='{1}' doesn't exist".format(
            person_id, post_id)
    except Exception as e:
        print "dislike_post exception: {0}".format(repr(e))
    return False