示例#1
0
文件: post.py 项目: roseviet/ice-wolf
    def find_post_by_keyword_pagination(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
        else:
            page = int(page)

        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.pagination_search(search_dict=args, page=page, per_page=per_page, order_by="time desc")
            return post_list
        except Exception as e:
            raise InvalidFieldError("Can not search with given string", ["search string"])
示例#2
0
文件: post.py 项目: roseviet/ice-wolf
    def find_post_by_category_pagination(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

        pagination = DBPost.pagination_search(search_dict=args, page=page, per_page=per_page, order_by="time desc")
        return pagination