Kaktus

Rating: 
4.944445
Your rating: None Average: 4.9 (18 votes)

Multi aggregators mobile feed reader

Kaktus requires backend service (an aggregator). Currently following RSS aggregators are supported:

  • Netvibes
  • Old Reader
  • Tiny Tiny RSS

Features

  • Works in sync mode, so network connectivity is not required all the time
  • Reader view (similar to Firefox's Reader view) and Night view options
  • Articles caching and offline mode
  • Integration with Mozilla's Pocket

Translations

All translations are very welcome. There are three ways to contribute:

Source code

Bugs reporting, Feature requests

Any comments, issue reports are highly appreciated.

Screenshots: 
Application versions: 
AttachmentSizeDate
File harbour-kaktus-3.0.4-1.armv7hl.rpm877.62 KB13/02/2022 - 17:48
File harbour-kaktus-3.0.4-1.aarch64.rpm888.35 KB13/02/2022 - 17:48
File harbour-kaktus-3.0.4-1.i486.rpm937.77 KB13/02/2022 - 17:48
File harbour-kaktus-3.1.0-1.aarch64.rpm919.38 KB07/05/2022 - 20:42
File harbour-kaktus-3.1.0-1.i486.rpm969.61 KB07/05/2022 - 20:42
File harbour-kaktus-3.1.0-1.armv7hl.rpm910.29 KB07/05/2022 - 20:42
File harbour-kaktus-3.1.1-1.armv7hl.rpm910.76 KB14/05/2022 - 20:26
File harbour-kaktus-3.1.1-1.aarch64.rpm920.3 KB14/05/2022 - 20:26
File harbour-kaktus-3.1.1-1.i486.rpm970.44 KB14/05/2022 - 20:26
Changelog: 

3.1.1 (harbour release)

  • Better zoom control in web view (fix)
  • Spanish, French, German, Dutch and Czech translations update

3.1.0 (beta)

  • Improved web viewer (instead of WebKit, Gecko is used)
  • Improved Reader view
  • Sandboxing permissions enabled

Comments

b100dian's picture

Great webview update, thanks!

mkiol's picture

glad you like it :)

carmenfdezb's picture

Last version is amazing, thank you for the update!!!

mkiol's picture

I'm super glad you find Kaktus useful. BTW, thank you for maintaining Spanish translation <3

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.

Pages