-
Notifications
You must be signed in to change notification settings - Fork 210
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support for DecSync #381
Comments
I wouldn't compare DecSync with TT-RSS and other such services, since DecSync only stores a part of the metadata (see their RSS doc). TT-RSS stores everything, and it also fetches things even if Newsboat is offline. Given users will have to synchronize DecSync's directory anyway, I don't see why they won't synch their cache.db and urls files directly. This gives them the same benefits that DecSync does, plus they don't have to fetch articles multiple times (and thus don't risk losing some from the high-volume feeds). @Hund, can you please list some specific problems of yours that would be solved if Newsboat started supporting DecSync? |
I meant it was an alternative to TT-RSS. I know that TT-RSS outperforms DecSync in terms of functionality several times over. :) So you can sync the files If I can use the same database across different instances of Newsboat that's running and writing to them at the same time, well, then there's no need fo DecSync. :) |
But If I share the same database, they'll still update the feeds twice as much as with TT-RSS or DecSync. Which will cause a lot of unnecessary read and writes. |
Sorry, why did you close the issue? I'll reply anyway, and if you want to continue the discussion, please re-open this. I don't this it's resolved yet.
Ah, no, that's not possible. Theoretically we could implement multiple read-only access. Writes are much harder, since we'll need conflict resolution and a way to notify other Newsboats of the change (which is a big change architecture-wise, because Newsboat doesn't expect the cache to change under it).
That can be fixed: we can add a "last updated" field to the database. Newsboat will check it ocasionally, and if it's older than the I'd really like to see a list of problems that can be solved with multiple clients running simultaneously. Can't assess the importance without it. |
You may open it up if you want to. But I decided to stick with TT-RSS. It worked okay when I was just using Newsboat on two computers, but I missed reading the news on the phone. :) |
I support this! DecSync is surprisingly powerful. I've got a setup on two computers + my phone that works seamlessly. I'd love to switch back to using newsboat but I'm hung up on DecSync |
DecSync doesn't look like any of the other APIs we support, so I'm not quite sure where to fit it in the current scheme of things. |
I'm trying to understand how Newsboat handles syncing. My current understanding: Newsboat gets the subscribed URLs from the syncing service at startup, but it doesn't support changing this list. However, it looks like you can subscribe locally to additional URLs by adding them to a file. Every time an article or feed is marked as (un)read, Newsboat sends this to the syncing service. However, I don't understand how changes are sent back. Some services have a special |
Newsboat gets the subscribed URLs from the syncing service at startup, but it doesn't support changing this list.
Yup, that's correct. There is #106 about the editing part.
However, it looks like you can subscribe locally to additional URLs by adding them to a file.
I believe only query feeds can be added this way. Query feeds aggregate items from "normal" feeds; for example, one can have a query feed of all unread items, or a query feed of items from sports-themed feeds. This is a local thing, Newsboat doesn't synchronize the state of query feeds with the remote feeds (because that's unnecessary).
Every time an article or feed is marked as (un)read, Newsboat sends this to the syncing service.
Yes.
However, I don't understand how changes are sent back. Some services have a special fetch_feedfunction (Tiny Tiny RSS, Newsblur and Nextcloud), which could have this information attached. But how does this work for the other services?
Indeed, these three return an array of items, each item having an unread flag. These special methods are used in src/rssparser.cpp. When Newsboat tries to fetch a feed, RssParser either uses a special method of the current remote API, or just fetches and parses the feed directly.
For other services, this only works one way: from Newsboat to the service. Newsboat won't know if an item was already read somewhere else.
Now that I think about it more, it appears that DecSync does fit with the second category, and we can even improve the sync there if we hack RssParser further: for these services, it can fetch the feed directly and then ask the service for metadata of each item. Does that make sense to you?
…--
Regards,
Alexander Batischev
|
That makes sense to me! Indeed, syncing from Newsboat to DecSync should be straightforward (regarding the APIs). For the other way around, it is a bit different. Currently the DecSync API assumes that every stored entry corresponds to a 'global' action in the application. For example, if an article is read, you give a function that marks the article as read in the database. However, in Newsboat the 'plugin' doesn't have directly access to the database. Maybe this can be made possible, or I could add the feature to get the stored entries directly. |
I'm not sure I understand this correctly. Judging by libdecsync-android, I just create a single |
Also, with discussion revived, it's high time to re-open the issue. |
Sorry, I didn't explain it very well. I was talking about getting changes from DecSync to Newsboat. However, rethinking it a bit there isn't really a problem, you can ignore that paragraph. Also, I had some time and motivation, so I actually started with an implementation in #462! It doesn't fully work yet and there are a few workarounds, but it's mostly done. |
I'm still curious what you meant :) Reading libdecsync-vala right now, it appears that it can call back into the application upon different events (e.g. a sync ends or a new entry appears). That's indeed in conflict with how Newsboat operates. However, it seems like the library can be used as, well, a library rather than a framework, so there isn't a problem here, really. Is that understanding correct, @39aldo39? |
Ok, I will elaborate a bit more :) Let's say we also want to get the read statuses from DecSync to Newsboat. The way to do this with libdecsync-vala, is to call However, there is an |
Is this feature currently planned to be added at some point? I hope this question will not come across as prodding or entitled. Rather I am curious and I would also like to express my support for the request. Thanks! |
#668 implements reading half of the functionality via a shared libdecsync library. Write support (marking articles read etc.) is still lacking because Newsboat doesn't have a rich enough API. I'm putting this feature on hold for now because I don't want to add a new dependency just yet; see #668 (comment) for a bit more info on this. |
Hi. My 2c: I miss a feature to synchronize read status between machines. I think that Syncthing-powered cache folder synchronization would be a big step forward because it is very generic, a kind of 'just works' technology. |
There are already a couple apps on android that support DecSync thanks to the creator of it who got them up and running! I just comment to show there is still some interest :P |
Quoted from their repository:
https://github.com/39aldo39/DecSync
It would be a neat thing to have. Things like TT-RSS is nice, but it eats resources llike crazy.
The text was updated successfully, but these errors were encountered: