diff options
Diffstat (limited to 'module/plugins/hooks/TransmissionRPC.py')
-rw-r--r-- | module/plugins/hooks/TransmissionRPC.py | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/module/plugins/hooks/TransmissionRPC.py b/module/plugins/hooks/TransmissionRPC.py index 3d10b90c4..9a9ee04b7 100644 --- a/module/plugins/hooks/TransmissionRPC.py +++ b/module/plugins/hooks/TransmissionRPC.py @@ -1,7 +1,8 @@ # -*- coding: utf-8 -*- -import re import random +import re + import pycurl from module.common.json_layer import json_loads, json_dumps @@ -9,17 +10,19 @@ from module.network.HTTPRequest import BadHeader from module.network.RequestFactory import getRequest as get_request from module.plugins.internal.Addon import Addon + class TransmissionRPC(Addon): - __name__ = "TransmissionRPC" - __type__ = "hook" + __name__ = "TransmissionRPC" + __type__ = "hook" + __version__ = "0.11" __status__ = "testing" __pattern__ = r"https?://.+\.torrent|magnet:\?.+" - __config__ = [("transmissionrpcurl" , "string" , "Transmission RPC URL" , "http://127.0.0.1:9091/transmission/rpc")] + __config__ = [("rpc_url", "str", "Transmission RPC URL", "http://127.0.0.1:9091/transmission/rpc")] - __version__ = "0.1" __description__ = """Send torrent and magnet URLs to Transmission Bittorent daemon via RPC""" - __authors__ = [("GammaC0de", None)] + __license__ = "GPLv3" + __authors__ = [("GammaC0de", None)] def init(self): @@ -27,16 +30,17 @@ class TransmissionRPC(Addon): def links_added(self, links, pid): - for link in links: - m = re.search(self.__pattern__, link) - if m: - self.log_debug("sending link: %s" % link) - self.SendToTransmission(link) - links.remove(link) + pattern = re.compile(self.__pattern__) + urls = [link for link in links if pattern.match(link)] + + for url in urls: + self.log_debug("Sending link: %s" % url) + self.SendToTransmission(url) + links.remove(url) def SendToTransmission(self, url): - transmission_rpc_url = self.get_config('transmissionrpcurl') + transmission_rpc_url = self.get_config('rpc_url') client_request_id = self.__name__ + "".join(random.choice('0123456789ABCDEF') for _i in xrange(4)) req = get_request() @@ -67,7 +71,7 @@ class TransmissionRPC(Addon): try: res = json_loads(response) if "result" in res: - self.log_debug("result: %s" % res['result']) + self.log_debug("Result: %s" % res['result']) except Exception, e: self.log_error(e) |