Wait before marking media as done
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
from datetime import date
|
||||
from datetime import date, timedelta
|
||||
from operator import itemgetter
|
||||
import random
|
||||
import re
|
||||
import time
|
||||
@@ -139,6 +140,27 @@ class MovieSearcher(SearcherBase, MovieTypeBase):
|
||||
fireEvent('media.delete', movie['_id'], single = True)
|
||||
return
|
||||
|
||||
db = get_db()
|
||||
profile = db.get('id', movie['profile_id'])
|
||||
|
||||
# Find out if we need to stop searching because 'stop_after' is met. Compare with the newest release found.
|
||||
done_releases = [release for release in previous_releases if release.get('status') == 'done']
|
||||
|
||||
if done_releases:
|
||||
done_release = sorted(done_releases, key = itemgetter('last_edit'), reverse = True)[0]
|
||||
if fireEvent('quality.isfinish', {'identifier': done_release['quality'], 'is_3d': done_release.get('is_3d', False)}, profile, timedelta(seconds = time.time() - done_release['last_edit']).days, single = True):
|
||||
|
||||
log.debug('No better quality than %s%s found for %s days, marking movie %s as done.', \
|
||||
(done_release['quality'], ' 3D' if done_release.get('is_3d', False) else '', profile['stop_after'][0], default_title))
|
||||
|
||||
# Mark media done
|
||||
mdia = db.get('id', movie['_id'])
|
||||
mdia['status'] = 'done'
|
||||
mdia['last_edit'] = int(time.time())
|
||||
db.update(mdia)
|
||||
|
||||
return
|
||||
|
||||
fireEvent('notify.frontend', type = 'movie.searcher.started', data = {'_id': movie['_id']}, message = 'Searching for "%s"' % default_title)
|
||||
|
||||
# Ignore eta once every 7 days
|
||||
@@ -149,13 +171,9 @@ class MovieSearcher(SearcherBase, MovieTypeBase):
|
||||
ignore_eta = True
|
||||
Env.prop(prop_name, value = time.time())
|
||||
|
||||
db = get_db()
|
||||
|
||||
profile = db.get('id', movie['profile_id'])
|
||||
ret = False
|
||||
|
||||
index = 0
|
||||
for q_identifier in profile.get('qualities'):
|
||||
for index, q_identifier in enumerate(profile.get('qualities', [])):
|
||||
quality_custom = {
|
||||
'index': index,
|
||||
'quality': q_identifier,
|
||||
@@ -164,8 +182,6 @@ class MovieSearcher(SearcherBase, MovieTypeBase):
|
||||
'3d': profile['3d'][index] if profile.get('3d') else False
|
||||
}
|
||||
|
||||
index += 1
|
||||
|
||||
could_not_be_released = not self.couldBeReleased(q_identifier in pre_releases, release_dates, movie['info']['year'])
|
||||
if not alway_search and could_not_be_released:
|
||||
too_early_to_search.append(q_identifier)
|
||||
|
||||
Reference in New Issue
Block a user