scrape metadata in background
This commit is contained in:
parent
e55df181db
commit
2711fbb0c1
6 changed files with 89 additions and 3 deletions
|
|
@ -324,6 +324,7 @@ class Item(db.Model):
|
|||
if m:
|
||||
m['primaryid'] = primaryid
|
||||
self.meta = m
|
||||
self.modified = datetime.utcnow()
|
||||
self.update()
|
||||
|
||||
def queue_download(self):
|
||||
|
|
@ -549,6 +550,38 @@ class File(db.Model):
|
|||
state.db.session.add(self)
|
||||
state.db.session.commit()
|
||||
|
||||
class Scrape(db.Model):
|
||||
|
||||
__tablename__ = 'scrape'
|
||||
|
||||
item_id = sa.Column(sa.String(32), sa.ForeignKey('item.id'), primary_key=True)
|
||||
item = sa.orm.relationship('Item', backref=sa.orm.backref('scraping', lazy='dynamic'))
|
||||
|
||||
added = sa.Column(sa.DateTime())
|
||||
|
||||
def __repr__(self):
|
||||
return '='.join(map(str, [self.item_id, self.added]))
|
||||
|
||||
@classmethod
|
||||
def get(cls, item_id):
|
||||
return cls.query.filter_by(item_id=item_id).first()
|
||||
|
||||
@classmethod
|
||||
def get_or_create(cls, item_id):
|
||||
t = cls.get(item_id)
|
||||
if not t:
|
||||
t = cls(item_id=item_id)
|
||||
t.added = datetime.utcnow()
|
||||
t.save()
|
||||
return t
|
||||
|
||||
def save(self):
|
||||
state.db.session.add(self)
|
||||
state.db.session.commit()
|
||||
|
||||
def remove(self):
|
||||
state.db.session.delete(self)
|
||||
state.db.session.commit()
|
||||
|
||||
class Transfer(db.Model):
|
||||
__tablename__ = 'transfer'
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import time
|
|||
import ox
|
||||
|
||||
from changelog import Changelog
|
||||
from item.models import File
|
||||
from item.models import File, Scrape
|
||||
from user.models import List
|
||||
from utils import remove_empty_folders
|
||||
from websocket import trigger_event
|
||||
|
|
@ -56,9 +56,10 @@ def add_file(id, f, prefix, from_=None):
|
|||
if item.meta.get('primaryid'):
|
||||
Changelog.record(user, 'edititem', item.id, dict([item.meta['primaryid']]))
|
||||
item.added = datetime.utcnow()
|
||||
item.scrape()
|
||||
item.update_icons()
|
||||
item.save()
|
||||
item.modified = datetime.utcnow()
|
||||
item.update()
|
||||
Scrape.get_or_create(item.id)
|
||||
return file
|
||||
|
||||
def run_scan():
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue