Browse Source

Default profiles

Profile JS fixes
pull/51/merge
Ruud 14 years ago
parent
commit
4de1df79ad
  1. 1
      couchpotato/core/plugins/movie/static/search.js
  2. 44
      couchpotato/core/plugins/profile/main.py
  3. 4
      couchpotato/core/plugins/profile/static/profile.css
  4. 6
      couchpotato/core/plugins/profile/static/profile.js
  5. 5
      couchpotato/core/plugins/quality/main.py
  6. 5
      couchpotato/core/plugins/quality/static/quality.js
  7. 5
      couchpotato/runner.py
  8. 4
      couchpotato/static/scripts/library/question.js

1
couchpotato/core/plugins/movie/static/search.js

@ -10,6 +10,7 @@ Block.Search = new Class({
self.el = new Element('div.search_form').adopt( self.el = new Element('div.search_form').adopt(
new Element('div.input').adopt( new Element('div.input').adopt(
self.input = new Element('input.inlay', { self.input = new Element('input.inlay', {
'placeholder': 'Search for new movies',
'events': { 'events': {
'keyup': self.keyup.bind(self), 'keyup': self.keyup.bind(self),
'focus': self.hideResults.bind(self, false) 'focus': self.hideResults.bind(self, false)

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

@ -1,6 +1,7 @@
from couchpotato import get_session from couchpotato import get_session
from couchpotato.api import addApiView from couchpotato.api import addApiView
from couchpotato.core.event import addEvent, fireEvent from couchpotato.core.event import addEvent, fireEvent
from couchpotato.core.helpers.encoding import toUnicode
from couchpotato.core.helpers.request import jsonified, getParams, getParam from couchpotato.core.helpers.request import jsonified, getParams, getParam
from couchpotato.core.logger import CPLog from couchpotato.core.logger import CPLog
from couchpotato.core.plugins.base import Plugin from couchpotato.core.plugins.base import Plugin
@ -17,6 +18,8 @@ class ProfilePlugin(Plugin):
addApiView('profile.save', self.save) addApiView('profile.save', self.save)
addApiView('profile.delete', self.delete) addApiView('profile.delete', self.delete)
addEvent('app.initialize', self.fill)
def all(self): def all(self):
db = get_session() db = get_session()
@ -90,3 +93,44 @@ class ProfilePlugin(Plugin):
'success': success, 'success': success,
'message': message 'message': message
}) })
def fill(self):
db = get_session();
profiles = [{
'label': 'Best',
'qualities': ['720p', '1080p', 'brrip', 'dvdrip']
}, {
'label': 'HD',
'qualities': ['720p', '1080p']
}]
# Create default quality profile
order = 99
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
)
p.types.append(profile_type)
db.commit()
quality_order += 1
order += 1
return True

4
couchpotato/core/plugins/profile/static/profile.css

@ -19,6 +19,10 @@
background-position: center; background-position: center;
} }
.profile .qualities {
min-height: 80px;
}
.profile .formHint { .profile .formHint {
width: 250px !important; width: 250px !important;
} }

6
couchpotato/core/plugins/profile/static/profile.js

@ -49,7 +49,7 @@ var Profile = new Class({
new Element('label', {'text': 'Search for'}), new Element('label', {'text': 'Search for'}),
self.type_container = new Element('ol.types'), self.type_container = new Element('ol.types'),
new Element('div.formHint', { new Element('div.formHint', {
'html': "Search these qualities, from top to bottom. <br />Use the checkbox, if I don't have to search any further." 'html': "Search these qualities (2 minimum), from top to bottom. Use the checkbox, to stop searching after it found this quality."
}) })
) )
); );
@ -68,6 +68,8 @@ var Profile = new Class({
if(self.save_timer) clearTimeout(self.save_timer); if(self.save_timer) clearTimeout(self.save_timer);
self.save_timer = (function(){ self.save_timer = (function(){
self.addType();
var data = self.getData(); var data = self.getData();
if(data.types.length < 2) return; if(data.types.length < 2) return;
@ -84,8 +86,6 @@ var Profile = new Class({
} }
}); });
self.addType();
}).delay(delay, self) }).delay(delay, self)
}, },

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

