Wrap all commits with try/except

This commit is contained in:
Ruud
2014-01-26 00:33:21 +01:00
parent 31c39650a9
commit 7001ed476d
19 changed files with 919 additions and 689 deletions
+134 -94
View File
@@ -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