Kaktus

Rating: 
5
Your rating: None Average: 5 (14 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-3.0.2-1.armv7hl.rpm859.34 KB15/03/2021 - 22:10
File harbour-kaktus-3.0.2-1.aarch64.rpm870.05 KB15/03/2021 - 22:10
File harbour-kaktus-3.0.2-1.i486.rpm917.38 KB15/03/2021 - 22:10
File harbour-kaktus-3.0.3-1.armv7hl.rpm877.64 KB27/06/2021 - 20:19
File harbour-kaktus-3.0.3-1.aarch64.rpm888.16 KB27/06/2021 - 20:27
File harbour-kaktus-3.0.3-1.i486.rpm935.57 KB27/06/2021 - 20:27
Changelog: 

* 3.0.3 (beta)
- High resolution Netvibes icons

* 3.0.2 (harbour release)
- Mark as read/unread gesture
- Inverted screen orientation (for Gemini PDA)

* 3.0.1 (beta)
- Fixes for bugs discovered on SFOS 4.0

* 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

sausset's picture

Thanks for the explanation.
I'll try to consider alternatives to feedly.

sausset's picture

Could it be technically feasible to use the Feedly API ?
I not yet have the time to investigate but would be happy to help, at least for testing/debuging.

mkiol's picture

Actually, I tried to implement Feedly connector and even had a working prototype. The problem was in getting API token ("API key"). Feedly policy was changed and they stopped to deliver free of charge access to API. Maybe this situation has been changed recently. I don't know, I didn't check it. At that time I was very frustrated and deleted every line of code releated to Feedly from Kaktus. Someone might say that I'm allergic to Feedly now ;)

Existing open issue for Feedly support in Kaktus (last update Nov 9, 2016): https://github.com/mkiol/kaktus/issues/10

klinglerware's picture

Yes same here on netvibes. Also, cannot log back in because of the sync issue

carmenfdezb's picture

Does anyone have problems to sync? Unknown error is shown when I try to sync my netvibes account

mkiol's picture

Hi. Maybe it was temp problem on Netvibes server because it works fine now. Can you confirm?

carmenfdezb's picture

You are right, it works fine again. Thank you!

osetr's picture

Hi! Doesn't work on SFOS 4 anymore. The error occurs when opening a subscription page:

[W] unknown:24 - file:///usr/share/harbour-kaktus/qml
/FeedPage.qml:24:1: QML FeedPage: :10:
Cannot assign [undefined] to QString
[W] unknown:1283 - file:///usr/lib/qt5/qml/Sailfish/S
ilica/PageStack.qml:1283:13: QML AnimatedLoader: (fil
e:///usr/share/harbour-kaktus/qml/EntryPage.qml:23:1:
Type EntryDelegate unavailable
Page {
^, file:///usr/share/harbour-kaktus/qml/EntryDele
gate.qml:463:17: Cannot assign to non-existent proper
ty "busy"
busy: pocket.busy
^)
[W] unknown:412 - file:///usr/share/harbour-kaktus/qm
l/ControlBar.qml:412:18: Unable to assign [undefined]
to bool

mkiol's picture

Thanks for letting me know. Fixed in 3.0.1 release.

oxygenh's picture

Does not show article contents on Sailfish version OS3.4.0.24 - white screen. All other functions work normally. 

mkiol's picture

Thanks for the report but honestly I cannot reproduce this problem. It appears that everything works fine. I've tested it on few different SFOS phones. How can I generate this issue?

oxygenh's picture

mkiol, is it possible to add supporty for inoreader accaunt ?

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.

Pages