Starting simple, removed non working pages for now
This commit is contained in:
@@ -38,7 +38,7 @@ class MoviePlugin(Plugin):
|
||||
movies = []
|
||||
for movie in results:
|
||||
temp = movie.to_dict(deep = {
|
||||
'releases': {'status': {}, 'quality': {}, 'files':{}},
|
||||
'releases': {'status': {}, 'quality': {}, 'files':{}, 'info': {}},
|
||||
'library': {'titles': {}, 'files':{}},
|
||||
'files': {}
|
||||
})
|
||||
@@ -68,7 +68,7 @@ class MoviePlugin(Plugin):
|
||||
fireEventAsync('library.update', identifier = movie.library.identifier, default_title = default_title, force = True)
|
||||
fireEventAsync('searcher.single', movie.to_dict(deep = {
|
||||
'profile': {'types': {'quality': {}}},
|
||||
'releases': {'status': {}, 'quality': {}},
|
||||
'releases': {'status': {}, 'quality': {}, 'files': {}, 'info': {}},
|
||||
'library': {'titles': {}, 'files':{}},
|
||||
'files': {}
|
||||
}))
|
||||
@@ -119,7 +119,7 @@ class MoviePlugin(Plugin):
|
||||
db.commit()
|
||||
|
||||
movie_dict = m.to_dict(deep = {
|
||||
'releases': {'status': {}, 'quality': {}},
|
||||
'releases': {'status': {}, 'quality': {}, 'files': {}, 'info': {}},
|
||||
'library': {'titles': {}}
|
||||
})
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ var MovieList = new Class({
|
||||
Implements: [Options],
|
||||
|
||||
options: {
|
||||
navigation: true
|
||||
navigation: false
|
||||
},
|
||||
|
||||
movies: [],
|
||||
@@ -23,7 +23,8 @@ var MovieList = new Class({
|
||||
self.el.empty();
|
||||
|
||||
// Create the alphabet nav
|
||||
self.createNavigation();
|
||||
if(self.options.navigation)
|
||||
self.createNavigation();
|
||||
|
||||
Object.each(self.movies, function(info){
|
||||
var m = new Movie(self, {
|
||||
@@ -32,16 +33,18 @@ var MovieList = new Class({
|
||||
$(m).inject(self.el);
|
||||
m.fireEvent('injected');
|
||||
|
||||
var first_char = m.getTitle().substr(0, 1);
|
||||
self.activateLetter(first_char);
|
||||
if(self.options.navigation){
|
||||
var first_char = m.getTitle().substr(0, 1);
|
||||
self.activateLetter(first_char);
|
||||
}
|
||||
});
|
||||
|
||||
self.el.addEvents({
|
||||
'mouseenter:relay(.movie)': function(e, el){
|
||||
el.addClass('hover')
|
||||
el.addClass('hover');
|
||||
},
|
||||
'mouseleave:relay(.movie)': function(e, el){
|
||||
el.removeClass('hover')
|
||||
el.removeClass('hover');
|
||||
}
|
||||
});
|
||||
},
|
||||
@@ -64,13 +67,13 @@ var MovieList = new Class({
|
||||
self.letters[c] = new Element('li', {
|
||||
'text': c,
|
||||
'class': 'letter_'+c
|
||||
}).inject(self.alpha)
|
||||
}).inject(self.alpha);
|
||||
});
|
||||
|
||||
},
|
||||
|
||||
activateLetter: function(letter){
|
||||
this.letters[letter].addClass('active')
|
||||
this.letters[letter].addClass('active');
|
||||
},
|
||||
|
||||
update: function(){
|
||||
@@ -80,7 +83,7 @@ var MovieList = new Class({
|
||||
},
|
||||
|
||||
getMovies: function(){
|
||||
var self = this
|
||||
var self = this;
|
||||
|
||||
Api.request('movie.list', {
|
||||
'data': {
|
||||
@@ -90,7 +93,7 @@ var MovieList = new Class({
|
||||
self.store(json.movies);
|
||||
self.create();
|
||||
}
|
||||
})
|
||||
});
|
||||
},
|
||||
|
||||
store: function(movies){
|
||||
|
||||
@@ -206,6 +206,7 @@ var ReleaseAction = new Class({
|
||||
).inject(self.movie, 'top');
|
||||
|
||||
Array.each(self.movie.data.releases, function(release){
|
||||
p(release);
|
||||
new Element('div', {
|
||||
'text': release.title
|
||||
}).inject(self.release_container)
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
from couchpotato import get_session
|
||||
from couchpotato.core.event import addEvent, fireEvent
|
||||
from couchpotato.core.helpers.encoding import simplifyString
|
||||
from couchpotato.core.helpers.variable import md5
|
||||
from couchpotato.core.logger import CPLog
|
||||
from couchpotato.core.plugins.base import Plugin
|
||||
from couchpotato.core.settings.model import Movie, Release
|
||||
from couchpotato.core.settings.model import Movie, Release, ReleaseInfo
|
||||
from couchpotato.environment import Env
|
||||
import re
|
||||
|
||||
@@ -39,15 +40,20 @@ class Searcher(Plugin):
|
||||
|
||||
def single(self, movie):
|
||||
|
||||
downloaded_status = fireEvent('status.get', 'downloaded', single = True)
|
||||
available_status = fireEvent('status.get', 'available', single = True)
|
||||
snatched_status = fireEvent('status.get', 'snatched', single = True)
|
||||
|
||||
successful = False
|
||||
for type in movie['profile']['types']:
|
||||
print type
|
||||
|
||||
has_better_quality = 0
|
||||
default_title = movie['library']['titles'][0]['title']
|
||||
|
||||
# See if beter quality is available
|
||||
for release in movie['releases']:
|
||||
if release['quality']['order'] <= type['quality']['order']:
|
||||
if release['quality']['order'] <= type['quality']['order'] and release['status_id'] is not available_status.get('id'):
|
||||
has_better_quality += 1
|
||||
|
||||
# Don't search for quality lower then already available.
|
||||
@@ -57,25 +63,51 @@ class Searcher(Plugin):
|
||||
results = fireEvent('provider.yarr.search', movie, type['quality'], merge = True)
|
||||
sorted_results = sorted(results, key = lambda k: k['score'], reverse = True)
|
||||
|
||||
# Add them to this movie releases list
|
||||
for nzb in sorted_results:
|
||||
db = get_session()
|
||||
|
||||
rls = db.query(Release).filter_by(identifier = md5(nzb['url'])).first()
|
||||
if not rls:
|
||||
rls = Release(
|
||||
identifier = md5(nzb['url']),
|
||||
movie_id = movie.get('id'),
|
||||
quality_id = type.get('quality_id'),
|
||||
status_id = available_status.get('id')
|
||||
)
|
||||
db.add(rls)
|
||||
db.commit()
|
||||
|
||||
for info in nzb:
|
||||
rls_info = ReleaseInfo(
|
||||
identifier = info,
|
||||
value = nzb[info]
|
||||
)
|
||||
rls.info.append(rls_info)
|
||||
db.commit()
|
||||
|
||||
|
||||
for nzb in sorted_results:
|
||||
successful = fireEvent('download', data = nzb, movie = movie, single = True)
|
||||
|
||||
if successful:
|
||||
log.info('Downloading of %s successful.' % nzb.get('name'))
|
||||
|
||||
# Add release item, should be updated later when renaming
|
||||
snatched_status = fireEvent('status.get', 'snatched', single = True)
|
||||
# Mark release as snatched
|
||||
db = get_session()
|
||||
rls = Release(
|
||||
identifier = '%s.%s' % (movie['library']['identifier'], type['quality']['identifier']),
|
||||
movie_id = movie.get('id'),
|
||||
quality_id = type.get('quality_id'),
|
||||
status_id = snatched_status.get('id')
|
||||
)
|
||||
db.add(rls)
|
||||
rls = db.query(Release).filter_by(identifier = md5(nzb['url'])).first()
|
||||
rls.status_id = snatched_status.get('id')
|
||||
db.commit()
|
||||
|
||||
# Mark movie snatched if quality is finish-checked
|
||||
if type['finish']:
|
||||
mvie = db.query(Movie).filter_by(id = movie['id']).first()
|
||||
mvie.status_id = snatched_status.get('id')
|
||||
db.commit()
|
||||
|
||||
return True
|
||||
|
||||
return False
|
||||
else:
|
||||
log.info('Better quality (%s) already available or snatched for %s' % (type['quality']['label'], default_title))
|
||||
break
|
||||
|
||||
Reference in New Issue
Block a user