diff --git a/classquiz/__init__.py b/classquiz/__init__.py index 92f44dd..6171ee9 100644 --- a/classquiz/__init__.py +++ b/classquiz/__init__.py @@ -14,20 +14,7 @@ from classquiz.db import database from datetime import timedelta from classquiz.oauth import rememberme_middleware -from classquiz.routers import ( - users, - quiz, - utils, - stats, - storage, - search, - testing_routes, - editor, - live, - eximport, - login, - sitemap, -) +from classquiz.routers import users, quiz, utils, stats, storage, search, testing_routes, editor, live, eximport, login from classquiz.socket_server import sio from classquiz.helpers import meilisearch_init, telemetry_ping, bg_tasks from scheduler.asyncio import Scheduler @@ -95,5 +82,4 @@ app.include_router( ) app.include_router(editor.router, tags=["editor"], prefix="/api/v1/editor", include_in_schema=True) app.include_router(eximport.router, tags=["export", "import"], prefix="/api/v1/eximport", include_in_schema=True) -app.include_router(sitemap.router, tags=["sitemap"], prefix="/api/v1/sitemap", include_in_schema=True) app.mount("/", ASGIApp(sio)) diff --git a/classquiz/routers/sitemap.py b/classquiz/routers/sitemap.py deleted file mode 100644 index f75165f..0000000 --- a/classquiz/routers/sitemap.py +++ /dev/null @@ -1,61 +0,0 @@ -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this -# file, You can obtain one at https://mozilla.org/MPL/2.0/. -import datetime -import uuid - -from fastapi import APIRouter, Response -from jinja2 import Template -from pydantic import BaseModel -from classquiz.config import redis, settings -from classquiz.db import database - -settings = settings() -router = APIRouter() - - -sitemap_template = """ - -{% for entry in pages -%} - - {{ root_address}}/view/{{ entry.id.hex }} - {%- if entry.updated_at != None -%} - {{ entry.updated_at.strftime("%Y-%m-%d") }} - {% endif %} - - {%- endfor %} -""" - - -sql_statement_metadata = """ -SELECT id, title, description, updated_at from quiz where public ='t' -""" - -sql_statement_id_and_modified_only = """ -SELECT id, updated_at from quiz where public ='t' -""" - -template = Template(sitemap_template, enable_async=True) - - -class SitemapQuiz(BaseModel): - id: uuid.UUID - updated_at: datetime.datetime - - class Config: - orm_mode = True - - -@router.get("/get") -async def get_sitemap(): - redis_cache_resp = await redis.get("sitemap") - if redis_cache_resp is None: - res = await database.fetch_all(sql_statement_id_and_modified_only) - entries = [] - for i in res: - entries.append(SitemapQuiz.from_orm(i)) - rendered_sitemap = await template.render_async({"pages": entries, "root_address": settings.root_address}) - await redis.set("sitemap", rendered_sitemap, ex=86400) - return Response(content=rendered_sitemap, media_type="application/xml") - else: - return Response(content=redis_cache_resp, media_type="application/xml")