#!/usr/bin/env python3.12 import importlib import logging from typing import Any from fastapi import FastAPI, WebSocket from fastapi.security import APIKeyHeader, APIKeyQuery from fastapi.middleware.cors import CORSMiddleware logger = logging.getLogger() logger.setLevel(logging.CRITICAL) app = FastAPI(title="codey.lol API", version="0.1a", contact={ 'name': 'codey' }) constants = importlib.import_module("constants").Constants() util = importlib.import_module("util").Utilities(app, constants) glob_state = importlib.import_module("state").State(app, util, constants) origins = [ "https://codey.lol", ] app.add_middleware(CORSMiddleware, allow_origins=origins, allow_credentials=True, allow_methods=["POST"], allow_headers=["*"]) """ Blacklisted routes """ @app.get("/") def disallow_get(): return util.get_blocked_response() @app.get("/{any:path}") def disallow_get_any(var: Any = None): return util.get_blocked_response() @app.post("/") def disallow_base_post(): return util.get_blocked_response() """ End Blacklisted Routes """ """ Actionable Routes """ counter_endpoints = importlib.import_module("endpoints.counters").Counters(app, util, constants, glob_state) randmsg_endpoint = importlib.import_module("endpoints.rand_msg").RandMsg(app, util, constants, glob_state) transcription_endpoints = importlib.import_module("endpoints.transcriptions").Transcriptions(app, util, constants, glob_state) ai_endpoints = importlib.import_module("endpoints.ai").AI(app, util, constants, glob_state) # Below also provides: /lyric_cache_list/ (in addition to /lyric_search/) lyric_search_endpoint = importlib.import_module("endpoints.lyric_search").LyricSearch(app, util, constants, glob_state) # Below provides numerous LastFM-fed endpoints lastfm_endpoints = importlib.import_module("endpoints.lastfm").LastFM(app, util, constants, glob_state) # Below: YT endpoint(s) yt_endpoints = importlib.import_module("endpoints.yt").YT(app, util, constants, glob_state) # Below: XC endpoint(s) xc_endpoints = importlib.import_module("endpoints.xc").XC(app, util, constants, glob_state) # Below: CAH endpoint(s) cah_endpoints = importlib.import_module("endpoints.cah").CAH(app, util, constants, glob_state) """ End Actionable Routes """