Kaktus

Rating: 
5
Your rating: None Average: 5 (11 votes)

Multi services feed reader, specially designed to work offline. Currently, supports Netvibes, Old Reader and Tiny Tiny RSS as feed aggregators.

Kaktus works in sync mode, so network connectivity is not required all the time. The key feature is possibility to read articles in offline mode, so without a network usage. In such mode, previously downloaded content of web pages are displayed from local cache.

To run the application, you must already have a Netvibes, Old Reader ot TT RSS account - new sign up from app is not possible.

Any comments, issue reports are highly appreciated.

Translations:
All translations are very welcome. There are two ways to contribute:
- Transifex project: https://www.transifex.com/projects/p/kaktus/
- Direct github pull request: https://github.com/mkiol/kaktus/tree/master/sailfish/translations

Source code: https://github.com/mkiol/kaktus
Bugs, Feature requests: https://github.com/mkiol/kaktus/issues or just email: kaktus@mkiol.net

Screenshots: 
Application versions: 
AttachmentSizeDate
File harbour-kaktus-2.6.1-2.armv7hl.rpm823.02 KB27/08/2017 - 14:52
File harbour-kaktus-2.6.1-2.i486.rpm853.26 KB27/08/2017 - 14:52
File harbour-kaktus-2.9.0-1.i486.rpm885.83 KB23/03/2019 - 16:14
File harbour-kaktus-2.9.0-1.armv7hl.rpm856.49 KB23/03/2019 - 16:14
File harbour-kaktus-2.9.1-1.i486.rpm889.94 KB04/04/2019 - 17:13
File harbour-kaktus-2.9.1-1.armv7hl.rpm860.36 KB04/04/2019 - 17:13
File harbour-kaktus-3.0.0-1.i486.rpm895.6 KB22/04/2019 - 14:36
File harbour-kaktus-3.0.0-1.armv7hl.rpm866.01 KB22/04/2019 - 14:56
Changelog: 

* 3.0.0 (harbour release)
- Translations update for Chinese and German (many thanks to Rui Kon and qwer_asew)

* 2.9.1 (beta)
- Translations update for Spanish, Belgian Dutch and Netherlands Dutch (many thanks to Carmen Fernández B., Nathan Follens and Heimen Stoffels)

* 2.9.0 (beta)
- Tiny Tiny RSS as a new feeds aggregator (many thanks to Renaud Casenave-Péré for implementing this feature)
- UI refresh including support for Light themes
- Option to save images to gallery

* 2.6.1 (beta)
- Minor UI fixes
- Readability.js (Reader View) updated to the latest version
- Fix for missing icons on OnePlus X

* 2.6.0-7 (harbour release)
- RU translations update

Comments

kaulian's picture

Hi,
Adding from scratch a ttrrs self hosted account dont work for me
It like internal database for this app is missing

kaulian's picture

In fact bad url.
Now i'ts works
Thanks

jfebrer's picture

Really great app!

I wish it could support FreshRSS.

oxygenh's picture

Not worked on sfos 2.1.3.7. Blank screen without feeds. But app cover show number of unread news and quick action worked.

mkiol's picture

> Not worked on sfos 2.1.3.7

Honestly, I didn't test it on such old version. Possibly some method from newest SFOS API is not supported. Could you please gather terminal output?

oxygenh's picture

<p>there are terminal output:<br />
<br />
&nbsp;</p>

<p>[nemo@Sailfish ~]$ harbour-kaktus<br />
[D] unknown:0 - Using Wayland-EGL<br />
[D] unknown:0 - Cannot load translation: "C" "/usr/share/harbour-kaktus/translations"<br />
[W] unknown:0 - Defaulting to webview scaling factor of 1.0<br />
[W] unknown:0 - DB is not open<br />
[W] unknown:0 - QPainter::begin: Paint device returned engine == 0, type: 2<br />
[W] unknown:0 - QPainter::setCompositionMode: Painter not active<br />
[W] unknown:0 - QPainter::end: Painter not active, aborted<br />
[W] unknown:54 - file:///usr/lib/qt5/qml/Sailfish/Silica/IconButton.qml:54:5: QML HighlightImage: Failed to get image from provider: image://icons/icon-m-read?#ffffff<br />
[W] unknown:0 - QPainter::begin: Paint device returned engine == 0, type: 2<br />
[W] unknown:0 - QPainter::setCompositionMode: Painter not active<br />
[W] unknown:0 - QPainter::end: Painter not active, aborted<br />
[W] unknown:54 - file:///usr/lib/qt5/qml/Sailfish/Silica/IconButton.qml:54:5: QML HighlightImage: Failed to get image from provider: image://icons/icon-m-filter-2?#ffffff<br />
[W] unknown:0 - QPainter::begin: Paint device returned engine == 0, type: 2<br />
[W] unknown:0 - QPainter::setCompositionMode: Painter not active<br />
[W] unknown:0 - QPainter::end: Painter not active, aborted<br />
[W] unknown:54 - file:///usr/lib/qt5/qml/Sailfish/Silica/IconButton.qml:54:5: QML HighlightImage: Failed to get image from provider: image://icons/icon-m-vm1?#ffffff<br />
[W] unknown:0 - QPainter::begin: Paint device returned engine == 0, type: 2<br />
[W] unknown:0 - QPainter::setCompositionMode: Painter not active<br />
[W] unknown:0 - QPainter::end: Painter not active, aborted<br />
[W] unknown:54 - file:///usr/lib/qt5/qml/Sailfish/Silica/IconButton.qml:54:5: QML HighlightImage: Failed to get image from provider: image://icons/icon-m-vm6?#ffffff<br />
[W] unknown:0 - QPainter::begin: Paint device returned engine == 0, type: 2<br />
[W] unknown:0 - QPainter::setCompositionMode: Painter not active<br />
[W] unknown:0 - QPainter::end: Painter not active, aborted<br />
[W] unknown:54 - file:///usr/lib/qt5/qml/Sailfish/Silica/IconButton.qml:54:5: QML HighlightImage: Failed to get image from provider: image://icons/icon-m-vm4?#ffffff<br />
[W] unknown:0 - QPainter::begin: Paint device returned engine == 0, type: 2<br />
[W] unknown:0 - QPainter::setCompositionMode: Painter not active<br />
[W] unknown:0 - QPainter::end: Painter not active, aborted<br />
[W] unknown:54 - file:///usr/lib/qt5/qml/Sailfish/Silica/IconButton.qml:54:5: QML HighlightImage: Failed to get image from provider: image://icons/icon-m-vm3?#ffffff<br />
[W] unknown:0 - QPainter::begin: Paint device returned engine == 0, type: 2<br />
[W] unknown:0 - QPainter::setCompositionMode: Painter not active<br />
[W] unknown:0 - QPainter::end: Painter not active, aborted<br />
[W] unknown:54 - file:///usr/lib/qt5/qml/Sailfish/Silica/IconButton.qml:54:5: QML HighlightImage: Failed to get image from provider: image://icons/icon-m-vm1?#0082c8<br />
[W] unknown:0 - QPainter::begin: Paint device returned engine == 0, type: 2<br />
[W] unknown:0 - QPainter::setCompositionMode: Painter not active<br />
[W] unknown:0 - QPainter::end: Painter not active, aborted<br />
[W] unknown:54 - file:///usr/lib/qt5/qml/Sailfish/Silica/IconButton.qml:54:5: QML HighlightImage: Failed to get image from provider: image://icons/icon-m-vm0?#ffffff<br />
[W] unknown:44 - file:///usr/lib/qt5/qml/Sailfish/Silica/CoverPlaceholder.qml:44:5: QML Image: Failed to get image from provider: image://icons/icon-a-kaktus<br />
[W] unknown:439 - file:///usr/lib/qt5/qml/Sailfish/Silica/PageStack.js:439: Error: Error while loading page: file:///usr/share/harbour-kaktus/qml/TabPage.qml:108 Cannot assign to non-existent property "openMenuOnPressAndHold"</p>

<p>[W] unknown:263 - file:///usr/share/harbour-kaktus/qml/ControlBar.qml:263:28: Unable to assign [undefined] to QColor<br />
[W] unknown:273 - file:///usr/share/harbour-kaktus/qml/ControlBar.qml:273: TypeError: Cannot read property 'objectName' of null<br />
[W] unknown:306 - file:///usr/share/harbour-kaktus/qml/ControlBar.qml:306: TypeError: Cannot read property 'objectName' of null<br />
[W] unknown:412 - file:///usr/share/harbour-kaktus/qml/ControlBar.qml:412: TypeError: Cannot read property 'showBar' of null</p>

mkiol's picture

Thank you for providing the log. It doesn't look right :-/ What device are you using?

oxygenh's picture

I use Google Nexus 7 pad with port of sailfish os 2.1.3.7

oxygenh's picture

Thank you very much! Nice app!

hoodlum's picture

Thank you!

klinglerware's picture

Thank you for keeping on top of the issues with Netvibes, and getting fixes uploaded within hours.  Much appreciated!

mkiol's picture

Thank you for finding Kaktus useful :-)

Getmantsev's picture

Mkiol, in some feeds in NetVibes the images don't fill the screen width, like that: https://yadi.sk/i/Cs7lfc0AzU7bm

mkiol's picture

Actually, it is not a bug. Feed image width is smaller than screen width.. and lack of left margin is intentional.

hoodlum's picture

Update translations, please ))

mkiol's picture

I'm working on it. Be patient :-)

Getmantsev's picture

Very very cool reader! Is it possible to make program to work without netvibes/oldreader account (like Tidings)?

mkiol's picture

I really like Tidings and I don't want to make competition :-) But seriously, the fundamental concept of Kaktus is to work as a client for aggregators like OR, NV and others. I don't want to change it.

codeandcreate's picture

so will be selfoss or owncloud news supported in the future? 

gird's picture

Hi, mkiol!

You are making best feed reader fo Sailfish!

Please, have a look at "reader view" in Firefox. It allow to read only article, without all unnecessary. Could you implement something like that in Kaktus (in "open in viewer")?

 

mkiol's picture

Thanks to your idea that inspired me to do look at the Readability.js library, the same that is used in Firefox. The results are great. It really works amazing. I'm preparing new release that will have this new feature included.

mkiol's picture

Thanks for liking my work :-) Regarding "Reader view", so I agree that Firefox feature is really useful. I love it. In Kaktus there is something that should do similar thing - "Read mode" (icon with gears). I know, it is far from being perfect but the purpuse is the same. I will focus in future release to improve this functionality.

mentaljam's picture

Hello, and thank you for the last update!

Don't you think it's better to move the "update" menu item to the bottom of the menu? It is probably the action that is used most often and should be the first after the menu open?

UPD: And one more thing. As I noticed for now all links are opened in an external browser. And this is not convenient in all cases. For example I read an article and then want to read comments and I don't want use an external browser for it. May be it's a good idea to add an option to select behaviour on links opened?

mkiol's picture

@mentaljam Thanks for your comments and ideas.

> it's better to move the "update" menu item to the bottom of the menu

You're perfectly right. Will be fixed in the next update.

> all links are opened in an external browser [..] it's a good idea to add an option to select behaviour on links opened

Option for that is a good idea, but I would like to keep "external browser" as a default configuration. Will be in the next update.

 

mentaljam's picture

Thank you!

AnttiT's picture

Any schedule for Feesdly support?

mkiol's picture

Unfortunately it is not so simple. Implementation job is already done, but I need to get, so called "production tokens". I've raised few times request to Feedly to send me those tokens, and finally they email me saying: "we are no longer issuing keys until Q2 2016". :-(

AnttiT's picture

Thanks for the update. Maybe it's time for me to look for a substitute for Feedly...

seike's picture

Hi, would it be possible to display full featured RSS Content directly in the App and not loading it via the internal or external web browser? Right now I'm getting a Preview of the content within the App and I just want to read the content inside the app and not load the webpage and being distracted by the Webpage. Something like reeder does or FeedlyReader or Palabre (and also the other like Feedly Readers available for SFOS). The overall experience would be more consistent.
I'm using Kaktus with Old Reader Account.

But in the end, great app!

mkiol's picture

In the latest version (=2.3-1) I added new "Click on article action" option. One of the value could be "Show feed content". Your feedback is welcome.

Pages