Development

Liferea 1.10.8 Released

Today sees another maintenance release for 1.10. This release tries to address the startup crashes some users experience. If you are affected please upgrade and give feedback if it helped!

* Fixes Github #13: Parsing errors not visible with dark themes
  (reported by Steve Kelly)
* Fixes SF #1137, #1142: startup race with LifereaHtmlView
  (reported by Yanko Kaneti)

Download Liferea 1.10.8

https://github.com/lwindolf/liferea/releases/download/v1.10.8/liferea-1.10.8.tar.bz2

Liferea 1.10.7 Released

Today there is another maintenance release for 1.0 introducing a patch from Chris Siebenmann:

 * Make Liferea use ETags and send If-None-Match
   (patch by Chris Siebenmann)

Download Liferea 1.10.7

https://github.com/lwindolf/liferea/releases/download/v1.10.7/liferea-1.10.7.tar.bz2

Liferea 1.10.6 Released

Today saw the stable release 1.10.6. It provides two important bug fixes:

* Fixes SF #1135: liferea-add-feed doesn't process feed:https//
  (patch by Kevin Walke)
* Fixes SF #1137: crash on startup in enclosure_list_view_load
  (reported in Redhat #1048499, Fedora #214888)

Download Liferea 1.10.6

https://github.com/lwindolf/liferea/releases/download/v1.10.6/liferea-1.10.6.tar.gz

Liferea 1.8.16 and 1.10.5 Released

Today saw the release of 1.8.16 and 1.10.5. While 1.8.16 provides only a notification fix, 1.10.5 has those bug fixes:

* Fixes #1056, #1089, #1098: Honor preferences when opening links
  (patch by Daniel Seither)
* Fixes SF #1096: missing installation of liferea.convert file
  (reported by stqn) 
* Fixes Redhat #947358: popup notification only for new items
  (patch by Fabrice Bellet)

Changes in Release Notifications

Please note that starting now releases will be published on Github and the Sourceforge "News" feed is not in use anymore. Please unsubscribe this feed and subscribe to either

Download Releases

Liferea 1.10 Schema Crash on Fedora 18/19

In case you want to self-compile Liferea 1.10 on Fedora and you find it crashing on startup with something like this

(liferea:3798): GLib-GIO-ERROR **: Settings schema 'net.sf.liferea' 
does not contain a key named 'last-node-selected'

please run

/usr/bin/glib-compile-schemas /usr/share/glib-2.0/schemas

It seems like the schema installation doesn't work properly on Fedora. This was reported and solved by nmdias in ticket SF #1093.

Liferea 1.10.4 Released

Liferea 1.10.4 was released. This is a bugfix release with the following changes. Please upgrade!

* Fixes SF #1123: Mistakenly claims "TinyTinyRSS source is not self-updating"
  (reported by Dominik Grafenhoher)
* Fixes SF #1119: Crash on font resize at startup.
  (reported by David Smith)
* Fixes #1117: Selecting last unread item in reduced feed list jumps to next feed
  (reported by Bruce Guenter)

* Updated Arabic translation (Khaled Hosny)

GTK Tray StatusIcon Example with PyGI

Here is an example on how to build a GtkStatusIcon using PyGI (Python GObject). The code actually implements a libpeas plugin that could be used with any GTK+ project that allows GI plugins. The tray icon could respond to left clicking by toggling the application window like many instant messengers do. On right clicks it presents a menu with the options to toggle the application window or quit the application.

from gi.repository import GObject, Peas, PeasGtk, Gtk

class TrayiconPlugin (GObject.Object, PeasActivatable):
    __gtype_name__ = 'TrayiconPlugin'

    object = GObject.property (type=GObject.Object)

    def do_activate (self):
        self.staticon = Gtk.StatusIcon ()
	self.staticon.set_from_stock (Gtk.STOCK_ABOUT)
        self.staticon.connect ("activate", self.trayicon_activate)
        self.staticon.connect ("popup_menu", self.trayicon_popup)
        self.staticon.set_visible (True)

    def trayicon_activate (self, widget, data = None):
        print "toggle app window!"

    def trayicon_quit (self, widget, data = None):
        print "quit app!"

    def trayicon_popup (self, widget, button, time, data = None):
        self.menu = Gtk.Menu ()

        menuitem_toggle = Gtk.MenuItem ("Show / Hide")
        menuitem_quit = Gtk.MenuItem ("Quit")

        menuitem_toggle.connect ("activate", self.trayicon_activate)
        menuitem_quit.connect ("activate", self.trayicon_quit)

        self.menu.append (menuitem_toggle)
        self.menu.append (menuitem_quit)

        self.menu.show_all ()
	self.menu.popup(None, None, lambda w,x: self.staticon.position_menu(self.menu, self.staticon), self.staticon, 3, time)

    def do_deactivate (self):
        self.staticon.set_visible (False)
        del self.staticon

PHP ini_set() Examples

Syntax of ini_set()

The ini_set() syntax is simple:

string ini_set ( string $varname , string $newvalue )

it is just a key value setter. The important question is which values can be set. Below you find a list of working examples. Please note that you cannot change all php.ini options especially those that need to be set before PHP initializes.

Useful Working ini_set() Examples

1. Enabling error display

On production sites you typically do not show errors in the page for usability and security reasons. But when you when you debug something live you might want to enable it temporarily and just for you:

# Assuming 5.44.33.22 is your IP...
if ( $_SERVER["REMOTE_ADDR"] == "5.44.33.22") {
    ini_set('display_errors', '1');
}

Note: you may want to combine this with

error_reporting(E_ALL | E_STRICT);

2. Changing Memory Limit

When you need to increase memory from within the code:

ini_set("memory_limit","1000M");

Note though that this might be prevent by a Suhosin hardended PHP installation.

3. Adding include paths

Normally this shouldn't be necessary. It is way cleaner to do it in php.ini, but if you bundle libraries and you administrator doesn't know:

<?php ini_set('include_path',ini_get('include_path').':../my-libs:');  ?>

When You Cannot Use ini_set()

For most php.ini settings you can't use ini_set(). To workaround consider deploying a .htaccess along with your code as this .htaccess can provide all PHP options to overwrite the default php.ini settings.

For example to change the HTTP POST limit add this line to a .htaccess read by your webserver:

php_value post_max_size 2500000

Note how the "php_value" prefix indicates settings for PHP. So simple syntax is

php_value <key name> <value>

Feedly Support for Liferea

A few days ago Feedly sent sandbox accounts around to developers that registered to be interested in the API. I intend to try to implement it and if everything works well to request a production API token. Stay tuned!

Meanwhile I'm working on adding Tiny Tiny RSS API v1.7.6 based features: subscribing and unsubscribing feeds from within Liferea.

New Unstable Branch for Liferea 1.11: Support for InoReader and Reedah

Yesterday I started a new 1.11 release branch in git. And my first goal is to introduce working support for the two free online aggregators

Both have a Google Reader like JSON API, so code reusage is possible. The challenge at the moment is to have as much shared code as possible while still covering the differences.

And each time your hear someone claim this or that online service is Google Reader API compatible ask: which the Google Reader Atom API or the JSON API.

Actually every combination: pure JSON, mixed Atom/JSON and Atom APIs are out there. And noone is encoding a simple thing like the read state of an item the same way. What usually is the same like back with Google Reader are the names of the API endpoints :-)

Still normalizing all the APIs is a challenge itself, which is why I'm working on it. If at the end Liferea users will have a choice I'll be happy. If you are using either of those two InoReader or Reedah please leave a short note in the comments! Both readers were requested in comments to earlier post and it helps decisions a lot to know what everyone is using!

Syndicate content