chore: update packages and python

This commit is contained in:
acgnhik 2022-12-18 18:20:29 +08:00
parent 8547834c2a
commit 50971eeb0e
6 changed files with 20 additions and 30 deletions

View File

@ -8,7 +8,7 @@ on:
env:
FFMPEG_ARCHIVE_URL: https://github.com/BtbN/FFmpeg-Builds/releases/download/latest/ffmpeg-master-latest-win64-lgpl-shared.zip
FFMPEG_ARCHIVE_NAME: ffmpeg-master-latest-win64-lgpl-shared.zip
PYTHON_ARCHIVE_URL: https://www.python.org/ftp/python/3.10.4/python-3.10.4-embed-amd64.zip
PYTHON_ARCHIVE_URL: https://www.python.org/ftp/python/3.11.1/python-3.11.1-embed-amd64.zip
jobs:
@ -23,7 +23,7 @@ jobs:
- name: Setup Python
uses: actions/setup-python@v3
with:
python-version: "3.10"
python-version: "3.11.1"
- name: Download ffmpeg archive
run: Invoke-WebRequest -Uri $($env:FFMPEG_ARCHIVE_URL) -OutFile ffmpeg.zip

View File

@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1
FROM python:3.10-slim-buster
FROM python:3.11-slim-buster
WORKDIR /app
VOLUME ["/cfg", "/log", "/rec"]

View File

@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1
FROM python:3.10-slim-buster
FROM python:3.11-slim-buster
WORKDIR /app
VOLUME ["/cfg", "/log", "/rec"]

View File

@ -38,13 +38,13 @@ install_requires =
python-liquid >= 1.2.1, < 2.0.0
typing-extensions >= 3.10.0.0
ordered-set >= 4.1.0, < 5.0.0
fastapi >= 0.70.0, < 0.71.0
fastapi >= 0.88.0, < 0.89.0
email_validator >= 1.1.3, < 2.0.0
click < 8.1.0
typer >= 0.4.1, < 0.5.0
typer >= 0.7.0, < 0.8.0
aiohttp >= 3.8.1, < 4.0.0
requests >= 2.24.0, < 3.0.0
aiofiles >= 0.8.0, < 0.9.0
aiofiles >= 22.1.0, < 23.0.0
tenacity >= 8.0.1, < 9.0.0
colorama >= 0.4.4, < 0.5.0
humanize >= 3.13.1, < 4.0.0
@ -52,14 +52,14 @@ install_requires =
attrs >= 21.2.0, < 22.0.0
lxml >= 4.6.4, < 5.0.0
toml >= 0.10.2, < 0.11.0
m3u8 >= 1.0.0, < 2.0.0
m3u8 >= 3.3.0, < 4.0.0
av >= 10.0.0, < 11.0.0
jsonpath == 0.82
psutil >= 5.8.0, < 6.0.0
reactivex >= 4.0.0, < 5.0.0
bitarray >= 2.2.5, < 3.0.0
brotli >= 1.0.9, < 2.0.0
uvicorn[standard] >= 0.15.0, < 0.16.0
uvicorn[standard] >= 0.20.0, < 0.21.0
[options.extras_require]
dev =

View File

@ -137,12 +137,12 @@ api.include_router(update.router)
class WebAppFiles(StaticFiles):
async def lookup_path(
def lookup_path(
self, path: str
) -> Tuple[str, Optional[os.stat_result]]:
if path == '404.html':
path = 'index.html'
return await super().lookup_path(path)
return super().lookup_path(path)
def file_response(self, full_path: str, *args, **kwargs) -> Response: # type: ignore # noqa
# ignore MIME types from Windows registry

View File

@ -1,11 +1,10 @@
import logging
import secrets
from typing import Optional, Set, Dict
from typing import Dict, Optional, Set
from fastapi import status, Request, Header
from fastapi import Header, Request, status
from fastapi.exceptions import HTTPException
logger = logging.getLogger(__name__)
@ -21,34 +20,26 @@ attempting_clients: Dict[str, int] = {}
async def authenticate(
request: Request,
x_api_key: Optional[str] = Header(None),
request: Request, x_api_key: Optional[str] = Header(None)
) -> None:
assert api_key, 'api_key is required'
if not x_api_key:
raise HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED,
detail='No api key',
status_code=status.HTTP_401_UNAUTHORIZED, detail='No api key'
)
assert request.client is not None, 'client should not be None'
client_ip = request.client.host
assert client_ip, 'client_ip is required'
if client_ip in blacklist:
raise HTTPException(
status_code=status.HTTP_403_FORBIDDEN,
detail='Blacklisted',
)
raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail='Blacklisted')
if client_ip not in whitelist:
if (
len(whitelist) >= MAX_WHITELIST or
len(blacklist) >= MAX_BLACKLIST
):
if len(whitelist) >= MAX_WHITELIST or len(blacklist) >= MAX_BLACKLIST:
raise HTTPException(
status_code=status.HTTP_403_FORBIDDEN,
detail='Max clients allowed in whitelist or blacklist '
'will exceeded',
detail='Max clients allowed in whitelist or blacklist ' 'will exceeded',
)
if len(attempting_clients) >= MAX_ATTEMPTING_CLIENTS:
raise HTTPException(
@ -71,8 +62,7 @@ async def authenticate(
if client_ip in whitelist:
whitelist.remove(client_ip)
raise HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED,
detail='API key is invalid',
status_code=status.HTTP_401_UNAUTHORIZED, detail='API key is invalid'
)
if client_ip in attempting_clients: