Merge lp:~ken-vandine/gwibber-service-sohu/0_9 into lp:gwibber-service-sohu

Proposed by Ken VanDine
Status: Needs review
Proposed branch: lp:~ken-vandine/gwibber-service-sohu/0_9
Merge into: lp:gwibber-service-sohu
Diff against target: 235 lines (+47/-36)
3 files modified
__init__.py (+10/-7)
gtk/sohu/__init__.py (+33/-25)
setup.py (+4/-4)
To merge this branch: bzr merge lp:~ken-vandine/gwibber-service-sohu/0_9
Reviewer Review Type Date Requested Status
An Yang Approve
Review via email: mp+102890@code.launchpad.net

Description of the change

version bump to 0.9
Ported to gtk3 (LP: #959613)
Updated to use the new logger module from gwibber 3.3.90 (LP: #947559)
install icons in the gwibber hicolor theme dir
remove import of gnomekeyring (LP: #959757)
Don't crash on unicode characters in a username

To post a comment you must log in.
Revision history for this message
Ken VanDine (ken-vandine) wrote :

Most of this was approved in a previous merge proposal but was never actually merged into trunk

Revision history for this message
An Yang (euroford) :
review: Approve

Unmerged revisions

18. By Ken VanDine

version bump to 0.9.0

17. By Ken VanDine

Ported to gtk3 (LP: #959613)
Updated to use the new logger module from gwibber 3.3.90 (LP: #947559)
install icons in the gwibber hicolor theme dir
remove import of gnomekeyring (LP: #959757)
Don't crash on unicode characters in a username

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file '__init__.py'
2--- __init__.py 2011-04-29 10:54:30 +0000
3+++ __init__.py 2012-04-20 15:56:31 +0000
4@@ -1,12 +1,15 @@
5 from gwibber.microblog import network, util
6 from htmlentitydefs import name2codepoint
7 import re
8-import gnomekeyring
9 from oauth import oauth
10-from gwibber.microblog.util import log, resources
11+from gwibber.microblog.util import resources
12+
13 from gettext import lgettext as _
14 import sohu.utils
15-log.logger.name = "Sohu"
16+
17+import logging
18+logger = logging.getLogger("Sohu")
19+logger.debug("Initializing.")
20
21 PROTOCOL_INFO = {
22 "name": "Sohu",
23@@ -107,7 +110,7 @@
24 m["images"] = images
25 m["type"] = "photo"
26 except:
27- log.logger.error("%s failure - %s", PROTOCOL_INFO["name"], data)
28+ logger.error("%s failure - %s", PROTOCOL_INFO["name"], data)
29 return {}
30
31 return m
32@@ -219,7 +222,7 @@
33 if isinstance(data, dict) and data.get("errors", 0):
34 if "authenticate" in data["errors"][0]["message"]:
35 logstr = """%s: %s - %s""" % (PROTOCOL_INFO["name"], _("Authentication failed"), error["message"])
36- log.logger.error("%s", logstr)
37+ logger.error("%s", logstr)
38 return [{"error": {"type": "auth", "account": self.account, "message": data["errors"][0]["message"]}}]
39 else:
40 for error in data["errors"]:
41@@ -228,11 +231,11 @@
42 elif isinstance(data, dict) and data.get("error", 0):
43 if "Incorrect signature" in data["error"]:
44 logstr = """%s: %s - %s""" % (PROTOCOL_INFO["name"], _("Request failed"), data["error"])
45- log.logger.error("%s", logstr)
46+ logger.error("%s", logstr)
47 return [{"error": {"type": "auth", "account": self.account, "message": data["error"]}}]
48 elif isinstance(data, str):
49 logstr = """%s: %s - %s""" % (PROTOCOL_INFO["name"], _("Request failed"), data)
50- log.logger.error("%s", logstr)
51+ logger.error("%s", logstr)
52 return [{"error": {"type": "request", "account": self.account, "message": data}}]
53
54 if parse == "list":
55
56=== modified file 'gtk/sohu/__init__.py'
57--- gtk/sohu/__init__.py 2011-04-15 06:31:07 +0000
58+++ gtk/sohu/__init__.py 2012-04-20 15:56:31 +0000
59@@ -1,8 +1,9 @@
60-import gtk, pango, webkit, gnomekeyring
61+from gi.repository import Gdk, Gtk, WebKit, Pango
62+from gi.repository.Gtk import Builder
63+
64 import urllib, urllib2, json, urlparse, uuid
65 from oauth import oauth
66
67-from gtk import Builder
68 from gwibber.microblog.util import resources
69 import gettext
70 from gettext import gettext as _
71@@ -11,33 +12,33 @@
72 gettext.textdomain('gwibber-service-sohu')
73 import sohu.utils
74
75-gtk.gdk.threads_init()
76+Gdk.threads_init()
77
78 sigmeth = oauth.OAuthSignatureMethod_HMAC_SHA1()
79
80-class AccountWidget(gtk.VBox):
81+class AccountWidget(Gtk.VBox):
82 """AccountWidget: A widget that provides a user interface for configuring sohu accounts in Gwibber
83 """
84
85 def __init__(self, account=None, dialog=None):
86 """Creates the account pane for configuring Sohu accounts"""
87- gtk.VBox.__init__( self, False, 20 )
88- self.ui = gtk.Builder()
89+ Gtk.VBox.__init__( self, False, 20 )
90+ self.ui = Gtk.Builder()
91 self.ui.set_translation_domain ("gwibber")
92 self.ui.add_from_file (resources.get_ui_asset("gwibber-accounts-sohu.ui"))
93 self.ui.connect_signals(self)
94 self.vbox_settings = self.ui.get_object("vbox_settings")
95- self.pack_start(self.vbox_settings, False, False)
96+ self.pack_start(self.vbox_settings, False, False, 0)
97 self.show_all()
98
99 self.account = account or {}
100 self.dialog = dialog
101- has_secret_key = True
102+ self.window = dialog.dialog
103+ has_access_token = False
104+
105+ has_secret_key = False
106 if self.account.has_key("id"):
107- try:
108- value = gnomekeyring.find_items_sync(gnomekeyring.ITEM_GENERIC_SECRET, {"id": str("%s/%s" % (self.account["id"], "secret_token"))})[0].secret
109- except gnomekeyring.NoMatchError:
110- has_secret_key = False
111+ has_secret_key = get_from_keyring(self.account['id'], 'secret_token') is not None
112
113 try:
114 if self.account.has_key("access_token") and self.account.has_key("secret_token") and self.account.has_key("username") and has_secret_key and not self.dialog.condition:
115@@ -57,8 +58,9 @@
116 def on_sohu_auth_clicked(self, widget, data=None):
117 self.winsize = self.window.get_size()
118
119- web = webkit.WebView()
120+ web = WebKit.WebView()
121 web.get_settings().set_property("enable-plugins", False)
122+ web.get_settings().set_property("enable-developer-extras", False)
123 web.load_html_string(_("<p>Please wait...</p>"), "file:///")
124
125 self.consumer = oauth.OAuthConsumer(*sohu.utils.get_sohu_keys())
126@@ -79,15 +81,17 @@
127 web.set_size_request(550, 400)
128 web.connect("title-changed", self.on_sohu_auth_title_change)
129
130- self.scroll = gtk.ScrolledWindow()
131+ self.scroll = Gtk.ScrolledWindow()
132 self.scroll.add(web)
133+ self.scroll.set_size_request(550, 400)
134
135 self.pack_start(self.scroll, True, True, 0)
136 self.show_all()
137+ self.dialog.infobar.hide()
138
139 self.ui.get_object("vbox1").hide()
140 self.ui.get_object("vbox_advanced").hide()
141- self.dialog.infobar.set_message_type(gtk.MESSAGE_INFO)
142+ self.dialog.infobar.set_message_type(Gtk.MessageType.INFO)
143
144 def on_sohu_auth_title_change(self, web=None, title=None, data=None):
145 saved = False
146@@ -99,12 +103,12 @@
147 self.dialog.infobar_content_area.show()
148 self.dialog.infobar.show()
149
150- message_label = gtk.Label(_("Verifying"))
151+ message_label = Gtk.Label(_("Verifying"))
152 message_label.set_use_markup(True)
153- message_label.set_ellipsize(pango.ELLIPSIZE_END)
154+ message_label.set_ellipsize(Pango.EllipsizeMode.END)
155 self.dialog.infobar_content_area.add(message_label)
156 self.dialog.infobar.show_all()
157- self.scroll.hide()
158+ self.scroll.destroy()
159 url = web.get_main_frame().get_uri()
160 data = urlparse.parse_qs(url.split("?", 1)[1])
161
162@@ -137,7 +141,7 @@
163
164 account_data = json.loads(urllib2.urlopen(apireq.to_url()).read())
165
166- self.account["username"] = account_data["screen_name"]
167+ self.account["username"] = account_data["screen_name"].encode("utf-8")
168 self.account["user_id"] = account_data["id"]
169
170 if isinstance(account_data, dict):
171@@ -145,16 +149,16 @@
172 saved = self.dialog.on_edit_account_save()
173 else:
174 print "Failed"
175- self.dialog.infobar.set_message_type(gtk.MESSAGE_ERROR)
176+ self.dialog.infobar.set_message_type(Gtk.MessageType.ERROR)
177 message_label.set_text(_("Authorization failed. Please try again."))
178 else:
179 print "Failed"
180- self.dialog.infobar.set_message_type(gtk.MESSAGE_ERROR)
181+ self.dialog.infobar.set_message_type(Gtk.MessageType.ERROR)
182 message_label.set_text(_("Authorization failed. Please try again."))
183
184 if saved:
185 message_label.set_text(_("Successful"))
186- self.dialog.infobar.set_message_type(gtk.MESSAGE_INFO)
187+ self.dialog.infobar.set_message_type(Gtk.MessageType.INFO)
188 #self.dialog.infobar.hide()
189
190 self.ui.get_object("hbox_sohu_auth").hide()
191@@ -168,11 +172,15 @@
192 self.window.resize(*self.winsize)
193
194 if title.get_title() == "Failure":
195- web.hide()
196- self.dialog.infobar.set_message_type(gtk.MESSAGE_ERROR)
197- message_label.set_text(_("Authorization failed. Please try again."))
198+ self.dialog.infobar.set_message_type(Gtk.MessageType.ERROR)
199+ message_label = Gtk.Label (_("Authorization failed. Please try again."))
200+ message_label.set_use_markup(True)
201+ message_label.set_ellipsize(Pango.EllipsizeMode.END)
202+ self.dialog.infobar_content_area.add(message_label)
203 self.dialog.infobar.show_all()
204
205 self.ui.get_object("vbox1").show()
206 self.ui.get_object("vbox_advanced").show()
207+ self.scroll.destroy()
208 self.window.resize(*self.winsize)
209+ self.dialog.select_account ()
210
211=== modified file 'setup.py'
212--- setup.py 2011-06-06 19:00:34 +0000
213+++ setup.py 2012-04-20 15:56:31 +0000
214@@ -6,7 +6,7 @@
215 from glob import glob
216
217 setup(name="gwibber-service-sohu",
218- version="0.8.1",
219+ version="0.9.0",
220 author="An Yang",
221 author_email="an.euroford@gmail.com",
222 url="http://launchpad.net/gwibber-service-sohu/",
223@@ -16,9 +16,9 @@
224 ('share/gwibber/plugins/sohu/gtk', glob("gtk/*.*")),
225 ('share/gwibber/plugins/sohu/gtk/sohu', glob("gtk/sohu/*.*")),
226 ('share/gwibber/plugins/sohu/ui', glob("ui/*.*")),
227- ('share/gwibber/plugins/sohu/ui/icons/16x16', glob("ui/icons/16x16/*.*")),
228- ('share/gwibber/plugins/sohu/ui/icons/22x22', glob("ui/icons/22x22/*.*")),
229- ('share/gwibber/plugins/sohu/ui/icons/scalable', glob("ui/icons/scalable/*.*")),
230+ ('share/gwibber/ui/icons/hicolor/16x16/apps', glob("ui/icons/16x16/*.*")),
231+ ('share/gwibber/ui/icons/hicolor/22x22/apps', glob("ui/icons/22x22/*.*")),
232+ ('share/gwibber/ui/icons/hicolor/scalable/apps', glob("ui/icons/scalable/*.*")),
233 ('share/gwibber/plugins/sohu/data', glob("data/*.*")),
234 ],
235 cmdclass = { "build" : build_extra.build_extra,

Subscribers

People subscribed via source and target branches

to all changes: