487 def collectFeeds(self, prefs, content):
488 data = json.loads(content)
489
490 queue_name = self.request.get('queue_name', 'priority-queue')
491 sections = {}
492 for feedData in data['subscriptions']:
493 feed = Feed.get_or_insert(feedData['id'])
494 feed.put()
495 category = feedData['categories'][0]
496 categoryId = category['id']
497 if not sections.has_key(categoryId):
498 sections[categoryId] = (category['label'], [])
499
500
501 sections[categoryId][1].
append(feed.key())
502
503
504 taskqueue.add(url='/update/feed',
505 queue_name=queue_name,
506 params={
'id': feed.key().
name()})
507
508 sectionKeys = []
509 for name, (title, feeds) in sections.items():
510 section = Section.get_or_insert(name)
511 section.feeds = feeds
512 section.title = title
513 section.put()
514
515 if title == 'Top': title = '0Top'
516 sectionKeys.append((title, section.key()))
517
518
519 prefs.sections = [key for t, key in sorted(sectionKeys)]
520 prefs.put()
521
522
static void append(char **dst, size_t *count, const char *src, size_t n)