Exemple #1
0
def dosearch(page=1):
    # Tag search
    if "tagname" in request.args:
        tagname = request.args.get("tagname").strip()
        # Defence of SQL injection
        if " " in tagname or tagname == "":
            postlist = []
            count = 0
        else:
            postlist = Post.tag_search(
                keyword=tagname,
                offset=g.config["PER_PAGE"] * (page-1),
                limit=g.config["PER_PAGE"]
            )
            count = Post.tag_search_count(tagname)

        pager = gen_pager(page, count, g.config["PER_PAGE"], request.url)
        return render_template(
            "search.html",
            searchtype="tagsearch",
            searchcontent=tagname,
            pager=pager,
            postlist=postlist,
            parameter=request.query_string)

    # Text search
    if 'keyword' in request.args:
        words = request.args["keyword"].split()
        # In case a query with too much keywords
        words = [word for word in words if len(word) >= 2]
        if len(words) > 5 or len(words) == 0:
            postlist = []
            count = 0
        else:
            postlist = Post.text_search(
                words=words,
                offset=g.config["PER_PAGE"]*(page-1),
                limit=g.config["PER_PAGE"]
            )
            count = Post.text_search_count(words=words)

        pager = gen_pager(page, count, g.config["PER_PAGE"], request.url)
        return render_template(
            'search.html',
            searchtype="textsearch",
            searchcontent=" ".join(words),
            postlist=postlist,
            pager=pager,
            parameter=request.query_string)
Exemple #2
0
def posts():
    perpage = g.config["ADMIN_ITEM_COUNT"]
    args = request.args

    page = int(args.get("page", 1))

    kwargs = {}
    if "is_original" in args and args["is_original"] == "true":
        kwargs["is_original"] = True
    elif "is_original" in args and args["is_original"] == "false":
        kwargs["is_original"] = False

    if "allow_visit" in args and args["allow_visit"] == "true":
        kwargs["allow_visit"] = True
    elif "allow_visit" in args and args["allow_visit"] == "false":
        kwargs["allow_visit"] = False

    if "allow_comment" in args and args["allow_comment"] == "true":
        kwargs["allow_comment"] = True
    elif "allow_comment" in args and args["allow_comment"] == "false":
        kwargs["allow_comment"] = False

    count, posts = Post.get_page(page,
                                 order_by=Post.id.desc(),
                                 limit=perpage,
                                 parameters=kwargs)

    pager = gen_pager(page, count, perpage, request.url)
    return render_template('admin/posts.html',
                           posts=posts,
                           admin_url="posts",
                           pager=pager,
                           parameter=request.query_string)
Exemple #3
0
def adminpostlist():
    perpage = g.config["ADMIN_ITEM_COUNT"]
    args = request.args

    page = int(args.get("page", 1))

    kargs = {}
    if "is_original" in args and args["is_original"] == "true":
        kargs["is_original"] = True
    elif "is_original" in args and args["is_original"] == "false":
        kargs["is_original"] = False

    if "allow_visit" in args and args["allow_visit"] == "true":
        kargs["allow_visit"] = True
    elif "allow_visit" in args and args["allow_visit"] == "false":
        kargs["allow_visit"] = False

    if "allow_comment" in args and args["allow_comment"] == "true":
        kargs["allow_comment"] = True
    elif "allow_comment" in args and args["allow_comment"] == "false":
        kargs["allow_comment"] = False

    postlist = Post.get_page(offset=(page-1)*perpage, limit=perpage, **kargs)

    pager = gen_pager(page, Post.count(**kargs), perpage, request.url)
    return render_template('admin/postlist.html',
                           postlist=postlist,
                           admin_url="pagelist",
                           pager=pager,
                           parameter=request.query_string)
Exemple #4
0
def links():
    perpage = g.config["ADMIN_ITEM_COUNT"]
    page = int(request.args.get("page", 1))
    count, links = Link.get_page(page, limit=perpage)
    pager = gen_pager(page, count, perpage, request.url)
    return render_template('admin/links.html',
                           links=links,
                           admin_url="links",
                           pager=pager)
Exemple #5
0
def mediamgnt():
    page = int(request.args.get("page", 1))
    perpage = g.config["ADMIN_ITEM_COUNT"]
    medialist = Media.get_page(perpage * (page-1), perpage)
    pager = gen_pager(page, Media.count(), perpage, request.url)
    return render_template('admin/mediamgnt.html',
                           admin_url="mediamgnt",
                           medialist=medialist,
                           pager=pager
                           )
