From 0c3ebfbbb39f58f37ec371194f784af3a9944045 Mon Sep 17 00:00:00 2001 From: Noam Date: Thu, 4 Feb 2016 14:05:12 +0200 Subject: [PATCH] Exception handling for torrent name regular expression Fall back to the torrent file's name in case reular expression extraction method from the torrent file doesn't work. --- headphones/deluge.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/headphones/deluge.py b/headphones/deluge.py index 06e95db5..b81397f2 100644 --- a/headphones/deluge.py +++ b/headphones/deluge.py @@ -74,8 +74,15 @@ def add_torrent(link, data=None): with open(link, 'rb') as f: metainfo = str(base64.b64encode(f.read())) # Extract torrent name from .torrent - name_length = int( re.findall( 'name([0-9]*)\:.*?\:', base64.b64encode(metainfo) )[0] ) - name = re.findall('name[0-9]*\:(.*?)\:', base64.b64encode(metainfo) )[0][:size] + try: + name_length = int( re.findall( 'name([0-9]*)\:.*?\:', base64.b64encode(metainfo) )[0] ) + name = re.findall('name[0-9]*\:(.*?)\:', base64.b64encode(metainfo) )[0][:size] + except: + # get last part of link/path (name only) + name = link.split('\\')[-1].split('/')[-1] + # remove '.torrent' suffix + if name[-len('.torrent'):] == '.torrent': + name = name[:-len('.torrent')] result = { 'type' : 'torrent', 'name' : name,