Esempio n. 1
0
def get_query_list_threads(data, has_forum):
    query = Query()

    columns = "t.*"
    if has_forum:
        columns += ", f.id, f.name, f.short_name, f.user"

    query.add_select("thread as t", columns)

    if has_forum:
        query.add_left_join("forum as f", "t.forum = f.short_name")

    if data.get("forum"):
        query.add_where_condition("t.forum = \"{}\"".format(data["forum"]))
    else:
        query.add_where_condition("t.user = \"{}\"".format(data["user"]))

    if "since" in data:
        query.add_more_where_condition("t.date > \"{}\"".format(data["since"]))

    query.add_order_by("t.date", data["order"])

    if "limit" in data:
        query.add_limit(data["limit"])

    return query
Esempio n. 2
0
def get_query_list_posts_by_forum(data, has_forum, has_thread):
    query = Query()
    columns = "p.id, p.message, p.date, p.isApproved, p.isHighlighted, p.isEdited, p.isSpam,   " \
              "p.isDeleted, p.forum, p.thread, p.user, p.dislikes, p.likes,  p.points, p.parent"
    if has_forum:
        columns += ", f.id, f.name, f.short_name, f.user"
    if has_thread:
        columns += ", t.id, t.title, t.slug, t.message, t.date, " \
                   "t.posts, t.likes, t.dislikes, t.points, " \
                   "t.isClosed, t.isDeleted, t.forum, t.user"

    query.add_select("post as p", columns)

    if has_forum:
        query.add_left_join("forum as f", "p.forum = f.short_name")

    if has_thread:
        query.add_left_join("thread as t", "p.thread = t.id")

    if data.get("forum"):
        query.add_where_condition("p.forum = \"{}\"".format(data["forum"]))
    else:
        query.add_where_condition("p.thread = \"{}\"".format(data["thread"]))

    if "since" in data:
        query.add_more_where_condition("p.date > \"{}\"".format(data["since"]))

    query.add_order_by("p.date", data["order"])

    if "limit" in data:
        query.add_limit(data["limit"])

    return query
Esempio n. 3
0
def get_query_detail_thread_by_id(id_thread, has_forum):
    query = Query()

    columns = "t.*"
    if has_forum:
        columns += ", f.name f_name, f.short_name f_short_name, f.user f_user, f.id f_id"

    query.add_select("thread as t", columns)

    if has_forum:
        query.add_left_join("forum as f", "t.forum = f.short_name")

    query.add_where_condition("t.id = \"{}\"".format(id_thread))
    return query
Esempio n. 4
0
def get_query_users_by_followers(data, follower=None):
    query = Query()
    columns = 'u.*, group_concat(distinct f.following),' \
              'group_concat(distinct f1.follower),' \
              'group_concat(distinct s.thread)'
    query.add_select("user as u", columns)
    query.add_left_join("follow as f", "u.email = f.follower")
    query.add_left_join("follow as f1", "u.email = f1.following")
    query.add_left_join("subscribe as s", "u.email= s.user")
    query.add_left_join("post as p", "p.user = u.email")
    if follower:
        query.add_where_condition("f.following = \"{}\"".format(data["user"]))
    else:
        query.add_where_condition("f.follower = \"{}\"".format(data["user"]))

    if "since_id" in data:
        query.add_more_where_condition(" u.id >= {}".format(data["since_id"]))
    if follower:
        query.add_group_by("f.follower")
    else:
        query.add_group_by("f.following")
    query.add_order_by("u.name", data["order"])

    if "limit" in data:
        query.add_limit(data["limit"])

    return query
Esempio n. 5
0
def get_query_detail_post_by_id(id_post, has_forum, has_thread):
    query = Query()

    columns = 'p.id, p.message, p.date, p.isApproved, p.isHighlighted, p.isEdited, p.isSpam, ' \
              'p.isDeleted, p.forum, p.thread, p.user, p.dislikes, p.likes, p.points, p.parent'
    if has_forum:
        columns += ", f.name f_name, f.short_name f_short_name, f.user f_user, f.id f_id"

    if has_thread:
        columns += ', t.id, t.forum, t.title, t.isClosed, ' \
                   't.user, t.date, t.message, t.slug, t.isDeleted, ' \
                   't.posts, t.likes , t.dislikes , t.points '

    query.add_select("post as p", columns)

    if has_forum:
        query.add_left_join("forum as f", "p.forum = f.short_name")

    if has_thread:
        query.add_left_join("thread as t", "p.thread = t.id")
    query.add_where_condition("p.id = \"{}\"".format(id_post))

    return query
Esempio n. 6
0
def get_query_detail_user_by_email(email):
    query = Query()
    columns = 'u.*, group_concat(distinct f.following),' \
              'group_concat(distinct f1.follower),' \
              'group_concat(distinct s.thread)'
    query.add_select("user as u", columns)
    query.add_left_join("follow as f", "u.email = f.follower")
    query.add_left_join("follow as f1", "u.email = f1.following")
    query.add_left_join("subscribe as s", "u.email= s.user")
    query.add_where_condition("u.email = \"{}\"".format(email))
    return query