[gwibber] improve scrolling, increase notification bubble timeout, fixes for twitter 1.1, fix soup URI parsing

Tom Callaway spot at fedoraproject.org
Mon Dec 30 18:46:56 UTC 2013


commit aeabcfd3c1375810fdb7765c56ae9535ac53a073
Author: Tom Callaway <spot at fedoraproject.org>
Date:   Mon Dec 30 13:46:54 2013 -0500

    improve scrolling, increase notification bubble timeout, fixes for twitter 1.1, fix soup URI parsing, drop identica

 gwibber-3.4.2-no-identica.patch           |   56 +++++++++++++++++++++++++++++
 gwibber-3.4.2-notification-timeout.patch  |   21 +++++++++++
 gwibber-3.4.2-scroll-events.patch         |   42 +++++++++++++++++++++
 gwibber-3.4.2-soup-uri-fragment.patch     |   11 ++++++
 gwibber-3.4.2-twitter-1.1-api-fix-2.patch |   45 +++++++++++++++++++++++
 gwibber.spec                              |   36 ++++++++++++++++++-
 6 files changed, 210 insertions(+), 1 deletions(-)
---
diff --git a/gwibber-3.4.2-no-identica.patch b/gwibber-3.4.2-no-identica.patch
new file mode 100644
index 0000000..5a41cd4
--- /dev/null
+++ b/gwibber-3.4.2-no-identica.patch
@@ -0,0 +1,56 @@
+diff -up gwibber-3.4.2/configure.ac.noidentica gwibber-3.4.2/configure.ac
+--- gwibber-3.4.2/configure.ac.noidentica	2013-12-30 13:30:58.440776555 -0500
++++ gwibber-3.4.2/configure.ac	2013-12-30 13:31:03.224770318 -0500
+@@ -277,10 +277,6 @@ AC_CONFIG_FILES([
+   gwibber/microblog/plugins/friendfeed/gtk/Makefile
+   gwibber/microblog/plugins/friendfeed/gtk/friendfeed/Makefile
+   gwibber/microblog/plugins/friendfeed/ui/Makefile
+-  gwibber/microblog/plugins/identica/Makefile
+-  gwibber/microblog/plugins/identica/gtk/Makefile
+-  gwibber/microblog/plugins/identica/gtk/identica/Makefile
+-  gwibber/microblog/plugins/identica/ui/Makefile
+   gwibber/microblog/plugins/pingfm/Makefile
+   gwibber/microblog/plugins/pingfm/gtk/Makefile
+   gwibber/microblog/plugins/pingfm/gtk/pingfm/Makefile
+diff -up gwibber-3.4.2/data/icons/hicolor/16x16/apps/Makefile.am.noidentica gwibber-3.4.2/data/icons/hicolor/16x16/apps/Makefile.am
+--- gwibber-3.4.2/data/icons/hicolor/16x16/apps/Makefile.am.noidentica	2013-12-30 13:31:42.901717738 -0500
++++ gwibber-3.4.2/data/icons/hicolor/16x16/apps/Makefile.am	2013-12-30 13:31:48.188710597 -0500
+@@ -4,7 +4,6 @@ icon_DATA = 	brightkite.png	\
+ 		facebook.png	\
+ 		flickr.png	\
+ 		friendfeed.png	\
+-		identica.png	\
+ 		jaiku.png	\
+ 		openid.png	\
+ 		pingfm.png	\
+diff -up gwibber-3.4.2/data/icons/hicolor/22x22/apps/Makefile.am.noidentica gwibber-3.4.2/data/icons/hicolor/22x22/apps/Makefile.am
+--- gwibber-3.4.2/data/icons/hicolor/22x22/apps/Makefile.am.noidentica	2013-12-30 13:31:26.080739846 -0500
++++ gwibber-3.4.2/data/icons/hicolor/22x22/apps/Makefile.am	2013-12-30 13:31:32.909730896 -0500
+@@ -4,7 +4,6 @@ icon_DATA = 	brightkite.png	\
+ 		facebook.png	\
+ 		flickr.png	\
+ 		friendfeed.png	\
+-		identica.png	\
+ 		jaiku.png	\
+ 		openid.png	\
+ 		pingfm.png	\
+diff -up gwibber-3.4.2/data/icons/hicolor/scalable/apps/Makefile.am.noidentica gwibber-3.4.2/data/icons/hicolor/scalable/apps/Makefile.am
+--- gwibber-3.4.2/data/icons/hicolor/scalable/apps/Makefile.am.noidentica	2013-12-30 13:31:58.191697310 -0500
++++ gwibber-3.4.2/data/icons/hicolor/scalable/apps/Makefile.am	2013-12-30 13:32:03.458690310 -0500
+@@ -4,7 +4,6 @@ icon_DATA = 	brightkite.svg	\
+ 		facebook.svg	\
+ 		flickr.svg	\
+ 		friendfeed.svg	\
+-		identica.svg	\
+ 		jaiku.svg	\
+ 		openid.svg	\
+ 		pingfm.svg	\
+diff -up gwibber-3.4.2/gwibber/microblog/plugins/Makefile.am.noidentica gwibber-3.4.2/gwibber/microblog/plugins/Makefile.am
+--- gwibber-3.4.2/gwibber/microblog/plugins/Makefile.am.noidentica	2013-12-30 13:32:16.454673112 -0500
++++ gwibber-3.4.2/gwibber/microblog/plugins/Makefile.am	2013-12-30 13:32:24.134662913 -0500
+@@ -1,4 +1,4 @@
+-SUBDIRS = buzz digg facebook flickr foursquare friendfeed identica pingfm qaiku statusnet twitter
++SUBDIRS = buzz digg facebook flickr foursquare friendfeed pingfm qaiku statusnet twitter
+ 
+ plugindir = $(datadir)/gwibber/plugins/
+ plugin_PYTHON = \
diff --git a/gwibber-3.4.2-notification-timeout.patch b/gwibber-3.4.2-notification-timeout.patch
new file mode 100644
index 0000000..c34af92
--- /dev/null
+++ b/gwibber-3.4.2-notification-timeout.patch
@@ -0,0 +1,21 @@
+diff -uNrp gwibber-3.4.2.orig/gwibber/microblog/dispatcher.py gwibber-3.4.2/gwibber/microblog/dispatcher.py
+--- gwibber-3.4.2.orig/gwibber/microblog/dispatcher.py	2012-03-27 17:51:44.000000000 +0200
++++ gwibber-3.4.2/gwibber/microblog/dispatcher.py	2013-06-20 16:01:26.462146091 +0200
+@@ -670,7 +670,7 @@ class Dispatcher(dbus.service.Object):
+       if self.notified_errors[error["account"]["service"]] == error["message"]:
+         return
+     if util.can_notify:
+-      util.notify(error["account"]["service"], error["message"], icon, 2000)
++      util.notify(error["account"]["service"], error["message"], icon, 5000)
+     self.notified_errors[error["account"]["service"]] = error["message"]
+ 
+   def perform_async_operation (self, jobs):
+@@ -906,7 +906,7 @@ class Dispatcher(dbus.service.Object):
+     if not image:
+       #FIXME - we need to fix finding service icons in the service
+       image = util.resources.get_ui_asset("%s.png" % message["service"])
+-    util.notify(sender_name, notify_text, image, 2000)
++    util.notify(sender_name, notify_text, image, 5000)
+ 
+     return False
+ 
diff --git a/gwibber-3.4.2-scroll-events.patch b/gwibber-3.4.2-scroll-events.patch
new file mode 100644
index 0000000..95c45cb
--- /dev/null
+++ b/gwibber-3.4.2-scroll-events.patch
@@ -0,0 +1,42 @@
+diff -uNrp gwibber-3.4.2.orig/libgwibber-gtk/stream-view-tile.vala gwibber-3.4.2/libgwibber-gtk/stream-view-tile.vala
+--- gwibber-3.4.2.orig/libgwibber-gtk/stream-view-tile.vala	2012-04-20 17:24:24.000000000 +0200
++++ gwibber-3.4.2/libgwibber-gtk/stream-view-tile.vala	2013-06-20 13:39:19.486125935 +0200
+@@ -108,6 +108,8 @@ namespace GwibberGtk
+       _to_disconnect = new GLib.List<ulong> ();
+       draw.connect (on_draw);
+ 
++      this.add_events(Gdk.EventMask.KEY_PRESS_MASK | Gdk.EventMask.SCROLL_MASK);
++
+       align = new Gtk.Alignment (0.0f, 0.0f, 1.0f, 1.0f);
+       align.set_padding (our_padding, our_padding, our_padding, our_padding);
+       add (align);
+@@ -127,6 +129,7 @@ namespace GwibberGtk
+       _overlay_avatar_hbox = new Gtk.Box (Gtk.Orientation.HORIZONTAL, 0);
+       _avatar_box.set_size_request (48, 48);
+       _avatar_box.add (_avatar_fixed);
++      _avatar_box.add_events(Gdk.EventMask.KEY_PRESS_MASK | Gdk.EventMask.SCROLL_MASK);
+       lalignment.add (_avatar_box);
+ 
+       vbox = new Gtk.Box (Gtk.Orientation.VERTICAL, 0);
+@@ -217,11 +220,13 @@ namespace GwibberGtk
+       thumb_box = new Gtk.EventBox ();
+       thumb_box.set_visible_window (false);
+       thumb_box.add (thumbnail);
++      thumb_box.add_events(Gdk.EventMask.KEY_PRESS_MASK | Gdk.EventMask.SCROLL_MASK);
+       var thumb_hbox = new Gtk.Box (Gtk.Orientation.HORIZONTAL, 0);
+       thumb_hbox.pack_start (thumb_box, false, false, 0);
+       _thumb_expander = new Gtk.Expander.with_mnemonic (_("_Show"));
+       _thumb_expander.set_no_show_all (true);
+       _thumb_expander.add (thumb_hbox);
++      _thumb_expander.add_events(Gdk.EventMask.KEY_PRESS_MASK | Gdk.EventMask.SCROLL_MASK);
+       vbox.pack_start (_thumb_expander, false, false, 4);
+       thumb_box.button_release_event.connect (() =>
+       {
+@@ -248,6 +253,7 @@ namespace GwibberGtk
+       reply_to.set_no_show_all(true);
+       reply_to.set_markup ("<span font_weight='light' font_size='small'></span>");
+       reply_to.set_alignment (0.0f, 0.5f);
++      reply_to.add_events(Gdk.EventMask.KEY_PRESS_MASK | Gdk.EventMask.SCROLL_MASK);
+       vbox.pack_start (reply_to, false, false, 2);
+ 
+       retweeted_by = new Gtk.Label ("");
diff --git a/gwibber-3.4.2-soup-uri-fragment.patch b/gwibber-3.4.2-soup-uri-fragment.patch
new file mode 100644
index 0000000..e4ee210
--- /dev/null
+++ b/gwibber-3.4.2-soup-uri-fragment.patch
@@ -0,0 +1,11 @@
+--- gwibber-3.4.2.orig/libgwibber-gtk/stream-view-tile.vala	2013-12-20 23:48:43.794326204 +0100
++++ gwibber-3.4.2/libgwibber-gtk/stream-view-tile.vala	2013-12-20 23:56:26.058485979 +0100
+@@ -183,7 +183,7 @@
+               if (args2[0] == "acct")
+                 acct = args2[1];
+               if (args2[0] == "query")
+-                query = "#" + args2[1];
++                query = "#" + url.fragment;
+             }
+             if (query.length > 0)
+             {
diff --git a/gwibber-3.4.2-twitter-1.1-api-fix-2.patch b/gwibber-3.4.2-twitter-1.1-api-fix-2.patch
new file mode 100644
index 0000000..1d344c1
--- /dev/null
+++ b/gwibber-3.4.2-twitter-1.1-api-fix-2.patch
@@ -0,0 +1,45 @@
+diff -uNrp gwibber-3.4.2.orig/gwibber/microblog/plugins/twitter/__init__.py gwibber-3.4.2/gwibber/microblog/plugins/twitter/__init__.py
+--- gwibber-3.4.2.orig/gwibber/microblog/plugins/twitter/__init__.py	2013-12-20 23:49:48.193124891 +0100
++++ gwibber-3.4.2/gwibber/microblog/plugins/twitter/__init__.py	2013-12-20 23:52:09.194809505 +0100
+@@ -393,6 +393,9 @@ class Client ():
+     if parse == "list":
+       return [self._list(l) for l in data["lists"]]
+ 
++    if parse == "status":
++      return [self._message(l) for l in data["statuses"]]
++
+     if single: return [getattr(self, "_%s" % parse)(data)]
+     if parse: return [getattr(self, "_%s" % parse)(m) for m in data]
+     else: return []
+@@ -414,7 +417,7 @@ class Client ():
+     return self._get("statuses/home_timeline.json", include_entities=1, count=count, since_id=since)
+ 
+   def responses(self, count=util.COUNT, since=None):
+-    return self._get("statuses/mentions.json", "responses", include_entities=1, count=count, since_id=since)
++    return self._get("statuses/mentions_timeline.json", "responses", include_entities=1, count=count, since_id=since)
+ 
+   def private(self, count=util.COUNT, since=None):
+     private = self._get("direct_messages.json", "private", include_entities=1, count=count, since_id=since) or []
+@@ -425,18 +428,18 @@ class Client ():
+     return self._get("statuses/public_timeline.json", include_entities=1)
+ 
+   def lists(self, **args):
+-    following = self._get("%s/lists/subscriptions.json" % self.account["username"], "list") or []
+-    lists = self._get("%s/lists.json" % self.account["username"], "list") or []
++    following = self._get("lists/subscriptions.json", screen_name=self.account["username"], parse="list") or []
++    lists = self._get("lists/list.json", screen_name=self.account["username"]) or []
+     return following + lists
+ 
+   def list(self, user, id, count=util.COUNT, since=None):
+     return self._get("%s/lists/%s/statuses.json" % (user, id), include_entities=1, per_page=count, since_id=since)
+ 
+   def search(self, query, count=util.COUNT, since=None):
+-    return self._search(include_entities=1, q=query, rpp=count, since_id=since)
++    return self._get("search/tweets.json", include_entities=1, q=query, rpp=count, since_id=since, parse="status")
+ 
+   def tag(self, query, count=util.COUNT, since=None):
+-    return self._search(q="#%s" % query, count=count, since_id=since)
++    return self._get("search/tweets.json", include_entities=1, q="#%s" % query, rpp=count, since_id=since, parse="status")
+ 
+   def delete(self, message):
+     return self._get("statuses/destroy/%s.json" % message["mid"], None, post=True, do=1)
diff --git a/gwibber.spec b/gwibber.spec
index 5f7161b..b3a0bbf 100644
--- a/gwibber.spec
+++ b/gwibber.spec
@@ -2,7 +2,7 @@
 
 Name:           gwibber
 Version:        3.4.2
-Release:        9%{?dist}
+Release:        10%{?dist}
 Epoch:          1
 Summary:        An open source microblogging client for GNOME developed with Python and GTK
 Group:          Applications/Internet
@@ -63,6 +63,21 @@ Patch57:	gwibber-3.4.2-fix-mkdir-p.patch
 # Fix gtkspell3
 Patch58:	gwibber-3.4.2-gtkspell3-fix.patch
 
+# Fix soup URI parsing
+Patch59:	gwibber-3.4.2-soup-uri-fragment.patch
+
+# Fixes for Twitter 1.1
+Patch60:	gwibber-3.4.2-twitter-1.1-api-fix-2.patch
+
+# Increase notification timeout
+Patch61:	gwibber-3.4.2-notification-timeout.patch
+
+# Improve scrolling
+Patch62:	gwibber-3.4.2-scroll-events.patch
+
+# Drop support for "identi.ca" (it's dead, Jim)
+Patch63:	gwibber-3.4.2-no-identica.patch
+
 Requires:	libsoup, python-pycurl
 Requires:	python 
 Requires:	dbus-python >= 0.80.2
@@ -145,6 +160,17 @@ Development files for gwibber's libraries.
 # Fix gtkspell3
 %patch58 -p1 -b .fixgtkspell3
 
+%patch59 -p1 -b .soup-uri-fix
+%patch60 -p1 -b .twitter11
+%patch61 -p1 -b .timeout5
+%patch62 -p1 -b .scrollfixes
+%patch63 -p1 -b .noidentica
+
+# Kill dead things (identi.ca)
+rm -rf gwibber/microblog/plugins/identica
+rm -rf data/icons/hicolor/16x16/apps/identica.png data/icons/hicolor/22x22/apps/identica.png
+rm -rf data/icons/hicolor/scalable/apps/identica.svg
+
 %build
 # NOCONFIGURE=true ./autogen.sh
 autoreconf -ifv
@@ -228,6 +254,14 @@ fi
 %{_datadir}/vala/vapi/gwibber*
 
 %changelog
+* Mon Dec 30 2013 Tom Callaway <spot at fedoraproject.org> - 3.4.2-10
+- Fixes from Fabrice Bellet
+ - Fix scroll events handling
+ - Increase the notification bubble timeout (from 2 secs to 5 secs)
+ - More fixes for twitter 1.1 API
+ - Fix soup URI parsing
+- Drop identi.ca support (they no longer exist)
+
 * Mon Nov 11 2013 Tom Callaway <spot at fedoraproject.org> - 3.4.2-9
 - add appdata file
 - enable gtkspell3 support


More information about the scm-commits mailing list