Lock the parser to prevent spam and repeated requests
This commit is contained in:
parent
9f97c523d6
commit
d7422926ad
1 changed files with 94 additions and 93 deletions
|
@ -11,12 +11,12 @@ import httpx
|
||||||
import logging
|
import logging
|
||||||
import sqlite3
|
import sqlite3
|
||||||
import appdirs
|
import appdirs
|
||||||
|
from threading import Lock
|
||||||
from typing import Annotated
|
from typing import Annotated
|
||||||
from fastapi import Query, Header, HTTPException, Request
|
from fastapi import Query, Header, HTTPException, Request
|
||||||
from fastapi.responses import JSONResponse
|
from fastapi.responses import JSONResponse
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from bs4 import BeautifulSoup
|
from bs4 import BeautifulSoup
|
||||||
from rich.logging import RichHandler
|
|
||||||
from fastapi.middleware.cors import CORSMiddleware
|
from fastapi.middleware.cors import CORSMiddleware
|
||||||
|
|
||||||
|
|
||||||
|
@ -50,6 +50,7 @@ app = fastapi.FastAPI(
|
||||||
root_path=os.environ.get("PREVIEW_ROOT_PATH", ""),
|
root_path=os.environ.get("PREVIEW_ROOT_PATH", ""),
|
||||||
lifespan=startup
|
lifespan=startup
|
||||||
)
|
)
|
||||||
|
lock = Lock()
|
||||||
app.add_middleware(
|
app.add_middleware(
|
||||||
CORSMiddleware,
|
CORSMiddleware,
|
||||||
allow_origins=["*"],
|
allow_origins=["*"],
|
||||||
|
@ -231,7 +232,7 @@ def preview_url(
|
||||||
return json.loads(metadata)
|
return json.loads(metadata)
|
||||||
|
|
||||||
domain = os.environ.get("PREVIEW_HOMESERVER", "https://" + req.url.hostname)
|
domain = os.environ.get("PREVIEW_HOMESERVER", "https://" + req.url.hostname)
|
||||||
|
with lock:
|
||||||
try:
|
try:
|
||||||
with httpx.Client(
|
with httpx.Client(
|
||||||
headers={
|
headers={
|
||||||
|
|
Loading…
Reference in a new issue