Browse Source

Fill in profiles & qualities when they are empty. fix #3396

pull/3423/head
Ruud 11 years ago
parent
commit
7788669de1
  1. 11
      couchpotato/core/plugins/profile/main.py
  2. 45
      couchpotato/core/plugins/quality/main.py

11
couchpotato/core/plugins/profile/main.py

@ -38,9 +38,18 @@ class ProfilePlugin(Plugin):
def forceDefaults(self): def forceDefaults(self):
db = get_db()
# Fill qualities and profiles if they are empty somehow..
if db.count(db.all, 'profile') == 0:
if db.count(db.all, 'quality') == 0:
fireEvent('quality.fill', single = True)
self.fill()
# Get all active movies without profile # Get all active movies without profile
try: try:
db = get_db()
medias = fireEvent('media.with_status', 'active', single = True) medias = fireEvent('media.with_status', 'active', single = True)
profile_ids = [x.get('_id') for x in self.all()] profile_ids = [x.get('_id') for x in self.all()]

45
couchpotato/core/plugins/quality/main.py

@ -1,5 +1,6 @@
import traceback import traceback
import re import re
from CodernityDB.database import RecordNotFound
from couchpotato import get_db from couchpotato import get_db
from couchpotato.api import addApiView from couchpotato.api import addApiView
@ -51,6 +52,7 @@ class QualityPlugin(Plugin):
addEvent('quality.order', self.getOrder) addEvent('quality.order', self.getOrder)
addEvent('quality.ishigher', self.isHigher) addEvent('quality.ishigher', self.isHigher)
addEvent('quality.isfinish', self.isFinish) addEvent('quality.isfinish', self.isFinish)
addEvent('quality.fill', self.fill)
addApiView('quality.size.save', self.saveSize) addApiView('quality.size.save', self.saveSize)
addApiView('quality.list', self.allView, docs = { addApiView('quality.list', self.allView, docs = {
@ -152,24 +154,31 @@ class QualityPlugin(Plugin):
order = 0 order = 0
for q in self.qualities: for q in self.qualities:
db.insert({ existing = None
'_t': 'quality', try:
'order': order, existing = db.get('quality', q.get('identifier'))
'identifier': q.get('identifier'), except RecordNotFound:
'size_min': tryInt(q.get('size')[0]), pass
'size_max': tryInt(q.get('size')[1]),
}) if not existing:
db.insert({
log.info('Creating profile: %s', q.get('label')) '_t': 'quality',
db.insert({ 'order': order,
'_t': 'profile', 'identifier': q.get('identifier'),
'order': order + 20, # Make sure it goes behind other profiles 'size_min': tryInt(q.get('size')[0]),
'core': True, 'size_max': tryInt(q.get('size')[1]),
'qualities': [q.get('identifier')], })
'label': toUnicode(q.get('label')),
'finish': [True], log.info('Creating profile: %s', q.get('label'))
'wait_for': [0], db.insert({
}) '_t': 'profile',
'order': order + 20, # Make sure it goes behind other profiles
'core': True,
'qualities': [q.get('identifier')],
'label': toUnicode(q.get('label')),
'finish': [True],
'wait_for': [0],
})
order += 1 order += 1

Loading…
Cancel
Save