def generate_feed(page=1): feed = FeedGenerator() feed.id("https://pub.dartlang.org/feed.atom") feed.title("Pub Packages for Dart") feed.link(href="https://pub.dartlang.org/", rel="alternate") feed.link(href="https://pub.dartlang.org/feed.atom", rel="self") feed.description("Last Updated Packages") feed.author({"name": "Dart Team"}) i = 1 pager = QueryPager(int(page), "/feed.atom?page=%d", Package.all().order('-updated'), per_page=10) for item in pager.get_items(): i += 1 entry = feed.add_entry() for author in item.latest_version.pubspec.authors: entry.author({"name": author[0]}) entry.title("v" + item.latest_version.pubspec.get("version") +\ " of " + item.name) entry.link(link={"href": "https://pub.dartlang.org/packages/" +\ item.name, "rel": "alternate", "title": item.name}) entry.id(uuid.uuid5(uuid.NAMESPACE_URL, ("https://pub.dartlang.org/packages/" + item.name + "#" +\ item.latest_version.pubspec.get("version")).encode('utf-8')).urn) entry.description( item.latest_version.pubspec.get("description", "Not Available")) readme = item.latest_version.readme_obj if readme is not None: entry.content(readme.render(), type='html') else: entry.content("<p>No README Found</p>", type='html') return feed
def index(self, page=1, format='html'): """Retrieve a paginated list of uploaded packages. Arguments: page: The page of packages to get. Each page contains 10 packages. """ if format == 'json': pager = QueryPager(int(page), "/packages.json?page=%d", Package.all().order('-updated'), per_page=50) return json.dumps({ "packages": [ handlers.request().url(action='show', id=package.name) for package in pager.get_items() ], "prev": pager.prev_url, "next": pager.next_url, "pages": pager.page_count }) else: pager = QueryPager(int(page), "/packages?page=%d", Package.all().order('-updated')) title = 'All Packages' if page != 1: title = 'Page %s | %s' % (page, title) return handlers.render("packages/index", packages=pager.get_items(), pagination=pager.render_pagination(), layout={'title': title})
def generate_feed(page=1): feed = FeedGenerator() feed.id("https://pub.dartlang.org/feed.atom") feed.title("Pub Packages for Dart") feed.link(href="https://pub.dartlang.org/", rel="alternate") feed.link(href="https://pub.dartlang.org/feed.atom", rel="self") feed.description("Last Updated Packages") feed.author({"name": "Dart Team"}) i = 1 pager = QueryPager(int(page), "/feed.atom?page=%d", Package.all().order('-updated'), per_page=10) for item in pager.get_items(): i += 1 entry = feed.add_entry() for author in item.latest_version.pubspec.authors: entry.author({"name": author[0]}) entry.title("v" + item.latest_version.pubspec.get("version") +\ " of " + item.name) entry.link(link={"href": item.url, "rel": "alternate", "title": item.name}) entry.id( "https://pub.dartlang.org/packages/" + item.name + "#" +\ item.latest_version.pubspec.get("version")) entry.description( item.latest_version.pubspec .get("description", "Not Available")) readme = item.latest_version.readme if not readme is None: entry.content(item.latest_version.readme.render(), type='html') else: entry.content("<p>No README Found</p>", type='html') return feed
def index(self, page=1): """Retrieve a paginated list of uploaded packages. Arguments: page: The page of packages to get. Each page contains 50 packages. """ pager = QueryPager(int(page), "/api/packages?page=%d", Package.all().order('-updated'), per_page=100) return json.dumps({ "packages": [package.as_dict() for package in pager.get_items()], "prev_url": pager.prev_url, "next_url": pager.next_url, "pages": pager.page_count })