@ -19,7 +19,7 @@ class QualityPlugin(Plugin):
{'identifier': 'brrip', 'size': (700, 7000), 'label': 'BR-Rip', 'alternative': ['bdrip'], 'allow': ['720p'], 'ext':['avi']}, {'identifier': 'brrip', 'size': (700, 7000), 'label': 'BR-Rip', 'alternative': ['bdrip'], 'allow': ['720p'], 'ext':['avi']},
{'identifier': 'dvdr', 'size': (3000, 10000), 'label': 'DVD-R', 'alternative': [], 'allow': [], 'ext':['iso', 'img'], 'tags': ['pal', 'ntsc']}, {'identifier': 'dvdr', 'size': (3000, 10000), 'label': 'DVD-R', 'alternative': [], 'allow': [], 'ext':['iso', 'img'], 'tags': ['pal', 'ntsc']},
{'identifier': 'dvdrip', 'size': (600, 2400), 'label': 'DVD-Rip', 'alternative': [], 'allow': [], 'ext':['avi', 'mpg', 'mpeg']}, {'identifier': 'dvdrip', 'size': (600, 2400), 'label': 'DVD-Rip', 'alternative': [], 'allow': [], 'ext':['avi', 'mpg', 'mpeg']},
{'identifier': 'scr', 'size': (600, 1600), 'label': 'Screener', 'alternative': ['dvdscr'], 'allow': ['dvdr'], 'ext':['avi', 'mpg', 'mpeg']}, {'identifier': 'scr', 'size': (600, 1600), 'label': 'Screener', 'alternative': ['dvdscr', 'ppvrip'], 'allow': ['dvdr'], 'ext':['avi', 'mpg', 'mpeg']},
{'identifier': 'r5', 'size': (600, 1000), 'label': 'R5', 'alternative': [], 'allow': ['dvdr'], 'ext':['avi', 'mpg', 'mpeg']}, {'identifier': 'r5', 'size': (600, 1000), 'label': 'R5', 'alternative': [], 'allow': ['dvdr'], 'ext':['avi', 'mpg', 'mpeg']},
{'identifier': 'tc', 'size': (600, 1000), 'label': 'TeleCine', 'alternative': ['telecine'], 'allow': [], 'ext':['avi', 'mpg', 'mpeg']}, {'identifier': 'tc', 'size': (600, 1000), 'label': 'TeleCine', 'alternative': ['telecine'], 'allow': [], 'ext':['avi', 'mpg', 'mpeg']},
{'identifier': 'ts', 'size': (600, 1000), 'label': 'TeleSync', 'alternative': ['telesync'], 'allow': [], 'ext':['avi', 'mpg', 'mpeg']}, {'identifier': 'ts', 'size': (600, 1000), 'label': 'TeleSync', 'alternative': ['telesync'], 'allow': [], 'ext':['avi', 'mpg', 'mpeg']},
@ -31,7 +31,8 @@ class QualityPlugin(Plugin):
addEvent('quality.all', self.all) addEvent('quality.all', self.all)
addEvent('quality.single', self.single) addEvent('quality.single', self.single)
addEvent('quality.guess', self.guess) addEvent('quality.guess', self.guess)
addEvent('app.load', self.fill)
addEvent('app.initialize', self.fill)
def all(self): def all(self):

5
couchpotato/core/plugins/quality/static/quality.js

@ -31,7 +31,7 @@ var QualityBase = new Class({
self.settings = App.getPage('Settings') self.settings = App.getPage('Settings')
self.settings.addEvent('create', function(){ self.settings.addEvent('create', function(){
var tab = self.settings.createTab('profile', { var tab = self.settings.createTab('profile', {
'label': 'Profiles', 'label': 'Quality',
'name': 'profile' 'name': 'profile'
}); });
@ -53,8 +53,7 @@ var QualityBase = new Class({
self.settings.createGroup({ self.settings.createGroup({
'label': 'Quality Profiles', 'label': 'Quality Profiles',
'description': 'Create your own profiles with multiple qualities.', 'description': 'Create your own profiles with multiple qualities.'
'class': 'test123'
}).inject(self.content).adopt( }).inject(self.content).adopt(
new Element('a.add_new_profile', { new Element('a.add_new_profile', {
'text': 'Create a new quality profile', 'text': 'Create a new quality profile',

5
couchpotato/runner.py

@ -115,8 +115,10 @@ def runCouchPotato(options, base_path, args):
latest_db_version = version(repo) latest_db_version = version(repo)
initialize = True
try: try:
current_db_version = db_version(db, repo) current_db_version = db_version(db, repo)
initialize = False
except: except:
version_control(db, repo, version = latest_db_version) version_control(db, repo, version = latest_db_version)
current_db_version = db_version(db, repo) current_db_version = db_version(db, repo)
@ -131,6 +133,9 @@ def runCouchPotato(options, base_path, args):
fireEventAsync('app.load') fireEventAsync('app.load')
if initialize:
fireEventAsync('app.initialize')
# Create app # Create app
from couchpotato import app from couchpotato import app
api_key = Env.setting('api_key') api_key = Env.setting('api_key')

4
couchpotato/static/scripts/library/question.js

@ -61,8 +61,8 @@ var Question = new Class( {
e.stop(); e.stop();
new Request(Object.merge(options, { new Request(Object.merge(options, {
'url': options.href, 'url': options.href,
'onSuccess': function() { 'onComplete': function() {
(options.onSuccess || function(){})() (options.onComplete || function(){})()
self.close(); self.close();
} }
})).send(); })).send();

Loading…
Cancel
Save