Merge branch '0.8.0--dev' into collections_refactor

This commit is contained in:
th3r00t
2025-08-05 00:19:01 -04:00
committed by GitHub
15 changed files with 83 additions and 1749 deletions

View File

@@ -1,5 +1,6 @@
from typing import Optional
from typing_extensions import Annotated
from sqlalchemy import func, ForeignKey
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column, relationship
import datetime
@@ -49,38 +50,4 @@ class Collection(Base):
book_id: Mapped[int] = mapped_column(ForeignKey("Book.id"))
# Each collection entry points to one book
book = relationship("Book", back_populates="collections")
# class Book(Base):
# """Book model."""
#
# __tablename__ = "Book"
#
# id: Mapped[int] = mapped_column(primary_key=True, nullable=False)
# title: Mapped[str]
# author: Mapped[Optional[str]]
# categories: Mapped[Optional[str]]
# cover: Mapped[Optional[bytes]]
# pages: Mapped[Optional[int]]
# progress: Mapped[Optional[float]]
# file_name: Mapped[str]
# description: Mapped[Optional[str]]
# date: Mapped[timestamp]
# rights: Mapped[Optional[str]]
# tags: Mapped[Optional[str]]
# identifier: Mapped[Optional[str]]
# publisher: Mapped[Optional[str]]
# collection = relationship("Collection", back_populates="book")
#
#
# class Collection(Base):
# """Collection model."""
#
# __tablename__ = "Collection"
#
# id: Mapped[int] = mapped_column(primary_key=True)
# collection: Mapped[str]
# book_id: Mapped[int] = mapped_column(ForeignKey(Book.id))
# book = relationship("Book", back_populates="collections")
book = relationship("Book", back_populates="collections")

View File

@@ -86,7 +86,8 @@ class Storage:
cover_image = None
if not book[1]:
pass
collections = self.parse_collections_from_path(book)
# collections = self.parse_collections_from_path(book)
# breakpoint()
_book = Book(
title=book[0],
author=book[1],
@@ -173,6 +174,7 @@ class Storage:
_q = _sess.execute(
select(Collection.id).where(
Collection.collection == _s,
# BUG: book.id is not the correct identifier.
Collection.book_id == book.id,
)
)

View File

@@ -1,6 +1,4 @@
"""pyShelf's Frontend Objects."""
from sys import exit
from shutil import which
from subprocess import run
from pathlib import Path
from ...backend.lib.config import Config
@@ -16,16 +14,5 @@ class JSInterface():
def install(self):
"""Install the JavaScript dependencies."""
if which("npm"):
self.config.logger.info("Installing JavaScript dependencies...")
run(["npm", "install"], cwd=self.package_json.parent)
else:
self.config.logger.error("npm is not installed.")
exit(1)
if which("npx"):
self.config.logger.info("Compiling TypeScript...")
run(["npx", "tsc", "static/script/pyshelf.ts"], cwd=self.package_json.parent)
else:
self.config.logger.error("npx is not installed.")
exit(1)
run(["npm", "install"], cwd=self.package_json.parent)
run(["npx", "tsc", "static/script/pyshelf.ts"], cwd=self.package_json.parent)