def get_feedlist_for_user(user_id): subs = Subscription.get_by_user(user_id) feedlist = [Feed.get_by_id(sub.feed_id) for sub in subs] state = 'ok' return { 'state': state, 'feedlist': feedlist }
def subscribe_imported_feeds(user_id, items): """ [item${i}: { 'title': ${title}, 'url': ${url} 'link': ${link} 'category': [] }] return: [newly subscribed feeds] """ state = 'ok' feedlist = [] for item in items: feed, feed_exist = Feed.get_or_create(item['url'], item['title'], item['link']) sub, sub_exist = Subscription.get_or_create(user_id, feed.feed_id) if not sub_exist: feedlist.append(feed) return { 'state': state, 'feedlist': feedlist }
def subscribe(user_id, url): """ subscribe a feed with address: url return: @state 'ok'/'network error'/'duplication' @feed feed information @articles latested articles """ state = 'ok' url = urlnorm.normalize(url) if not feedfinder.isFeed(url): return {'state': 'invalid feed url'} feed, feed_exist = Feed.get_or_create(url) sub, sub_exist = Subscription.get_or_create(user_id, feed.feed_id) if sub_exist: state = 'duplication' return {'state': state} return { 'state': state, 'feed': feed, 'stories': get_stories_for_feed(feed.feed_id) }