This commit is contained in:
Ruud committed 2014-02-09 15:57:08 +01:00
1 parent c3bc9c8591
commit f7e1a2a5eb
14 files changed
+915 -83

No files matched your search

+3 -2
View File
@@ -9,11 +9,11 @@ class ReleaseIndex(TreeBasedIndex):
super(ReleaseIndex, self).__init__(*args, **kwargs)
def make_key(self, key):
return md5(key).hexdigest()
return key
def make_key_value(self, data):
if data.get('_t') == 'release' and data.get('media_id'):
return md5(data['media_id']).hexdigest(), {'media_id': data.get('media_id')}
return data['media_id'], None
def run_for_media(self, db, media_id):
for release in db.get_many('release', media_id, with_doc = True):
@@ -49,6 +49,7 @@ class ReleaseIDIndex(TreeBasedIndex):
super(ReleaseIDIndex, self).__init__(*args, **kwargs)
def make_key(self, key):
print key
return md5(key).hexdigest()
def make_key_value(self, data):
+30 -41
View File
@@ -12,7 +12,6 @@ from couchpotato.core.settings.model import Release as Relea, Media, \
from couchpotato.environment import Env
from inspect import ismethod, isfunction
from sqlalchemy.exc import InterfaceError
from sqlalchemy.orm import joinedload_all
from sqlalchemy.sql.expression import and_, or_
import os
import time
@@ -110,44 +109,43 @@ class Release(Plugin):
def add(self, group):
try:
db = get_session()
db = get_db()
identifier = '%s.%s.%s' % (group['identifier'], group['meta_data'].get('audio', 'unknown'), group['meta_data']['quality']['identifier'])
# Add movie
media = db.query(Media).filter_by(library_id = group['library'].get('id')).first()
if not media:
media = Media(
library_id = group['library'].get('id'),
profile_id = 0,
status = 'done'
)
db.add(media)
db.commit()
# Add movie if it doesn't exist
try:
media = db.get('media', group['identifier'], with_doc = True)['doc']
media['status'] = 'done'
db.update(media)
except:
media = {
'_t': 'media',
'identifier': group['identifier'],
'profile_id': None,
'status': 'done'
}
m = db.insert(media)
media.update(m)
# Add Release
rel = db.query(Relea).filter(
or_(
Relea.identifier == identifier,
and_(Relea.identifier.startswith(group['identifier']), Relea.status == 'snatched')
)
).first()
if not rel:
rel = Relea(
identifier = identifier,
movie = media,
quality_id = group['meta_data']['quality'].get('id'),
status = 'done'
)
db.add(rel)
db.commit()
release = {
'_t': 'release',
'media_id': media['_id'],
'identifier': identifier,
'quality': group['meta_data']['quality'].get('identifier'),
'status': 'done'
}
try:
r = db.get('release_identifier', identifier, with_doc = True)['doc']
release.update(r)
db.update(release)
except:
r = db.insert(release)
release.update(r)
# Add each file type
rel['files'] = []
for type in group['files']:
for cur_file in group['files'][type]:
added_file = self.saveFile(cur_file, type = type)
rel['files'].append(added_file.get('id'))
release['files'] = dict((k, v) for k, v in group['files'].items() if v)
fireEvent('media.restatus', media['_id'])
@@ -157,15 +155,6 @@ class Release(Plugin):
return False
def saveFile(self, filepath, type = 'unknown', include_media_info = False):
# Check database and update/insert if necessary
return {
'type': '%s_%s' % Scanner.file_types.get(type),
'path': filepath,
'part': fireEvent('scanner.partnumber', file, single = True),
}
def deleteView(self, id = None, **kwargs):
return {