Ejemplo n.º 1
0
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 }
Ejemplo n.º 2
0
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 }
Ejemplo n.º 3
0
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) }