示例#1
0
文件: post.py 项目: roseviet/ice-wolf
    def find_post_by_category(cls, category_name, page=1, per_page=10):
        """
        Find all post publish by specific author

        :param category_name: category name
        :param page: page index begin at 1
        :param per_page:
        :return:
        """

        if not category_name:
            raise InvalidFieldError("category cannot be empty", ["category"])
        cat_slug = get_slug_from_string(category_name)
        args = {"categories": "`%s`" % cat_slug}

        # validate pagination info
        if not is_id_valid(page):
            page = 1

        if int(per_page) <= 0 or int(per_page) >= 50:
            per_page = 10

        start = (page - 1) * per_page  # id in sql start at 1
        post_list = DBPost.search(search_dict=args, start=start, per_page=per_page, order_by="time desc")
        return post_list
示例#2
0
文件: post.py 项目: roseviet/ice-wolf
    def find_post_by_keyword(cls, keyword, page=1, per_page=10):
        """
        Find all post publish by specific author

        :param category_name: category name
        :param page: page index begin at 1
        :param per_page:
        :return:
        """

        if not keyword:
            raise InvalidFieldError("category cannot be empty", ["search string"])

        args = {
            "title": "%s" % keyword,
            "content": "%s" % keyword,
        }

        # validate pagination info
        if not is_id_valid(page):
            page = 1

        if int(per_page) <= 0 or int(per_page) >= 50:
            per_page = 10

        try:
            start = (page - 1) * per_page   # id in sql start at 1
            post_list = DBPost.search(search_dict=args, start=start, per_page=per_page, order_by="time desc")
            return post_list
        except:
            raise InvalidFieldError("Can not search with given string", ["search string"])