rename project to fhdhview

This commit is contained in:
dreamer committed 2026-10-19 16:01:27 +02:00
1 parent c4d3b6b292
commit 6755875938
51 files changed
+39 -39

No files matched your search

+4 -4
View File
@@ -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.
+1 -1
View File
@@ -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"]
File renamed without changes.
File renamed without changes.
@@ -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
+2 -2
View File
@@ -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()
File renamed without changes.
File renamed without changes.
@@ -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"])
File renamed without changes.
File renamed without changes.
@@ -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}"
File renamed without changes.
File renamed without changes.
+5 -5
View File
@@ -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
File renamed without changes.
File renamed without changes.
@@ -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,
File renamed without changes.
@@ -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):
File renamed without changes.
@@ -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)
File renamed without changes.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

File renamed without changes.
File renamed without changes.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

File renamed without changes.
+1 -1
View File
@@ -1,5 +1,5 @@
[project]
name = "fdhview"
name = "fhdhview"
version = "0.1.0"
description = "Filmhuis Den Haag schedule viewer"
authors = [
+1 -1
View File
@@ -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():
+2 -2
View File
@@ -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)
+1 -1
View File
@@ -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)
+2 -2
View File
@@ -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():
+3 -3
View File
@@ -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