Compare commits

..

No commits in common. "d2e77b9ae51d543845cc5623cea63b4e0fe35206" and "19c6772b8851e7d8e10ee8eec4e06100681a097f" have entirely different histories.

5 changed files with 34 additions and 30 deletions

View file

@ -7,15 +7,15 @@ This file: Main API router definition.
from fastapi import APIRouter from fastapi import APIRouter
# from . import aggregate, calendar, file, image, misc, text, ticker # from . import aggregate, calendar, file, image, misc, text, ticker
from . import file, image, misc, text, ticker from . import file, misc
router = APIRouter(prefix="/api/v1") router = APIRouter(prefix="/api/v1")
router.include_router(misc.router) router.include_router(misc.router)
router.include_router(text.router) # router.include_router(text.router)
router.include_router(ticker.router) # router.include_router(ticker.router)
router.include_router(image.router) # router.include_router(image.router)
router.include_router(file.router) router.include_router(file.router)
# router.include_router(calendar.router) # router.include_router(calendar.router)

View file

@ -15,7 +15,7 @@ from fastapi import APIRouter, Depends
from fastapi.responses import StreamingResponse from fastapi.responses import StreamingResponse
from magic import Magic from magic import Magic
from ...core.dav_common import webdav_ensure_files, webdav_ensure_path # from ...core.dav_common import webdav_ensure_files, webdav_ensure_path
from ...core.webdav import WebDAV from ...core.webdav import WebDAV
from ._common import FileNameLister, PrefixFinder, PrefixUnique from ._common import FileNameLister, PrefixFinder, PrefixUnique
@ -40,12 +40,12 @@ file_unique = PrefixUnique(file_finder)
async def start_router() -> None: async def start_router() -> None:
_logger.debug(f"{router.prefix} router starting.") _logger.debug(f"{router.prefix} router starting.")
if not webdav_ensure_path(await file_lister.remote_path): # if not webdav_ensure_path(await file_lister.remote_path):
webdav_ensure_files( # webdav_ensure_files(
await file_lister.remote_path, # await file_lister.remote_path,
"logo.svg", # "logo.svg",
"thw.svg", # "thw.svg",
) # )
@router.get( @router.get(

View file

@ -15,9 +15,9 @@ from fastapi import APIRouter, Depends
from fastapi.responses import StreamingResponse from fastapi.responses import StreamingResponse
from PIL import Image from PIL import Image
from ...core.config import Config, ImageUIConfig, get_config from ...config import Config, ImageUIConfig
from ...core.dav_common import webdav_ensure_files, webdav_ensure_path from ...dav_common import webdav_ensure_files, webdav_ensure_path
from ...core.webdav import WebDAV from ...dav_file import DavFile
from ._common import FileNameLister, PrefixFinder, PrefixUnique from ._common import FileNameLister, PrefixFinder, PrefixUnique
_logger = getLogger(__name__) _logger = getLogger(__name__)
@ -80,10 +80,10 @@ async def get_image(
prefix: str, prefix: str,
name: str = Depends(image_unique), name: str = Depends(image_unique),
) -> StreamingResponse: ) -> StreamingResponse:
cfg = await get_config() cfg = await Config.get()
img = Image.open(
BytesIO(await WebDAV.read_bytes(f"{await image_lister.remote_path}/{name}")) dav_file = DavFile(f"{await image_lister.remote_path}/{name}")
) img = Image.open(BytesIO(await dav_file.as_bytes)).convert(cfg.image.mode)
img_buffer = BytesIO() img_buffer = BytesIO()
img.save(img_buffer, **cfg.image.save_params) img.save(img_buffer, **cfg.image.save_params)
@ -101,6 +101,6 @@ async def get_image(
response_model=ImageUIConfig, response_model=ImageUIConfig,
) )
async def get_ui_config( async def get_ui_config(
cfg: Config = Depends(get_config), cfg: Config = Depends(Config.get),
) -> ImageUIConfig: ) -> ImageUIConfig:
return cfg.image return cfg.image

View file

@ -14,8 +14,8 @@ from typing import Iterator
from fastapi import APIRouter, Depends from fastapi import APIRouter, Depends
from markdown import markdown from markdown import markdown
from ...core.dav_common import webdav_ensure_files, webdav_ensure_path from ...dav_common import webdav_ensure_files, webdav_ensure_path
from ...core.webdav import WebDAV from ...dav_file import DavFile
from ._common import FileNameLister, PrefixFinder, PrefixUnique from ._common import FileNameLister, PrefixFinder, PrefixUnique
_logger = getLogger(__name__) _logger = getLogger(__name__)
@ -73,7 +73,9 @@ async def find_texts(
async def get_text_content( async def get_text_content(
name: str = Depends(text_unique), name: str = Depends(text_unique),
) -> str: ) -> str:
return await WebDAV.read_str(f"{await text_lister.remote_path}/{name}") return await DavFile(
f"{await text_lister.remote_path}/{name}",
).as_string
@router.get( @router.get(

View file

@ -12,9 +12,9 @@ from typing import Iterator
from fastapi import APIRouter, Depends from fastapi import APIRouter, Depends
from markdown import markdown from markdown import markdown
from ...core.config import Config, TickerUIConfig, get_config from ...config import Config, TickerUIConfig
from ...core.dav_common import webdav_ensure_files, webdav_ensure_path from ...dav_common import webdav_ensure_files, webdav_ensure_path
from ...core.webdav import WebDAV from ...dav_file import DavFile
from .text import text_lister, text_unique from .text import text_lister, text_unique
_logger = getLogger(__name__) _logger = getLogger(__name__)
@ -35,10 +35,12 @@ async def start_router() -> None:
async def get_ticker_lines() -> Iterator[str]: async def get_ticker_lines() -> Iterator[str]:
cfg = await get_config() cfg = await Config.get()
file_name = await text_unique(cfg.ticker.file_name) file_name = await text_unique(cfg.ticker.file_name)
ticker = await WebDAV.read_str(f"{await text_lister.remote_path}/{file_name}") ticker = await DavFile(
f"{await text_lister.remote_path}/{file_name}",
).as_string
return (line.strip() for line in ticker.split("\n") if line.strip()) return (line.strip() for line in ticker.split("\n") if line.strip())
@ -46,7 +48,7 @@ async def get_ticker_lines() -> Iterator[str]:
async def get_ticker_content_lines( async def get_ticker_content_lines(
ticker_lines: Iterator[str] = Depends(get_ticker_lines), ticker_lines: Iterator[str] = Depends(get_ticker_lines),
) -> Iterator[str]: ) -> Iterator[str]:
cfg = await get_config() cfg = await Config.get()
return ( return (
line for line in ticker_lines if not line.startswith(cfg.ticker.comment_marker) line for line in ticker_lines if not line.startswith(cfg.ticker.comment_marker)
@ -60,7 +62,7 @@ async def get_ticker_content(
if len(ticker_content_padded) == 2: if len(ticker_content_padded) == 2:
return "" return ""
cfg = await get_config() cfg = await Config.get()
ticker_content = cfg.ticker.separator.join( ticker_content = cfg.ticker.separator.join(
ticker_content_padded, ticker_content_padded,
) )
@ -87,6 +89,6 @@ async def get_raw_ticker(
response_model=TickerUIConfig, response_model=TickerUIConfig,
) )
async def get_ui_config( async def get_ui_config(
cfg: Config = Depends(get_config), cfg: Config = Depends(Config.get),
) -> TickerUIConfig: ) -> TickerUIConfig:
return cfg.ticker return cfg.ticker