Browse Source

Support for the NZB meta field "x-rating-host".

tags/0.7.20RC1
shypike 11 years ago
parent
commit
ca4db6b428
  1. 2
      sabnzbd/interface.py
  2. 2
      sabnzbd/nzbstuff.py
  3. 11
      sabnzbd/rating.py

2
sabnzbd/interface.py

@ -1212,7 +1212,7 @@ SWITCH_LIST = \
'ssl_type', 'pre_script', 'pause_on_pwrar', 'ampm', 'sfv_check', 'folder_rename',
'unpack_check', 'quota_size', 'quota_day', 'quota_resume', 'quota_period',
'pre_check', 'max_art_tries', 'max_art_opt', 'fail_hopeless',
'rating_enable', 'rating_api_key', 'rating_host', 'rating_feedback', 'rating_filter_enable',
'rating_enable', 'rating_api_key', 'rating_feedback', 'rating_filter_enable',
'rating_filter_abort_audio', 'rating_filter_abort_video', 'rating_filter_abort_encrypted',
'rating_filter_abort_encrypted_confirm', 'rating_filter_abort_spam', 'rating_filter_abort_spam_confirm',
'rating_filter_abort_downvoted', 'rating_filter_abort_keywords',

2
sabnzbd/nzbstuff.py

@ -1319,7 +1319,7 @@ class NzbObject(TryList):
fields = {}
for k in rating_types:
fields[k] = _get_first_meta(k)
Rating.do.add_rating(_get_first_meta('id'), self.nzo_id, fields)
Rating.do.add_rating(_get_first_meta('id'), self.nzo_id, self.meta.get('x-rating-host'), fields)
except:
pass

11
sabnzbd/rating.py

@ -149,7 +149,7 @@ class Rating(Thread):
# The same file may be uploaded multiple times creating a new nzo_id each time
@synchronized(RATING_LOCK)
def add_rating(self, indexer_id, nzo_id, fields):
def add_rating(self, indexer_id, nzo_id, host, fields):
if indexer_id and nzo_id and (len(fields) == 10):
logging.debug('Add rating (%s, %s: %s, %s, %s, %s)', indexer_id, nzo_id, fields['video'], fields['audio'], fields['voteup'], fields['votedown'])
try:
@ -166,6 +166,7 @@ class Rating(Thread):
if fields['confirmed-spam']: rating.avg_spam_confirm = (fields['confirmed-spam'].lower() == 'yes')
if fields['passworded']: rating.avg_encrypted_cnt = int(float(fields['passworded']))
if fields['confirmed-passworded']: rating.avg_encrypted_confirm = (fields['confirmed-passworded'].lower() == 'yes')
rating.host = host[0] if host and isinstance(host, list) else host
self.ratings[indexer_id] = rating
self.nzo_indexer_map[nzo_id] = indexer_id
except:
@ -238,12 +239,16 @@ class Rating(Thread):
api_key = cfg.rating_api_key()
rating_host = cfg.rating_host()
if not api_key or not rating_host:
return False
if not api_key:
return True
requests = []
_headers = {'User-agent' : 'SABnzbd+/%s' % sabnzbd.version.__version__, 'Content-type': 'application/x-www-form-urlencoded'}
rating = self._get_rating_by_indexer(indexer_id) # Requesting info here ensures always have latest information even on retry
if hasattr(rating, 'host') and rating.host:
rating_host = rating.host
if not rating_host:
return True
if rating.changed & Rating.CHANGED_USER_VIDEO:
requests.append({'m': 'r', 'r': 'videoQuality', 'rn': rating.user_video})
if rating.changed & Rating.CHANGED_USER_AUDIO:

Loading…
Cancel
Save