From cb661f2595f7d593377f11e574a857618bfb4d6a Mon Sep 17 00:00:00 2001 From: John Garland Date: Sun, 16 Sep 2012 17:09:23 +1000 Subject: [PATCH 1/4] Update google.ico so tracker_icons tests pass again --- tests/google.ico | Bin 1150 -> 5430 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/tests/google.ico b/tests/google.ico index ee7c943abf1064e3110161deb3a6477fcc7789b5..f594697d2f9edeb4e5b921d406a0b4b60512bfae 100644 GIT binary patch literal 5430 zcmZQzU}Ruo5D);-3Je)63=C=v3=9ei5dI1Q28KQs1_liV1_l9;I0HnS0R&hW7=*YX z7{mqPFRe~qUs|1>e`$64Pa=K-)%%P@eaQA;*!#8D@Bgn8tN;Id|NQ^or`P}gzOwiK z@AF&#e_xn~tPdyq_l-mU|Gs(n|Lc@UgqjYw|9@^D|NngvVKe@|d;0(9?r8|U&~W*= zYs&xMmv>=^qx=2mzS;l(+&lCCONTpL?bk`+U^o3fzXdLat`C|2ePz}EUnf@m|G8({ z|DT5z{Qvjm-T%LDAOHV4DU2xnaI@Oo{{Q>-@&BJkm;Zn54i^%@_CxqM>_l-x zo6CPtdI6=QKMybb|Nrmr|6ixq|Np+c9Ge-G4ag3VT_8I_c58fT zb$U++d(p!jWGBdOkXz8@=*0)w{c!;N4)fnpE^&MjM-``+6zjU}^H6K)_{&{fz|G%&A|9_jAh*b@- z;SEy7|A*dE+2R<59#)9kz)pf+i?cZlNKwAEP zo0UYd8-8Cu2sR7UcEIOOWVwGIo`d!L*wjI>{ohyDg3bE>_s{>YlOqV4_hWMxME(E& zD0LmO`$%Q~Idx>=m$ZSx!{`>j$Kgc~l z*3^U3I4He+?GFOyf3Uq!0+ct2HJfO4ZO;F}?VsJ#z-^a5w~m3^Ur;Nd)W82f56-8W zzX`eR&z%!cd;kCc_w(ETAM2awW;duU4YT~;m$y{OZ-o4dEdO;%6wLbnzm6@Zi@(1w z%>DoS;*S4+U*7%y_r+~+8xG_MP@e=>xs2>)O4y(_Kgcc+{`>0Q|L@Dn{(tQY`2THg zI=Eg0rG>BEJ~RmjP~QV&F9?I`UyOc3yBj1-o?QL^rPGt@ZuoQm9LQ=g{;{zgtNFhU zF9OTcBLBha;D0~9qV(aAkiS88GBkjOAz_07bf!Ue0{}sbW1|27 literal 1150 zcmZQzU}Ruq5D);-3Je)63=Con3=A3!3=9Gc3=9ek5OD@P;LVrc|7(uE{_nr-{eRbu zAOHJqd;fp(xo`i!{r>s?-ouOkJu77Xn^ZCUx36LP?@+_=-=>=3zhf1{e~^*?{`~$Q zzy1Dyp5<@;i*5YyUv$&Q|I(Yk{Fhtx@qf*ccmMzY|M!3Usg?f?%b5RLH#7dXZ({y$ zSIh9X&jzhxW4f5%p)|2Az5{~a2b{@YeF{QvU%$A9x>XZ|y6dHU*Ry*Awb|L@H8zilVef4f$O z|8|WG|1a!b_W$p@*I<8M{qXDmhPyBRPdk6_|Etg6|AWBqKfnIxF7y1a)yw$bVlu;j z>j@11ExVci+jKDew`pbg-{-0He{P(`|4nsa{|`*a`~U9N`Tzg^|NZ~>|G)pQKfV5+ zy~6FkZZG41n`sRHtwH)HGyJ#hXZUa1#qi&@h2j6ANcI0qLS_EX^WykF!$a`@#~1g( zetz=i;s3x{YX5boF#NZi&h+1UI@5oPDGdLuCo%oE?PvUN+s*XfqLbnOiZIdtbNmJV zFUxoOzi&|s*uTI3|NnpT*8czU>HG}!T`809c(wP1qiDLSH zt}pyQC>%g>7!Z8-KMTW`{|t=(|1&fE{m;Po`9A~0)Bns&w?NYWfB*jde_M{q{}ag! z|Ieo}{684U@c+{KW>C@xr#&~f2mcuve*R}*{_~%a@#lYLh7bQ47+?QqV7UMP|L;Fw zf9_}w_`frp;s2RrrvH1A`2K%-b_X06SFe2g&&BinKLf+x|ICd4{xdLw?Em(kh2hPA z2Brt#Jox|5@Bfc(pZUKmUg7^jAC~_Y*R=ir^Z)Pv_aA@$x3WJB_9qk5FR&R*VE2Ff S&%p2wtha#?l#9v3AiV%6LWsHm From 18eb885983b7f094ca4a2c0e95547a06f61ba7f0 Mon Sep 17 00:00:00 2001 From: John Garland Date: Sun, 16 Sep 2012 17:12:16 +1000 Subject: [PATCH 2/4] Don't use deprecated twisted imports (fixes #2164) Aliases have been removed in twisted 12.2.0. --- deluge/ui/tracker_icons.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/deluge/ui/tracker_icons.py b/deluge/ui/tracker_icons.py index 91a02e46e..a9d55283a 100644 --- a/deluge/ui/tracker_icons.py +++ b/deluge/ui/tracker_icons.py @@ -39,7 +39,12 @@ from urlparse import urljoin, urlparse from tempfile import mkstemp from twisted.internet import defer, threads -from twisted.web import error +from twisted.web.error import PageRedirect +try: + from twisted.web.resource import NoResource, ForbiddenResource +except ImportError: + # twisted 8 + from twisted.web.error import NoResource, ForbiddenResource from deluge.component import Component from deluge.configmanager import get_config_dir @@ -235,7 +240,7 @@ class TrackerIcons(Component): error_msg = f.getErrorMessage() log.debug("Error downloading page: %s", error_msg) d = f - if f.check(error.PageRedirect): + if f.check(PageRedirect): # Handle redirect errors location = urljoin(self.host_to_url(host), error_msg.split(" to ")[1]) self.redirects[host] = url_to_host(location) @@ -375,14 +380,14 @@ class TrackerIcons(Component): error_msg = f.getErrorMessage() log.debug("Error downloading icon: %s", error_msg) d = f - if f.check(error.PageRedirect): + if f.check(PageRedirect): # Handle redirect errors location = urljoin(self.host_to_url(host), error_msg.split(" to ")[1]) d = self.download_icon([(location, extension_to_mimetype(location.rpartition('.')[2]))] + icons, host) if not icons: d.addCallbacks(self.on_download_icon_complete, self.on_download_icon_fail, callbackArgs=(host,), errbackArgs=(host,)) - elif f.check(error.NoResource, error.ForbiddenResource) and icons: + elif f.check(NoResource, ForbiddenResource) and icons: d = self.download_icon(icons, host) elif f.check(NoIconsError, HTMLParseError): # No icons, try favicon.ico as an act of desperation From 17cac01673d479ecb4f4dbbc16a5c82bc19907e9 Mon Sep 17 00:00:00 2001 From: John Garland Date: Sun, 16 Sep 2012 18:36:58 +1000 Subject: [PATCH 3/4] Fix deluge-gtk not working with twisted 12 (fixes #2148) --- deluge/ui/gtkui/gtkui.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/deluge/ui/gtkui/gtkui.py b/deluge/ui/gtkui/gtkui.py index 08bcfd4cc..dea68fdfe 100644 --- a/deluge/ui/gtkui/gtkui.py +++ b/deluge/ui/gtkui/gtkui.py @@ -373,7 +373,11 @@ Please see the details below for more information."), details=traceback.format_e if self.config["show_connection_manager_on_start"]: # XXX: We need to call a simulate() here, but this could be a bug in twisted - reactor.simulate() + try: + reactor._simulate() + except AttributeError: + # twisted < 12 + reactor.simulate() self.connectionmanager.show() From 68990b4a3f4d033b622fd4e27942f829bfcd03b1 Mon Sep 17 00:00:00 2001 From: John Garland Date: Sun, 16 Sep 2012 18:40:53 +1000 Subject: [PATCH 4/4] Fix execute plugin not working with unicode torrent names --- deluge/plugins/execute/execute/core.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/deluge/plugins/execute/execute/core.py b/deluge/plugins/execute/execute/core.py index a1df19ea5..9d95f74f9 100644 --- a/deluge/plugins/execute/execute/core.py +++ b/deluge/plugins/execute/execute/core.py @@ -108,6 +108,14 @@ class Core(CorePluginBase): else: save_path = info["save_path"] + # getProcessOutputAndValue requires args to be str + if isinstance(torrent_name, unicode): + torrent_id = torrent_id.encode("utf-8", "ignore") + if isinstance(torrent_name, unicode): + torrent_name = torrent_name.encode("utf-8", "ignore") + if isinstance(save_path, unicode): + save_path = save_path.encode("utf-8", "ignore") + log.debug("[execute] Running commands for %s", event) def log_error(result, command):