Added Labeling based off of hash for utorrent and fixed a typo in postprocessor.py

This commit is contained in:
delphiactual
2014-05-01 21:58:05 -06:00
parent 0be9500518
commit 5c381b9410
2 changed files with 23 additions and 29 deletions

View File

@@ -352,7 +352,7 @@ def doPostProcessing(albumid, albumpath, release, tracks, downloaded_track_list,
headphones.MOVE_FILES:
if not os.access(downloaded_track, os.W_OK):
logger.error("Track file is not writeable, which is equired for some post processing steps: %s", downloaded_track.decode(headphones.SYS_ENCODING, 'replace'))
logger.error("Track file is not writeable, which is required for some post processing steps: %s", downloaded_track.decode(headphones.SYS_ENCODING, 'replace'))
return
#start encoding

View File

@@ -69,36 +69,30 @@ def addTorrent(link):
logger.error("Error sending torrent to uTorrent")
return
# Not really sure how to ID these? Title seems safest)
# Also, not sure when the torrent will pop up in the list, so we'll make sure it exists and is 1% downloaded
tries = 0
folder = None
while tries < 10:
if link.startswith('magnet'):
tor_hash = re.findall('urn:btih:([\w]{32,40})', link)[0]
if len(tor_hash) == 32:
tor_hash = b16encode(b32decode(tor_hash)).lower()
else:
info = bdecode(link.content)["info"]
tor_hash = sha1(bencode(info)).hexdigest()
params = {'action':'setprops', 'hash':tor_hash,'s':'label', 'v':label, 'token':token}
response = request.request_json(host, params=params, auth=auth, cookies=cookies)
if not response:
logger.error("Error setting torrent label in uTorrent")
return
# NOW WE WILL CHECK UTORRENT FOR THE FOLDER NAME & SET THE LABEL
params = {'list':'1', 'token':token}
# folder info can probably be cleaned up with getprops
folder = None
response = request.request_json(host, params=params, auth=auth, cookies=cookies)
if not response:
logger.error("Error getting torrent information from uTorrent")
return
params = {'list':'1', 'token':token}
response = request.request_json(host, params=params, auth=auth, cookies=cookies)
if not response:
logger.error("Error getting torrent information from uTorrent")
return
for torrent in response['torrents']:
folder = os.path.basename(torrent[26])
if torrent[19] == link and torrent[4] > 1:
folder = os.path.basename(torrent[26])
tor_hash = torrent[0]
params = {'action':'setprops', 'hash':tor_hash,'s':'label', 'v':label, 'token':token}
response = request.request_json(host, params=params, auth=auth, cookies=cookies)
break
if folder:
break
else:
time.sleep(5)
tries += 1
return folder
return folder