Example #1
0
    def tag(self, id):
        data_dict, params = self._parse_url_params()
        data_dict['fq'] = 'tags:"%s"' % id

        item_count, results = _package_search(data_dict)

        navigation_urls = self._navigation_urls(params,
                                                item_count=item_count,
                                                limit=data_dict['rows'],
                                                controller='feed',
                                                action='tag',
                                                id=id)

        feed_url = self._feed_url(params,
                                  controller='feed',
                                  action='tag',
                                  id=id)

        alternate_url = self._alternate_url(params, tags=id)

        return self.output_feed(results,
                                feed_title=u'%s - Tag: "%s"' %
                                (g.site_title, id),
                                feed_description=u'Recently created or '
                                'updated datasets on %s by tag: "%s"' %
                                (g.site_title, id),
                                feed_link=alternate_url,
                                feed_guid=_create_atom_id
                                (u'feeds/tag/%s.atom' % id),
                                feed_url=feed_url,
                                navigation_urls=navigation_urls)
    def general(self):
        data_dict, params = self._parse_url_params()
        data_dict['q'] = '*:*'

        item_count, results = _package_search(data_dict)

        navigation_urls = self._navigation_urls(params,
                                                item_count=item_count,
                                                limit=data_dict['rows'],
                                                controller='feed',
                                                action='general')

        feed_url = self._feed_url(params,
                                  controller='feed',
                                  action='general')

        alternate_url = self._alternate_url(params)

        return self.output_feed(results,
            feed_title=_(u'data.gc.ca Dataset Feed'),
            feed_description='',
            feed_link=alternate_url,
            feed_guid=_create_atom_id(
            u'/feeds/dataset.atom'),
            feed_url=feed_url,
            navigation_urls=navigation_urls)
Example #3
0
    def general(self):
        data_dict, params = self._parse_url_params()
        data_dict['q'] = '*:*'

        item_count, results = _package_search(data_dict)

        navigation_urls = self._navigation_urls(
            params,
            item_count=item_count,
            limit=data_dict['rows'],
            controller='ckanext.dge.controllers:DGEFeedController',
            action='general')

        feed_url = self._feed_url(
            params,
            controller='ckanext.dge.controllers:DGEFeedController',
            action='general')

        alternate_url = self._alternate_url(params)
        return self.output_feed(
            results,
            feed_title=g.site_title,
            feed_description=
            'Conjuntos de datos recientemente creados o actualizados en %s' %
            g.site_title,
            feed_link=alternate_url,
            feed_guid=_create_atom_id(u'/feeds/dataset.atom'),
            feed_url=feed_url,
            navigation_urls=navigation_urls)
Example #4
0
    def general(self):
        data_dict, params = self._parse_url_params()
        data_dict['q'] = '*:*'

        item_count, results = _package_search(data_dict)

        navigation_urls = self._navigation_urls(params,
                                                item_count=item_count,
                                                limit=data_dict['rows'],
                                                controller='feed',
                                                action='general')

        feed_url = self._feed_url(params,
                                  controller='feed',
                                  action='general')

        alternate_url = self._alternate_url(params)

        return self.output_feed(
            results,
            feed_title=_(u'Open Government Dataset Feed'),
            feed_description='',
            feed_link=alternate_url,
            feed_guid=_create_atom_id(
                u'/feeds/dataset.atom'),
            feed_url=feed_url,
            navigation_urls=navigation_urls
        )
