rename project to fhdhview
No files matched your search
@@ -1,4 +1,4 @@
|
||||
# FDH View
|
||||
# FHDH View
|
||||
|
||||
## Description
|
||||
|
||||
@@ -24,7 +24,7 @@ The endpoint serves the 10 upcoming screenings for the day. The frontend automat
|
||||
For development run the application locally:
|
||||
|
||||
```sh
|
||||
poetry run uvicorn fdhview.main:app --reload
|
||||
poetry run uvicorn fhdhview.main:app --reload
|
||||
```
|
||||
|
||||
## Tests
|
||||
@@ -59,6 +59,6 @@ docker compose -f docker/docker-compose.yml up
|
||||
|
||||
The code for this repository is available under the `GNU Affero General Public License v3.0 or later`.
|
||||
|
||||
Figtree fonts in `fdhview/static/fonts/` are under the `SIL Open Font License, Version 1.1`.
|
||||
Figtree fonts in `fhdhview/static/fonts/` are under the `SIL Open Font License, Version 1.1`.
|
||||
|
||||
The logo in `fdhview/static/Logo.svg` is copyright of `Filmhuis Den Haag` and must be replaced.
|
||||
The logo in `fhdhview/static/Logo.svg` is copyright of `Filmhuis Den Haag` and must be replaced.
|
||||
@@ -34,4 +34,4 @@ ENV PATH="/app/.venv/bin:$PATH"
|
||||
USER appuser
|
||||
|
||||
EXPOSE 8000
|
||||
CMD ["uvicorn", "fdhview.main:app", "--host", "0.0.0.0", "--port", "8000"]
|
||||
CMD ["uvicorn", "fhdhview.main:app", "--host", "0.0.0.0", "--port", "8000"]
|
||||
@@ -7,9 +7,9 @@ from fastapi import APIRouter, Depends, File, HTTPException, UploadFile, status
|
||||
from fastapi.responses import FileResponse, JSONResponse
|
||||
from sqlmodel.ext.asyncio.session import AsyncSession
|
||||
|
||||
from fdhview.api.deps import check_auth, get_session
|
||||
from fdhview.services.screenwriter.importer import import_sessions
|
||||
from fdhview.services.screenwriter.parser import XmlParseError, parse_screenwriter_xml
|
||||
from fhdhview.api.deps import check_auth, get_session
|
||||
from fhdhview.services.screenwriter.importer import import_sessions
|
||||
from fhdhview.services.screenwriter.parser import XmlParseError, parse_screenwriter_xml
|
||||
|
||||
BASE_DIR = Path(__file__).resolve().parent.parent
|
||||
|
||||
@@ -8,8 +8,8 @@ from fastapi import Depends, HTTPException, status
|
||||
from fastapi.security import HTTPBasic, HTTPBasicCredentials
|
||||
from sqlmodel.ext.asyncio.session import AsyncSession
|
||||
|
||||
from fdhview.core.config import settings
|
||||
from fdhview.core.database import async_session
|
||||
from fhdhview.core.config import settings
|
||||
from fhdhview.core.database import async_session
|
||||
|
||||
security = HTTPBasic()
|
||||
|
||||
@@ -8,10 +8,10 @@ from fastapi import APIRouter, Depends
|
||||
from sqlmodel import col, select
|
||||
from sqlmodel.ext.asyncio.session import AsyncSession
|
||||
|
||||
from fdhview.api.deps import get_session
|
||||
from fdhview.core.config import settings
|
||||
from fdhview.models.screening import Screening
|
||||
from fdhview.schemas.screening import ScreeningRead
|
||||
from fhdhview.api.deps import get_session
|
||||
from fhdhview.core.config import settings
|
||||
from fhdhview.models.screening import Screening
|
||||
from fhdhview.schemas.screening import ScreeningRead
|
||||
|
||||
router = APIRouter(prefix="/screenings", tags=["Screenings"])
|
||||
|
||||
@@ -5,7 +5,7 @@ from sqlalchemy.ext.asyncio import async_sessionmaker, create_async_engine
|
||||
from sqlmodel import SQLModel
|
||||
from sqlmodel.ext.asyncio.session import AsyncSession
|
||||
|
||||
from fdhview.core.config import settings
|
||||
from fhdhview.core.config import settings
|
||||
|
||||
sqlite_url = f"sqlite+aiosqlite:///{settings.sql_file_name}"
|
||||
|
||||
@@ -7,11 +7,11 @@ from pathlib import Path
|
||||
from fastapi import FastAPI
|
||||
from fastapi.staticfiles import StaticFiles
|
||||
|
||||
from fdhview.api.admin import router as admin_router
|
||||
from fdhview.api.health import router as health_router
|
||||
from fdhview.api.info import router as info_router
|
||||
from fdhview.api.screenings import router as screenings_router
|
||||
from fdhview.core.database import init_db
|
||||
from fhdhview.api.admin import router as admin_router
|
||||
from fhdhview.api.health import router as health_router
|
||||
from fhdhview.api.info import router as info_router
|
||||
from fhdhview.api.screenings import router as screenings_router
|
||||
from fhdhview.core.database import init_db
|
||||
|
||||
|
||||
@asynccontextmanager
|
||||
@@ -7,7 +7,7 @@ import sqlalchemy as sa
|
||||
from pydantic import field_serializer, field_validator
|
||||
from sqlmodel import Field, SQLModel
|
||||
|
||||
from fdhview.models.enums import KijkWijzer, Screen
|
||||
from fhdhview.models.enums import KijkWijzer, Screen
|
||||
|
||||
|
||||
class Screening(SQLModel, table=True):
|
||||
@@ -1,7 +1,7 @@
|
||||
# SPDX-FileCopyrightText: 2026 Filmhuis Den Haag
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
from fdhview.models.enums import KijkWijzer, Screen
|
||||
from fhdhview.models.enums import KijkWijzer, Screen
|
||||
|
||||
screens = {
|
||||
'DenHaag_zaal_1': Screen.ONE,
|
||||
@@ -5,7 +5,7 @@ from datetime import datetime
|
||||
|
||||
from sqlmodel import SQLModel
|
||||
|
||||
from fdhview.models.enums import KijkWijzer, Screen
|
||||
from fhdhview.models.enums import KijkWijzer, Screen
|
||||
|
||||
|
||||
class ScreeningRead(SQLModel):
|
||||
@@ -4,10 +4,10 @@
|
||||
from sqlmodel import delete
|
||||
from sqlmodel.ext.asyncio.session import AsyncSession
|
||||
|
||||
from fdhview.models.enums import Screen
|
||||
from fdhview.models.screening import KijkWijzer, Screening
|
||||
from fdhview.models.tags import kijkwijzer, screens
|
||||
from fdhview.services.screenwriter.schema import AAMPos
|
||||
from fhdhview.models.enums import Screen
|
||||
from fhdhview.models.screening import KijkWijzer, Screening
|
||||
from fhdhview.models.tags import kijkwijzer, screens
|
||||
from fhdhview.services.screenwriter.schema import AAMPos
|
||||
|
||||
# Delimiters used to attach notes to titles
|
||||
DASH_DELIMITERS = (" - ", " – ", " — ", "- ")
|
||||
@@ -5,7 +5,7 @@ from xml.etree import ElementTree as ET
|
||||
|
||||
from pydantic import ValidationError
|
||||
|
||||
from fdhview.services.screenwriter.schema import AAMPos
|
||||
from fhdhview.services.screenwriter.schema import AAMPos
|
||||
|
||||
|
||||
class XmlParseError(Exception):
|
||||
@@ -8,7 +8,7 @@ from zoneinfo import ZoneInfo
|
||||
from pydantic import BeforeValidator
|
||||
from pydantic_xml import BaseXmlModel, RootXmlModel, element, wrapped
|
||||
|
||||
from fdhview.core.config import settings
|
||||
from fhdhview.core.config import settings
|
||||
|
||||
DT = Annotated[datetime, BeforeValidator(lambda v: datetime.strptime(v, "%Y%m%d%H%M").replace(
|
||||
tzinfo=ZoneInfo(settings.timezone)
|
||||
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB |
|
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 4.0 KiB |
|
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 4.0 KiB |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
@@ -1,5 +1,5 @@
|
||||
[project]
|
||||
name = "fdhview"
|
||||
name = "fhdhview"
|
||||
version = "0.1.0"
|
||||
description = "Filmhuis Den Haag schedule viewer"
|
||||
authors = [
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
from fdhview.services.screenwriter.schema import AAMPos
|
||||
from fhdhview.services.screenwriter.schema import AAMPos
|
||||
|
||||
|
||||
def read_xml():
|
||||
|
||||
@@ -11,8 +11,8 @@ from sqlalchemy.ext.asyncio import async_sessionmaker, create_async_engine
|
||||
from sqlmodel import SQLModel
|
||||
from sqlmodel.ext.asyncio.session import AsyncSession
|
||||
|
||||
from fdhview.api.deps import get_session
|
||||
from fdhview.main import app
|
||||
from fhdhview.api.deps import get_session
|
||||
from fhdhview.main import app
|
||||
|
||||
test_engine = create_async_engine("sqlite+aiosqlite:///:memory:", echo=False)
|
||||
test_session_maker = async_sessionmaker(test_engine, class_=AsyncSession, expire_on_commit=False)
|
||||
|
||||
@@ -5,7 +5,7 @@ from pathlib import Path
|
||||
|
||||
from fastapi.testclient import TestClient
|
||||
|
||||
from fdhview.core.config import settings
|
||||
from fhdhview.core.config import settings
|
||||
|
||||
AUTH = ("username", settings.api_password)
|
||||
|
||||
|
||||
@@ -6,8 +6,8 @@ from pathlib import Path
|
||||
|
||||
import pytest
|
||||
|
||||
from fdhview.services.screenwriter.importer import _clean_title
|
||||
from fdhview.services.screenwriter.schema import AAMPos
|
||||
from fhdhview.services.screenwriter.importer import _clean_title
|
||||
from fhdhview.services.screenwriter.schema import AAMPos
|
||||
|
||||
|
||||
def test_xml():
|
||||
|
||||
@@ -7,9 +7,9 @@ from zoneinfo import ZoneInfo
|
||||
import pytest
|
||||
from sqlmodel.ext.asyncio.session import AsyncSession
|
||||
|
||||
from fdhview.core.config import settings
|
||||
from fdhview.models.enums import Screen
|
||||
from fdhview.models.screening import Screening
|
||||
from fhdhview.core.config import settings
|
||||
from fhdhview.models.enums import Screen
|
||||
from fhdhview.models.screening import Screening
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
|
||||