Dateigröße pro Aufnahme entkoppelt - feste Größe nach Abschluss
Die Dateigröße wird jetzt pro Aufnahme korrekt berechnet statt das gesamte Verzeichnis zu summieren. Bei abgeschlossenen Aufnahmen wird die Größe einmalig gespeichert und nicht mehr durch laufende Aufnahmen verändert. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
1ad87c7186
commit
851ff086ac
+24
-1
@@ -1,5 +1,5 @@
|
||||
import datetime
|
||||
from sqlalchemy import create_engine, Column, Integer, String, Boolean, DateTime, Text
|
||||
from sqlalchemy import create_engine, Column, Integer, String, Boolean, DateTime, Text, text
|
||||
from sqlalchemy.orm import declarative_base, sessionmaker
|
||||
|
||||
Base = declarative_base()
|
||||
@@ -41,6 +41,18 @@ class Job(Base):
|
||||
updated_at = Column(DateTime, default=datetime.datetime.utcnow, onupdate=datetime.datetime.utcnow)
|
||||
|
||||
|
||||
class Station(Base):
|
||||
__tablename__ = "stations"
|
||||
|
||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||
name = Column(String(200), nullable=False)
|
||||
stream_url = Column(String(1000), nullable=False)
|
||||
stream_type = Column(String(20), default="auto")
|
||||
description = Column(Text, default="")
|
||||
created_at = Column(DateTime, default=datetime.datetime.utcnow)
|
||||
updated_at = Column(DateTime, default=datetime.datetime.utcnow, onupdate=datetime.datetime.utcnow)
|
||||
|
||||
|
||||
class Recording(Base):
|
||||
__tablename__ = "recordings"
|
||||
|
||||
@@ -59,6 +71,7 @@ class Recording(Base):
|
||||
segment_mode = Column(Boolean, default=False)
|
||||
is_scheduled = Column(Boolean, default=False)
|
||||
error_message = Column(Text, nullable=True)
|
||||
file_size = Column(Integer, nullable=True)
|
||||
|
||||
|
||||
class LogEntry(Base):
|
||||
@@ -80,6 +93,16 @@ def init_db(db_path: str):
|
||||
_engine = create_engine(f"sqlite:///{db_path}", connect_args={"check_same_thread": False})
|
||||
Base.metadata.create_all(_engine)
|
||||
_SessionLocal = sessionmaker(bind=_engine)
|
||||
_migrate(_engine)
|
||||
|
||||
|
||||
def _migrate(engine):
|
||||
with engine.connect() as conn:
|
||||
try:
|
||||
conn.execute(text("ALTER TABLE recordings ADD COLUMN file_size INTEGER"))
|
||||
conn.commit()
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
|
||||
def get_session():
|
||||
|
||||
Reference in New Issue
Block a user