Example #5
0
    def _group_or_organization(self, obj_dict, is_org):
        data_dict, params = self._parse_url_params()
        key = 'owner_org' if is_org else 'groups'
        data_dict['fq'] = '%s:"%s"' % (key, obj_dict['id'],)
        group_type = 'organization'
        if not is_org:
            group_type = 'group'

        item_count, results = _package_search(data_dict)

        navigation_urls = self._navigation_urls(params,
                                                item_count=item_count,
                                                limit=data_dict['rows'],
                                                controller='feed',
                                                action=group_type,
                                                id=obj_dict['name'])
        feed_url = self._feed_url(params,
                                  controller='feed',
                                  action=group_type,
                                  id=obj_dict['name'])

        guid = _create_atom_id(u'feeds/group/%s.atom' %
                               obj_dict['name'])
        alternate_url = self._alternate_url(params, groups=obj_dict['name'])
        desc = u'Recently created or updated datasets on %s by group: "%s"' %\
            (g.site_title, obj_dict['title'])
        title = u'%s - Group: "%s"' %\
            (g.site_title, obj_dict['title'])

        if is_org:
            guid = _create_atom_id(u'feeds/organization/%s.atom' %
                                   obj_dict['name'])
            alternate_url = self._alternate_url(params,
                                                organization=obj_dict['name'])
            desc = u'Recently created or  updated datasets on %s '\
                'by organization: "%s"' % (g.site_title, obj_dict['title'])
            title = u'%s - Organization: "%s"' %\
                (g.site_title, obj_dict['title'])

        return self.output_feed(results,
                                feed_title=title,
                                feed_description=desc,
                                feed_link=alternate_url,
                                feed_guid=guid,
                                feed_url=feed_url,
                                navigation_urls=navigation_urls)
    def output_feed(self, results, feed_title, feed_description,
                    feed_link, feed_url, navigation_urls, feed_guid):

        author_name = config.get('ckan.feeds.author_name', '').strip() or \
            config.get('ckan.site_id', '').strip()
        author_link = config.get('ckan.feeds.author_link', '').strip() or \
            config.get('ckan.site_url', '').strip()

        feed = _FixedAtom1Feed(
            title=feed_title,
            link=feed_link,
            description=feed_description,
            language=u'en',
            author_name=author_name,
            author_link=author_link,
            feed_guid=feed_guid,
            feed_url=feed_url,
            previous_page=navigation_urls['previous'],
            next_page=navigation_urls['next'],
            first_page=navigation_urls['first'],
            last_page=navigation_urls['last'],
        )

        if c.language == 'fr':
            def lx(x):
                return x + '_fra'
        else:
            def lx(x):
                return x

        for pkg in results:
            feed.add_item(
                title=pkg.get(lx('title'), ''),
                link=self.base_url + url(str(
                    '/api/action/package_show?id=%s' % pkg['name'])
                ),
                description=pkg.get(lx('notes'), ''),
                updated=date_str_to_datetime(pkg.get('metadata_modified')),
                published=date_str_to_datetime(pkg.get('metadata_created')),
                unique_id=_create_atom_id(u'/dataset/%s' % pkg['id']),
                author_name=pkg.get('author', ''),
                author_email=pkg.get('author_email', ''),
                categories=''.join(e['value']
                                   for e in pkg.get('extras', [])
                                   if e['key'] == lx('keywords')).split(','),
                enclosure=webhelpers.feedgenerator.Enclosure(
                    self.base_url + url(str(
                        '/api/action/package_show?id=%s' % pkg['name'])),
                    unicode(len(json.dumps(pkg))),   # TODO fix this
                    u'application/json')
            )
        response.content_type = feed.mime_type
        return feed.writeString('utf-8')
Example #7
0
    def output_feed(self, results, feed_title, feed_description, feed_link,
                    feed_url, navigation_urls, feed_guid):

        author_name = config.get('ckan.feeds.author_name', '').strip() or \
            config.get('ckan.site_id', '').strip()
        author_link = config.get('ckan.feeds.author_link', '').strip() or \
            config.get('ckan.site_url', '').strip()

        feed = _FixedAtom1Feed(
            title=feed_title,
            link=feed_link,
            description=feed_description,
            language=u'en',
            author_name=author_name,
            author_link=author_link,
            feed_guid=feed_guid,
            feed_url=feed_url,
            previous_page=navigation_urls['previous'],
            next_page=navigation_urls['next'],
            first_page=navigation_urls['first'],
            last_page=navigation_urls['last'],
        )

        if c.language == 'fr':

            def lx(x):
                return x + '_fra'
        else:

            def lx(x):
                return x

        for pkg in results:
            feed.add_item(
                title=pkg.get(lx('title'), ''),
                link=self.base_url +
                url(str('/api/action/package_show?id=%s' % pkg['name'])),
                description=pkg.get(lx('notes'), ''),
                updated=date_str_to_datetime(pkg.get('metadata_modified')),
                published=date_str_to_datetime(pkg.get('metadata_created')),
                unique_id=_create_atom_id(u'/dataset/%s' % pkg['id']),
                author_name=pkg.get('author', ''),
                author_email=pkg.get('author_email', ''),
                categories=''.join(e['value'] for e in pkg.get('extras', [])
                                   if e['key'] == lx('keywords')).split(','),
                enclosure=webhelpers.feedgenerator.Enclosure(
                    self.base_url +
                    url(str('/api/action/package_show?id=%s' % pkg['name'])),
                    unicode(len(json.dumps(pkg))),  # TODO fix this
                    u'application/json'))
        response.content_type = feed.mime_type
        return feed.writeString('utf-8')
Example #8
0
    def output_feed(self, results, feed_title, feed_description, feed_link, feed_url, navigation_urls, feed_guid):

        author_name = config.get("ckan.feeds.author_name", "").strip() or config.get("ckan.site_id", "").strip()
        author_link = config.get("ckan.feeds.author_link", "").strip() or config.get("ckan.site_url", "").strip()

        feed = _FixedAtom1Feed(
            title=feed_title,
            link=feed_link,
            description=feed_description,
            language=u"en",
            author_name=author_name,
            author_link=author_link,
            feed_guid=feed_guid,
            feed_url=feed_url,
            previous_page=navigation_urls["previous"],
            next_page=navigation_urls["next"],
            first_page=navigation_urls["first"],
            last_page=navigation_urls["last"],
        )

        if c.language == "fr":

            def lx(x):
                return x + "_fra"

        else:

            def lx(x):
                return x

        for pkg in results:
            feed.add_item(
                title=pkg.get(lx("title"), ""),
                link=self.base_url + url(str("/api/action/package_show?id=%s" % pkg["name"])),
                description=pkg.get(lx("notes"), ""),
                updated=date_str_to_datetime(pkg.get("metadata_modified")),
                published=date_str_to_datetime(pkg.get("metadata_created")),
                unique_id=_create_atom_id(u"/dataset/%s" % pkg["id"]),
                author_name=pkg.get("author", ""),
                author_email=pkg.get("author_email", ""),
                categories="".join(e["value"] for e in pkg.get("extras", []) if e["key"] == lx("keywords")).split(","),
                enclosure=webhelpers.feedgenerator.Enclosure(
                    self.base_url + url(str("/api/action/package_show?id=%s" % pkg["name"])),
                    unicode(len(json.dumps(pkg))),  # TODO fix this
                    u"application/json",
                ),
            )
        response.content_type = feed.mime_type
        return feed.writeString("utf-8")