Exemple #6
0
def linkmgnt():
    perpage = g.config["ADMIN_ITEM_COUNT"]
    page = int(request.args.get("page", 1))
    linklist = Link.get_page(offset=perpage*(page-1), limit=perpage)
    pager = gen_pager(page, Link.count(), perpage, request.url)
    return render_template('admin/linkmgnt.html',
                           linklist=linklist,
                           admin_url="linkmgnt",
                           pager=pager
                           )
Exemple #7
0
def comments():
    if request.method == "GET":
        page = int(request.args.get("page", 1))
        perpage = g.config["ADMIN_ITEM_COUNT"]
        if 'post_id' in request.args:
            post_id = request.args['post_id']
            comments = Comment.get_page(page,
                                        post_id=post_id,
                                        order_by=Comment.id.desc(),
                                        perpage=perpage)
            pager = gen_pager(page, Comment.count(post_id), perpage,
                              request.url)
        else:
            count, comments = Comment.get_page(page,
                                               order_by=Comment.id.desc())
            pager = gen_pager(page, count, perpage, request.url)
        return render_template('admin/comments.html',
                               comments=comments,
                               admin_url="comments",
                               pager=pager)
Exemple #8
0
def medias():
    page = int(request.args.get("page", 1))
    perpage = g.config["ADMIN_ITEM_COUNT"]
    count, medias = Media.get_page(page,
                                   order_by=Media.id.desc(),
                                   limit=perpage)
    pager = gen_pager(page, count, perpage, request.url)
    return render_template('admin/medias.html',
                           admin_url="medias",
                           medias=medias,
                           pager=pager)
Exemple #9
0
def commentmgnt():
    if request.method == "GET":
        page = int(request.args.get("page", 1))
        perpage = g.config["ADMIN_ITEM_COUNT"]
        if 'post_id' in request.args:
            post_id = request.args['post_id']
            commentlist = Comment.get_page(
                offset=perpage*(page-1),
                limit=perpage,
                post_id=post_id)
            pager = gen_pager(page, Comment.count(post_id), perpage, request.url)
        else:
            commentlist = Comment.get_page(
                offset=perpage*(page-1),
                limit=perpage)
            pager = gen_pager(page, Comment.count(), perpage, request.url)
        return render_template('admin/commentmgnt.html',
                               commentlist=commentlist,
                               admin_url="commentmgnt",
                               pager=pager)
Exemple #10
0
def index():
    page = int(request.args.get("page", 1))
    count, posts = Post.get_page(page, Post.allow_visit == True, order_by=-Post.id)
    pager = gen_pager(page, count, g.config["PER_PAGE"], request.url)
    if posts or page == 1:
        return render_template(
            "index.html",
            blogname=g.config["BLOGNAME"],
            posts=posts,
            pager=pager)
    else:
        return render_template("error/404.html")
Exemple #11
0
def dosearch(page=1):
    page = int(request.args.get("page", 1))
    # Tag search
    if "tagname" in request.args:
        tagname = request.args.get("tagname").strip()
        count, posts = Post.tag_search(keyword=tagname,
                                       offset=g.config["PER_PAGE"] *
                                       (page - 1),
                                       limit=g.config["PER_PAGE"])

        pager = gen_pager(page, count, g.config["PER_PAGE"], request.url)
        return render_template("search.html",
                               searchtype="tagsearch",
                               searchcontent=tagname,
                               pager=pager,
                               posts=posts,
                               parameter=request.query_string)

    # Text search
    if 'keyword' in request.args:
        words = request.args["keyword"].split()
        # In case a query with too much keywords
        words = [word for word in words if len(word) >= 2]
        if len(words) == 0:
            posts = []
            count = 0
        else:
            count, posts = Post.text_search(words=words,
                                            offset=g.config["PER_PAGE"] *
                                            (page - 1),
                                            limit=g.config["PER_PAGE"])

        pager = gen_pager(page, count, g.config["PER_PAGE"], request.url)
        return render_template('search.html',
                               searchtype="textsearch",
                               searchcontent=" ".join(words),
                               posts=posts,
                               pager=pager,
                               parameter=request.query_string)