def METHOD_NAME(self, sticky=None, highlight=None, all_posts=False, deleted=False, tags=[]):
    filters = [
        {'blog': self._blog['_id']}
    ]
    # only return all post if parameter is specified. Otherwise get only open posts and not deleted
    # also avoid sending "scheduled posts" by default (published_date in future)
    if not all_posts:
        filters.append({'post_status': 'open'})
        if not deleted:
            filters.append({'deleted': False})
        filters.append({'published_date': {'$lte': date_to_str(utcnow())}})
    if sticky:
        filters.append({'sticky': True})
    else:
        filters.append({'sticky': False})
    if highlight:
        filters.append({'lb_highlight': True})
    if len(tags) > 0:
        filters.append({'tags': {'$in': tags}})
    return {'$and': filters}