Example #9
0
    def output_feed(self, results, feed_title, feed_description,
                    feed_link, feed_url, navigation_urls, feed_guid):
        author_name = config.get('ckan.feeds.author_name', '').strip() or \
            config.get('ckan.site_id', '').strip()
        author_link = config.get('ckan.feeds.author_link', '').strip() or \
            config.get('ckan.site_url', '').strip()

        # TODO language
        feed = _FixedAtom1Feed(
            title=feed_title,
            link=feed_link,
            description=feed_description,
            language=u'en',
            author_name=author_name,
            author_link=author_link,
            feed_guid=feed_guid,
            feed_url=feed_url,
            previous_page=navigation_urls['previous'],
            next_page=navigation_urls['next'],
            first_page=navigation_urls['first'],
            last_page=navigation_urls['last'],
        )

        for pkg in results:
            feed.add_item(
                title=pkg.get('title', ''),
                link=self.base_url + h.url_for(controller='package',
                                               action='read',
                                               id=pkg['id']),
                description=pkg.get('notes', ''),
                updated=h.date_str_to_datetime(pkg.get('metadata_modified')),
                published=h.date_str_to_datetime(pkg.get('metadata_created')),
                unique_id=_create_atom_id(u'dataset/%s' % pkg['id']),
                author_name=';'.join(str(x) for x in pkg.get('author','')),
                author_email=pkg.get('author_email', ''),
                categories=[t['name'] for t in pkg.get('tags', [])],
                enclosure=webhelpers.feedgenerator.Enclosure(
                    self.base_url + h.url_for(controller='api',
                                              register='package',
                                              action='show',
                                              id=pkg['name'],
                                              ver='2'),
                    unicode(len(json.dumps(pkg))),   # TODO fix this
                    u'application/json')
            )
        response.content_type = feed.mime_type
        return feed.writeString('utf-8')
Example #10
0
    def output_feed(self, results, feed_title, feed_description, feed_link,
                    feed_url, navigation_urls, feed_guid):
        author_name = config.get('ckan.feeds.author_name', '').strip() or \
            config.get('ckan.site_id', '').strip()
        author_link = config.get('ckan.feeds.author_link', '').strip() or \
            config.get('ckan.site_url', '').strip()

        feed = _FixedAtom1Feed(
            title=feed_title,
            link=feed_link,
            description=feed_description,
            language='es',
            author_name=author_name,
            author_link=author_link,
            feed_guid=feed_guid,
            feed_url=feed_url,
            previous_page=navigation_urls['previous'],
            next_page=navigation_urls['next'],
            first_page=navigation_urls['first'],
            last_page=navigation_urls['last'],
        )

        for pkg in results:
            description = pkg.get('description', '').get('es', '')
            feed.add_item(
                title=pkg.get('title', ''),
                link=self.base_url +
                h.url_for(controller='package', action='read', id=pkg['name']),
                description=description,
                updated=self._dge_date_str_to_datetime(
                    pkg.get('metadata_modified')),
                published=self._dge_date_str_to_datetime(
                    pkg.get('metadata_created')),
                unique_id=_create_atom_id(u'/catalogo/%s' % pkg['name']),
                author_name=pkg.get('author_name', ''),
                author_email=pkg.get('author_email', ''),
                categories=[t['name'] for t in pkg.get('tags', [])],
                enclosure=None,
            )
        response.content_type = feed.mime_type
        return feed.writeString('utf-8')
Example #11
0
    def general(self):
        data_dict, params = self._parse_url_params()
        data_dict["q"] = "*:*"

        item_count, results = _package_search(data_dict)

        navigation_urls = self._navigation_urls(
            params, item_count=item_count, limit=data_dict["rows"], controller="feed", action="general"
        )

        feed_url = self._feed_url(params, controller="feed", action="general")

        alternate_url = self._alternate_url(params)

        return self.output_feed(
            results,
            feed_title=_(u"data.gc.ca Dataset Feed"),
            feed_description="",
            feed_link=alternate_url,
            feed_guid=_create_atom_id(u"/feeds/dataset.atom"),
            feed_url=feed_url,
            navigation_urls=navigation_urls,
        )