Wrap all commits with try/except
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import traceback
|
||||
from couchpotato import get_session
|
||||
from couchpotato.api import addApiView
|
||||
from couchpotato.core.event import addEvent, fireEvent
|
||||
@@ -37,16 +38,20 @@ class ProfilePlugin(Plugin):
|
||||
# Get all active movies without profile
|
||||
active_status = fireEvent('status.get', 'active', single = True)
|
||||
|
||||
db = get_session()
|
||||
movies = db.query(Media).filter(Media.status_id == active_status.get('id'), Media.profile == None).all()
|
||||
try:
|
||||
db = get_session()
|
||||
movies = db.query(Media).filter(Media.status_id == active_status.get('id'), Media.profile == None).all()
|
||||
|
||||
if len(movies) > 0:
|
||||
default_profile = self.default()
|
||||
for movie in movies:
|
||||
movie.profile_id = default_profile.get('id')
|
||||
db.commit()
|
||||
|
||||
db.expire_all()
|
||||
if len(movies) > 0:
|
||||
default_profile = self.default()
|
||||
for movie in movies:
|
||||
movie.profile_id = default_profile.get('id')
|
||||
db.commit()
|
||||
except:
|
||||
log.error('Failed: %s', traceback.format_exc())
|
||||
db.rollback()
|
||||
finally:
|
||||
db.close()
|
||||
|
||||
def allView(self, **kwargs):
|
||||
|
||||
@@ -66,44 +71,53 @@ class ProfilePlugin(Plugin):
|
||||
for profile in profiles:
|
||||
temp.append(profile.to_dict(self.to_dict))
|
||||
|
||||
db.expire_all()
|
||||
return temp
|
||||
|
||||
def save(self, **kwargs):
|
||||
|
||||
db = get_session()
|
||||
try:
|
||||
db = get_session()
|
||||
|
||||
p = db.query(Profile).filter_by(id = kwargs.get('id')).first()
|
||||
if not p:
|
||||
p = Profile()
|
||||
db.add(p)
|
||||
p = db.query(Profile).filter_by(id = kwargs.get('id')).first()
|
||||
if not p:
|
||||
p = Profile()
|
||||
db.add(p)
|
||||
|
||||
p.label = toUnicode(kwargs.get('label'))
|
||||
p.order = kwargs.get('order', p.order if p.order else 0)
|
||||
p.core = kwargs.get('core', False)
|
||||
p.label = toUnicode(kwargs.get('label'))
|
||||
p.order = kwargs.get('order', p.order if p.order else 0)
|
||||
p.core = kwargs.get('core', False)
|
||||
|
||||
#delete old types
|
||||
[db.delete(t) for t in p.types]
|
||||
#delete old types
|
||||
[db.delete(t) for t in p.types]
|
||||
|
||||
order = 0
|
||||
for type in kwargs.get('types', []):
|
||||
t = ProfileType(
|
||||
order = order,
|
||||
finish = type.get('finish') if order > 0 else 1,
|
||||
wait_for = kwargs.get('wait_for'),
|
||||
quality_id = type.get('quality_id')
|
||||
)
|
||||
p.types.append(t)
|
||||
order = 0
|
||||
for type in kwargs.get('types', []):
|
||||
t = ProfileType(
|
||||
order = order,
|
||||
finish = type.get('finish') if order > 0 else 1,
|
||||
wait_for = kwargs.get('wait_for'),
|
||||
quality_id = type.get('quality_id')
|
||||
)
|
||||
p.types.append(t)
|
||||
|
||||
order += 1
|
||||
order += 1
|
||||
|
||||
db.commit()
|
||||
db.commit()
|
||||
|
||||
profile_dict = p.to_dict(self.to_dict)
|
||||
profile_dict = p.to_dict(self.to_dict)
|
||||
|
||||
return {
|
||||
'success': True,
|
||||
'profile': profile_dict
|
||||
}
|
||||
except:
|
||||
log.error('Failed: %s', traceback.format_exc())
|
||||
db.rollback()
|
||||
finally:
|
||||
db.close()
|
||||
|
||||
return {
|
||||
'success': True,
|
||||
'profile': profile_dict
|
||||
'success': False
|
||||
}
|
||||
|
||||
def default(self):
|
||||
@@ -114,93 +128,119 @@ class ProfilePlugin(Plugin):
|
||||
.first()
|
||||
default_dict = default.to_dict(self.to_dict)
|
||||
|
||||
db.expire_all()
|
||||
return default_dict
|
||||
|
||||
def saveOrder(self, **kwargs):
|
||||
|
||||
db = get_session()
|
||||
try:
|
||||
db = get_session()
|
||||
|
||||
order = 0
|
||||
for profile in kwargs.get('ids', []):
|
||||
p = db.query(Profile).filter_by(id = profile).first()
|
||||
p.hide = kwargs.get('hidden')[order]
|
||||
p.order = order
|
||||
order = 0
|
||||
for profile in kwargs.get('ids', []):
|
||||
p = db.query(Profile).filter_by(id = profile).first()
|
||||
p.hide = kwargs.get('hidden')[order]
|
||||
p.order = order
|
||||
|
||||
order += 1
|
||||
order += 1
|
||||
|
||||
db.commit()
|
||||
db.commit()
|
||||
|
||||
return {
|
||||
'success': True
|
||||
}
|
||||
except:
|
||||
log.error('Failed: %s', traceback.format_exc())
|
||||
db.rollback()
|
||||
finally:
|
||||
db.close()
|
||||
|
||||
return {
|
||||
'success': True
|
||||
'success': False
|
||||
}
|
||||
|
||||
def delete(self, id = None, **kwargs):
|
||||
|
||||
db = get_session()
|
||||
|
||||
success = False
|
||||
message = ''
|
||||
try:
|
||||
p = db.query(Profile).filter_by(id = id).first()
|
||||
db = get_session()
|
||||
|
||||
db.delete(p)
|
||||
db.commit()
|
||||
success = False
|
||||
message = ''
|
||||
try:
|
||||
p = db.query(Profile).filter_by(id = id).first()
|
||||
|
||||
# Force defaults on all empty profile movies
|
||||
self.forceDefaults()
|
||||
db.delete(p)
|
||||
db.commit()
|
||||
|
||||
success = True
|
||||
except Exception as e:
|
||||
message = log.error('Failed deleting Profile: %s', e)
|
||||
# Force defaults on all empty profile movies
|
||||
self.forceDefaults()
|
||||
|
||||
success = True
|
||||
except Exception as e:
|
||||
message = log.error('Failed deleting Profile: %s', e)
|
||||
|
||||
return {
|
||||
'success': success,
|
||||
'message': message
|
||||
}
|
||||
except:
|
||||
log.error('Failed: %s', traceback.format_exc())
|
||||
db.rollback()
|
||||
finally:
|
||||
db.close()
|
||||
|
||||
db.expire_all()
|
||||
return {
|
||||
'success': success,
|
||||
'message': message
|
||||
'success': False
|
||||
}
|
||||
|
||||
def fill(self):
|
||||
|
||||
db = get_session()
|
||||
try:
|
||||
db = get_session()
|
||||
|
||||
profiles = [{
|
||||
'label': 'Best',
|
||||
'qualities': ['720p', '1080p', 'brrip', 'dvdrip']
|
||||
}, {
|
||||
'label': 'HD',
|
||||
'qualities': ['720p', '1080p']
|
||||
}, {
|
||||
'label': 'SD',
|
||||
'qualities': ['dvdrip', 'dvdr']
|
||||
}]
|
||||
profiles = [{
|
||||
'label': 'Best',
|
||||
'qualities': ['720p', '1080p', 'brrip', 'dvdrip']
|
||||
}, {
|
||||
'label': 'HD',
|
||||
'qualities': ['720p', '1080p']
|
||||
}, {
|
||||
'label': 'SD',
|
||||
'qualities': ['dvdrip', 'dvdr']
|
||||
}]
|
||||
|
||||
# Create default quality profile
|
||||
order = -2
|
||||
for profile in profiles:
|
||||
log.info('Creating default profile: %s', profile.get('label'))
|
||||
p = Profile(
|
||||
label = toUnicode(profile.get('label')),
|
||||
order = order
|
||||
)
|
||||
db.add(p)
|
||||
|
||||
quality_order = 0
|
||||
for quality in profile.get('qualities'):
|
||||
quality = fireEvent('quality.single', identifier = quality, single = True)
|
||||
profile_type = ProfileType(
|
||||
quality_id = quality.get('id'),
|
||||
profile = p,
|
||||
finish = True,
|
||||
wait_for = 0,
|
||||
order = quality_order
|
||||
# Create default quality profile
|
||||
order = -2
|
||||
for profile in profiles:
|
||||
log.info('Creating default profile: %s', profile.get('label'))
|
||||
p = Profile(
|
||||
label = toUnicode(profile.get('label')),
|
||||
order = order
|
||||
)
|
||||
p.types.append(profile_type)
|
||||
db.add(p)
|
||||
|
||||
quality_order += 1
|
||||
quality_order = 0
|
||||
for quality in profile.get('qualities'):
|
||||
quality = fireEvent('quality.single', identifier = quality, single = True)
|
||||
profile_type = ProfileType(
|
||||
quality_id = quality.get('id'),
|
||||
profile = p,
|
||||
finish = True,
|
||||
wait_for = 0,
|
||||
order = quality_order
|
||||
)
|
||||
p.types.append(profile_type)
|
||||
|
||||
order += 1
|
||||
quality_order += 1
|
||||
|
||||
db.commit()
|
||||
order += 1
|
||||
|
||||
return True
|
||||
db.commit()
|
||||
|
||||
return True
|
||||
except:
|
||||
log.error('Failed: %s', traceback.format_exc())
|
||||
db.rollback()
|
||||
finally:
|
||||
db.close()
|
||||
|
||||
return False
|
||||
|
||||
Reference in New Issue
Block a user