Blogs

Liferea Sync Support Status (TinyTinyRSS, TheOldReader, Feedly, AOL Reader, Digg Reader)

There is slow progress in the world of news aggregation services. Since the last post on possible sync implementations I was able to submit API access requests for AOL Reader and Feedly. There is a chance that the request for AOL Reader will be successful. The unexpected thing with AOL is that they require OAuth2 authentication which Liferea does not yet support. Still it will be possible to add it.

My clear favourites are still AOL and Digg. With two 3rd party hosters and one self-hosted solution (TinyTinyRSS) Liferea would provide a reasonable set of choices.

Name API Status Implementation Status
Google Reader Deprecated Implemented, Now Useless
TinyTinyRSS Published. Implemented, Stable
TheOldReader Published. Implemented, Experimental
AOL Reader Published API Key Requested
Digg Reader Planned 1) %
NewsBlur Published Not Planned.
Feedly Secret 2) API Access Requested

1) Digg has announced they will be implementing Google Reader API and hope is they open it up
2) Feedly has announced there will be a public API with v17

Liferea 1.10 GnomeKeyring Issue

If you are using 1.10 with the GnomeKeyring plugin, which will be automatically activated in GNOME environments, you might run into a strange bug (see SF #1099).

It appears that the keyring "liferea" created by the plugin can become "stale" - it just doesn't work anymore. At the moment I have no idea what triggers this and what is exactly the problem. If this happens Liferea cannot store passwords into the keyring anymore and you get password prompts all the time.

Workaround: Delete the "liferea" keyring from GnomeKeyring using the "seahorse" keyring editor. Ensure you have installed "seahorse" and launch it from the command line

seahorse

and delete the keyring as shown in the screenshot:

TheOldReader Online Again

As reported on the TheOldReader status page it is online again since July 25, 21:07 UTC.

TheOldReader Down

If you are using Liferea with TheOldReader you currently see errors when synchronizing. This is caused by a storage incident with TheOldReader (see details here). There was an official mail from TheOldReader this morning informing about the downtime of approx. 1-2 days.

From the post

Here comes the worst news - this will probably take a day or two.
Sorry about that.

The amazing information in this post is that there are now 400k TheOldReader users!

So if you are affected please keep patient and give the guys credit for working so hard. After all it is a free service.

HTTPS Problems on ArchLinux

If you are using ArchLinux and clicking HTTPS links in the internal browser suddenly doesn't work anymore have a look at this bug report: https://bugs.archlinux.org/task/36212. It seems that a gnutls upgrade broke HTTPS in Webkit (which is the embedded browser in Liferea).

TheOldReader Sync Implemented

I originally intended to make AOL Reader work, but failed due to the undocumented and propably not yet published authentication API. I'll ask AOL about it, but if anyone knows please drop me a mail.

So I could not work on AOL Reader, so I choose to work on TheOldReader (http://theoldreader.com) which I found very pleasant and stable. The API is close to Google Reader with the only limitation that it sometimes only has JSON support and no XML. As we use JSON already for TinyTinyRSS synching I could build on existing code.

So git master now has working experimental TheOldReader support!

This will be released soon with the initial 1.10 release.

So Liferea now has the following online synchronization support:

Name Status Import Google Reader
Google Reader Deprecated %
TinyTinyRSS Implemented, Stable No
TheOldReader Implemented, Experimental No
AOL Reader Planned, API not complete Yes
Digg Reader Planned, API not public Yes
NewsBlur Not Planned, API too different Yes
Feedly I registered Liferea as interested Client Yes

On the long term I'd like to support to new Google Reader clones to give Liferea users some choice along with TinyTinyRSS for the self-hosting choice.

Liferea synching to Feedly, AOL Reader and Digg Reader?

After Digg going live recently there are now three major free news aggregators available. With two of them you can register.

Today I migrated my old Google subscriptions to both Feedly and Digg Reader to have test accounts in case they open up their APIs. In the case of Feedly I did submit the developer registration, let's see if they find the Liferea user base large enough to respond. If you want to continue using a web-based aggregator you should migrate now to either Feedly or Digg Reader. Personally Digg feels a bit more like honest community than Feedly. But this probably doesn't mean much.

State of Feedly

http://feedly.com

Being the first to deliver the live migration Feedly gives you instant access, but no API. I guess they want to work only with some large aggregators.

State of Digg

http://digg.com/reader

Sadly Digg has post-poned the publication of their API for now. Meanwhile th import and the aggregator itself works fine. So let's hope.

State of AOL Reader

http://reader.aol.com

AOL Reader has an API, but I still don't have an account or I'd have started trying to port it. It seems they do not want or cannot scale as fast as intended.

Possibility of AOL Reader Support

Yesterday I took a look at the newly announced AOL Reader http://reader.aol.com/ and of course its API. The API is similar to Google Reader, is actually somewhat simpler. So you for example can't do GET requests, everything needs to be JSON POSTs.

This is not really a problem, I believe the API can easily be implement by building on the Google Reader code and taking the existing JSON handling from our TinyTinyRSS API client.

At the moment I cannot do it, as I did not get an account for AOL Reader yet. The have a queue. Yesterday they gave out only 200k accounts. Let's see when they open up further.

If you want to lend an account for testing, feel free to drop a mail!

Liferea 1.8.15 Released

This is a maintenance release fixing some bugs. It also introduces a backport of the Google Reader migration feature introduced in 1.10. This allows you to convert you Google Reader subscription to local Liferea subscription keeping all items downloaded so far.

Note: This migration will also work after Google Reader shutting down, as Liferea keeps a local cache of the Google Reader items.

Please upgrade to this release if you are/were using Google Reader and click "Convert to Local Subscriptions" from the context menu of the subscription list to migrate your Google data. Read more in this recent blog post.

Changes:

* Added an option to convert Google Reader subscriptions
  to local feeds (Lars Windolf)
* Fixes SF #1080: segfault opening attachment due to incorrect g_free()
  (reported by Adam Nielsen)
* Fixes SF #1075: GLib warnings of "string != NULL" assertion failure
  (reported by Simon Kågedal Reimer)
* Fixes search folders including comment items
  (reported by David Willmore)

Download the newest code from the project homepage!

Detecting a Dark Theme in GTK

When implementing an improved unread news counter rendering for Liferea if found it necessary to detect wether there is a light or dark GTK theme active. The reason for this was that I didn't want to use the foreground and background colors which are often black and something very bright. So instead from the GtkStyle struct which looks like this

typedef struct {
  GdkColor fg[5];
  GdkColor bg[5];
  GdkColor light[5];
  GdkColor dark[5];
  GdkColor mid[5];
  GdkColor text[5];
  GdkColor base[5];
  GdkColor text_aa[5];          /* Halfway between text/base */
[...]

I decided to use the "dark" and "bg" colors with "dark" for background and "bg" for the number text. For a light standard theme this results mostly to a white number on some shaded background. This is how it looks (e.g. the number "4" behind the feed "Boing Boing"):

Inverse Colors For Dark Theme Are Hard!

The problem is when you use for example the "High Contrast Inverse" dark theme. Then "dark" suddenly is undistinguishable from "bg" which makes sense of course. So we need to choose different colors with dark themes. Actually the implementation uses "bg" as foreground and "light" for background.

How to Detect Dark Themes

To do the color switching I first googled for a official GTK solution but found none. If you know of one please let me know! For the meantime I implemented the following simple logic:

	gint		textAvg, bgAvg;

	textAvg = style->text[GTK_STATE_NORMAL].red / 256 +
	        style->text[GTK_STATE_NORMAL].green / 256 +
	        style->text[GTK_STATE_NORMAL].blue / 256;

	bgAvg = style->bg[GTK_STATE_NORMAL].red / 256 +
	        style->bg[GTK_STATE_NORMAL].green / 256 +
	        style->bg[GTK_STATE_NORMAL].blue / 256;

	if (textAvg > bgAvg)
		darkTheme = TRUE;

As "text" color and "background" color should always be contrasting colors the comparison of the sum of their RGB components should produce a useful result. If the theme is a colorful one (e.g. a very saturated red theme) it might sometimes cause the opposite result than intended, but still background and foreground will be contrasting enough that the results stays readable, only the number background will not contrast well to the widget background.

For light or dark themes the comparison should always work well and produce optimal contrast. Now it is up to the Liferea users to decide wether they like it or not.

Syndicate content