Source code for flexget.components.history.db

from datetime import datetime, timedelta

from loguru import logger
from sqlalchemy import Column, DateTime, Integer, String, Unicode

from flexget.event import event
from flexget.manager import Base

logger = logger.bind(name='history.db')


[docs] class History(Base): __tablename__ = 'history' id = Column(Integer, primary_key=True) task = Column('feed', String) filename = Column(String) url = Column(String) title = Column(Unicode) time = Column(DateTime) details = Column(String) def __init__(self): self.time = datetime.now() def __str__(self): return f'<History(filename={self.filename},task={self.task})>'
[docs] def to_dict(self): return { 'id': self.id, 'task': self.task, 'filename': self.filename, 'url': self.url, 'title': self.title, 'time': self.time.isoformat(), 'details': self.details, }
[docs] @event('manager.db_cleanup') def db_cleanup(manager, session): # Purge task executions older than 1 year result = ( session.query(History).filter(History.time < datetime.now() - timedelta(days=365)).delete() ) if result: logger.verbose('Removed {} accepted entries from history older than 1 year', result)