def sitemap(): """ --- get: summary: Get a sitemap description: >- Returns a site map for search engine robots. This lists each published collection on the current instance. responses: '200': description: OK content: text/xml: schema: type: object tags: - System """ enable_cache(vary_user=False) request.rate_limit = None collections = [] for collection in Collection.all_authz(Authz.from_role(None)): updated_at = collection.updated_at.date().isoformat() updated_at = max(settings.SITEMAP_FLOOR, updated_at) collections.append({ 'url': collection_url(collection.id), 'updated_at': updated_at }) return render_xml('sitemap.xml', collections=collections)
def sitemap(id): collection = get_db_collection(id, request.authz.READ) url = collection_url(collection_id=collection.id) updated_at = collection.updated_at.date().isoformat() return render_xml('sitemap.xml', url=url, updated_at=updated_at, entries=generate_sitemap(id))
def sitemap_index(): enable_cache(vary_user=False) collections = [] for collection in Collection.all_authz(Authz.from_role(None)): collections.append({ 'url': url_for('collections_api.sitemap', id=collection.id), 'updated_at': collection.updated_at.date().isoformat() }) return render_xml('sitemap_index.xml', collections=collections)
def sitemap(): enable_cache(vary_user=False) collections = [] for collection in Collection.all_authz(Authz.from_role(None)): updated_at = collection.updated_at.date().isoformat() updated_at = max(settings.SITEMAP_FLOOR, updated_at) collections.append({ 'url': collection_url(collection.id), 'updated_at': updated_at }) return render_xml('sitemap.xml', collections=collections)
def sitemap(): enable_cache(vary_user=False) collections = [] for collection in Collection.all_authz(Authz.from_role(None)): updated_at = collection.updated_at.date().isoformat() updated_at = max(settings.SITEMAP_FLOOR, updated_at) collections.append({ 'url': collection_url(collection.id), 'updated_at': updated_at }) return render_xml('sitemap.xml', collections=collections)
def sitemap(id): """Generate entries for a collection-based sitemap.xml file.""" # cf. https://www.sitemaps.org/protocol.html collection = get_db_collection(id, request.authz.READ) document = model.get(Document.SCHEMA) entries = [] for entity in get_sitemap_entities(id): updated_at = entity.get('updated_at', '').split('T', 1)[0] updated_at = max(settings.SITEMAP_FLOOR, updated_at) schema = model.get(entity.get('schema')) if schema is None: continue if schema.is_a(document): url = document_url(entity.get('id')) else: url = entity_url(entity.get('id')) entries.append((url, updated_at)) url = collection_url(collection_id=collection.id) updated_at = collection.updated_at.date().isoformat() return render_xml('sitemap.xml', url=url, updated_at=updated_at, entries=entries)
def sitemap(id): get_db_collection(id, request.authz.READ) return render_xml('sitemap.xml', entries=generate_sitemap(id))