def block(request, feed, item): next = db.query(ContentItem).filter(ContentItem.type.in_(get_content_feeds()[feed]["types"]), ContentItem.permissions_for(request.user), ContentItem.created_at > item["created_at"]).order_by(ContentItem.created_at).first() prev = db.query(ContentItem).filter(ContentItem.type.in_(get_content_feeds()[feed]["types"]), ContentItem.permissions_for(request.user), ContentItem.created_at < item["created_at"]).order_by(ContentItem.created_at.desc()).first() if next or prev: return { "next" : process_content_item(next) if next else None, "prev" : process_content_item(prev) if prev else None, } else: return None
def block(feed): if get_content_feeds()[feed]["url"] == "": feed_url = "" else: feed_url = "/" + get_content_feeds()[feed]["url"] tags = db.query(Tag, func.count(ContentItem)).join((ContentItem, Tag.content_items)).filter(ContentItem.type.in_(get_content_feeds()[feed]["types"])).group_by(Tag).order_by(Tag.title).all() if tags: return { "tags" : tags, "biggest_tag" : max(tags, key=operator.itemgetter(1))[1], "feed_url" : feed_url, } return None
def block(request, item=None): if request.user is None: return None if item is not None: start = item["created_at"] else: start = datetime.now() if db.query(func.count(ContentItem)).filter(ContentItem.type.in_(get_content_feeds()["timeline"]["types"]), ContentItem.created_at <= start).scalar() > 0: return { "start" : start, } return None