Liferea

Liferea(Linux Feed Reader),GTK / GNOME的新闻阅读器。(Liferea (Linux Feed Reader), a news reader for GTK/GNOME)

Github stars Tracking Chart

Liferea是一个桌面提要阅读器/新闻聚合器,它将您喜欢的订阅中的所有内容整合到一个简单的界面中,以便于组织和浏览提要。 它的GUI类似于桌面邮件/新闻客户端,带有嵌入式Web浏览器。

特色
  • 离线时阅读文章。
  • 使用HTML5提取强制获取完整文章文本
  • 与...同步
    • Reedah
    • TheOldReader
    • TinyTinyRSS
  • 永久保存新闻箱中的头条新闻。
  • 使用搜索文件夹匹配项目。
  • 在Liferea播放播客


Overview

Name With Ownerlwindolf/liferea
Primary LanguageC
Program languageShell (Language Count: 8)
PlatformBSD, Linux
License:GNU General Public License v2.0
Release Count67
Last Release Namev1.15.6 (Posted on )
First Release Namev1.10.3 (Posted on )
Created At2013-11-01 20:45:51
Pushed At2024-04-27 21:13:27
Last Commit At2024-04-27 23:13:14
Stargazers Count797
Watchers Count45
Fork Count130
Commits Count7.1k
Has Issues Enabled
Issues Count898
Issue Open Count93
Pull Requests Count402
Pull Requests Open Count8
Pull Requests Close Count25
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private

Build Status Coverity Scan Build Status

Introduction

Liferea is a desktop feed reader/news aggregator that brings together all of the content from your favorite subscriptions into a simple interface that makes it easy to organize and browse feeds. Its GUI is similar to a desktop mail/news client, with an embedded web browser.

screenshot

Installation from Package

For distro specific package installation check out https://lzone.de/liferea/install.htm

Building Liferea Yourself

This section describes how to compile Liferea yourself. If you have
any problems compiling the source file an issue at Github and we will
help you asap.

Mandatory Dependencies

libxml2-dev libxslt1-dev libsqlite3-dev libwebkit2gtk-4.0-dev libjson-glib-dev libgirepository1.0
libpeas-dev gsettings-desktop-schemas-dev python3

Compiling from Tarball

Download a tarball from https://github.com/lwindolf/liferea/releases
and extract and compile with

tar jxvf liferea-1.12.0.tar.bz2 
./configure
make
make install
Compiling from Git

Check out the code:

git clone https://github.com/lwindolf/liferea.git

Then build it with:

./autogen.sh
make
make install

If you compile with a --prefix directory which does not match $XDG_DATA_DIRS
you will get a runtime error about the schema not being found. To workaround
set $XDG_DATA_DIRS before starting Liferea. For example:

my_dir=$HOME/tmp/liferea
./autogen.sh --prefix=$my_dir
make
make install
env XDG_DATA_DIRS="$my_dir/share:$XDG_DATA_DIRS" $my_dir/bin/liferea

Contributing

As the project is hosted at Github pull requests and tickets via Github
are the best way to contribute to Liferea.

Translating

Before starting to translate you need a translation editor. We suggest
to use poedit or gtranslator. Please edit the translation using such a
translation editor and send us the resulting file. Once you have finished
your work please send us the resulting file.

Please do not send translation patches. Those are a lot of work to merge
and the bandwidth saving is not that huge!

New Translations

To create a new translation you must load the translation template, which you
can find in the release tarball as "po/liferea.pot", into the translation
editor. After editing it save it under a new name (usually your locales name
with the extension ".po").

Updating Translations

When updating an existing translation please ensure to respect earlier
translators work. If the latest translation is only a few months old please
contact the latest translator first asking him to review your changes especially
if you change already translated literals.

Localizing Feed Lists

When Liferea starts for the first time it installs a localized feed list
if available. If this is not the case for your locale you might want to provide
one. To check if there is one for your country have a look into the "opml"
subdirectory in the latest release tarball or GIT.

If you want to provide/update a localized feed list please follow these rules:

  • Keep the English part of the default feed list
  • Only add neutral content feeds (no sex, no ideologic politics, no illegal stuff)
  • Provide good and short feed titles
  • Provide HTML URLs for each feed.
Creating Plugins

Liferea 1.10+ support GObject Introspection based plugins using libpeas. The
Liferea distribution comes with a set of Python plugin e.g. the media player,
libsecret support, a tray icon plugin and maybe others.

Why We Use Plugins?

The idea behind plugins is to extend Liferea without changing compile time
requirements. With the plugin only activating if all its bindings are available
Liferea uses plugins to automatically enable features where possible.

How Plugins Interact With Liferea

You can develop plugins for your private use or contribute them upstream.
In any case it makes sense to start by cloning one of the existing plugins
and to think about how to hook into Liferea. There are two common ways:

  • using interfaces,
  • or by listening to events on Liferea objects,
  • or not at all by just controlling Liferea from the outside.

The media player is an example for 1.) while the tray icon is an example for 3.)
If you find you need a new plugin interface (called Activatables) in the code
feel free to contact us on the mailing list. In general such a tight coupling
should be avoided.

About the exposed GIR API: At the moment there is no stable API. Its just some
header files fed into g-ir-scanner. Despite this method names of the core
functionality in Liferea has proven to be stable during release branches. And
if you contribute your plugin upstream it will be updated to match renamed
functionality.

Testing Plugins

To test your new plugin you can use ~/.local/share/liferea/plugins. Create
the directory and put the plugin script and the .plugin file there and restart
Liferea.

Watch out for initialization exceptions on the command line as they will
permanently disable the plugin. Each time this happens you need to reenable
the plugin from within the plugin tab in the preferences dialog!

How to Help With Testing
Bug Reports

If you want to help with testing grab the latest tarball or follow GIT master
and write bug reports for any functional problem you experience. If you have
time help with bug triaging. Check if you see any of the open bugs that are
not yet confirmed.

Debugging Crashes

In case of crashes create gdb backtraces and post them in the bug tracker. To
create a backtrace start Liferea using "gdb liferea". At the gdb prompt type
"run" to start the execution and "bt" after the crash. Send us the "bt" output!

Note: Often people confuses assertions with crashes. Assertions do halt the
program because of a totally unexpected situation. Creating a backtrace in this
situation will only point to the assertion line, which doesn't help much. In case
of an assertion simply post a bug report with the assertion message.

Debugging Memory Leaks

If you see memory leakage please take the time to do a run

valgrind --leak-check=full liferea

to identify leaks and send in the output.

How to Get Support

When using distribution packages

Do not post bug reports in the Liferea bug tracker, use the bug reporting
system of your distribution instead. We (upstream) cannot fix distribution
packages!

Before raising an issue

Install the latest stable release and check if the problem is solved already.
Please do not ask for help for older releases!

Issue Tracker

Once you verified the latest stable release still has the problem
please raise an issue in the GitHub bug tracker
(https://github.com/lwindolf/liferea/issues).

To the top