mirror of
https://github.com/tcsenpai/pensieve.git
synced 2025-06-06 03:05:25 +00:00
feat(index): update last scan at when tags or metadata updated
This commit is contained in:
parent
16d3d94c9c
commit
b1a82243d3
@ -8,9 +8,10 @@ from sqlalchemy import (
|
||||
ForeignKey,
|
||||
func,
|
||||
Index,
|
||||
event,
|
||||
)
|
||||
from datetime import datetime
|
||||
from sqlalchemy.orm import relationship, DeclarativeBase, Mapped, mapped_column
|
||||
from sqlalchemy.orm import relationship, DeclarativeBase, Mapped, mapped_column, Session
|
||||
from typing import List
|
||||
from .schemas import MetadataSource, MetadataType
|
||||
from sqlalchemy.exc import OperationalError
|
||||
@ -94,6 +95,11 @@ class EntityModel(Base):
|
||||
Index("idx_folder_id", "folder_id"),
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def update_last_scan_at(cls, session: Session, entity: "EntityModel"):
|
||||
entity.last_scan_at = func.now()
|
||||
session.add(entity)
|
||||
|
||||
|
||||
class TagModel(Base):
|
||||
__tablename__ = "tags"
|
||||
@ -216,3 +222,24 @@ def init_default_libraries(session, default_plugins):
|
||||
session.add(library_plugin)
|
||||
|
||||
session.commit()
|
||||
|
||||
|
||||
@event.listens_for(EntityTagModel, "after_insert")
|
||||
@event.listens_for(EntityTagModel, "after_delete")
|
||||
def update_entity_last_scan_at_for_tags(mapper, connection, target):
|
||||
session = Session(bind=connection)
|
||||
entity = session.query(EntityModel).get(target.entity_id)
|
||||
if entity:
|
||||
EntityModel.update_last_scan_at(session, entity)
|
||||
session.commit()
|
||||
|
||||
|
||||
@event.listens_for(EntityMetadataModel, "after_insert")
|
||||
@event.listens_for(EntityMetadataModel, "after_update")
|
||||
@event.listens_for(EntityMetadataModel, "after_delete")
|
||||
def update_entity_last_scan_at_for_metadata(mapper, connection, target):
|
||||
session = Session(bind=connection)
|
||||
entity = session.query(EntityModel).get(target.entity_id)
|
||||
if entity:
|
||||
EntityModel.update_last_scan_at(session, entity)
|
||||
session.commit()
|
||||
|
Loading…
x
Reference in New Issue
Block a user