Esempio n. 1
0
    def _addFeedObject(self, request):
        user = endpoints.get_current_user()
        if not user:
            raise endpoints.UnauthorizedException('Authorization required')
        user_id = getUserId(user)

        if not request.url:
            raise endpoints.BadRequestException("Feed 'url' field required")
        if not request.get_full_article:
            setattr(request, 'get_full_article', False)
        d = feedparser.parse(request.url)
        data = {field.name: getattr(request, field.name) for field in request.all_fields()}
        del data['websafeKey']
        data['title'] = d.feed.title
        data['description'] = d.feed.description
        data['link'] = d.feed.link
        data['updated'] = mktime(d.feed.updated_parsed)
        p_key = ndb.Key(Profile, user_id)
        feed_id = Feed.allocate_ids(size=1, parent=p_key)[0]
        feed_key = ndb.Key(Feed, feed_id, parent=p_key)
        data['key'] = feed_key
        Feed(**data).put()

        self._addFeedItem(request, feed_key, d)
        return request