Giter Site home page Giter Site logo

decsync's Introduction

DecSync

DecSync (Decentralized Synchronization) synchronizes RSS, contacts, calendars, tasks and more without requiring a server. It uses a synchronized directory to synchronize the data. This can be done without a server by using for example Syncthing, but any other method like Google Drive or Dropbox also works.

DecSync can also be used to synchronize custom key-value mappings, but currently synchronization of RSS, contacts, calendars, tasks and memos is implemented using the following applications:

RSS

Contacts/Calendars/Tasks/Memos

To start using DecSync, all you have to do is install some of the applications above and synchronize the DecSync directories.

Technical

If you want to use DecSync in your own application, you can use the multiplatform library libdecsync.

The structure of the synchronized mappings used for RSS and contacts/calendars are described in rss.md and contacts-calendars.md.

Information about the design of DecSync, and how to apply it is given in design.md.

For details about the internal implementation, see spec-general.md.

Donations

PayPal

decsync's People

Contributors

39aldo39 avatar jonta avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

decsync's Issues

request for windows/ios rss implementation

First congrats on an awesome app you made!

I dont know if this is the right place, i would like to ask if its in the future an implementation with a windows or ios rss reader.

DecSync only updates once on Android, then folder gets stuck.

I'm having a problem with Android where the DecSync folder will only be updated once. I think the problem may have started because I updated my Chromebook to the latest version. I've attached a folder which was in use when the issue occurred. Sorry about the swearing in some of the entries. I was getting frustrated. :)

I tried upgrading the Android version to the latest, 1.2.3: didn't work.
I tried downgrading both to version 1.2.1, also backing up entries and resetting the folder a few times (also completely obliterating SyncThing pair and creating one under a new ID): didn't work.

Adding entries on the Chromebook side seems to always work. New files get added to the directory on DecSync sync. But Android will not pick them up, and Android won't add new files for its entries, even when manually forced.

DecSync.tar.gz

I'm thinking it could have to do with the spaces / %20 in the directory name for Android, but I'm not sure where that value comes from so I can change it.

I'm using Etar as my frontend on both systems, and I'm pretty sure it's adding the calendar entries correctly because if I use "Calendar Import / Export" app I can see the number of calendar entries increase.

app keeps crashing

Hello if I could kindly get some support.
Been using the app for almost a year without an issue but recently it just keeps crashing.
By removing files and putting them back in I've traced it down to the Calendars folder.

within the calendars folder I have 3 folders with: colID12345 (the 12345 are 3 different numbers)
I then have 2 folders with long alpha numeric code; ie. 32fdabc2-f7bf.... etc...

Now when I leave the long alpha-num folders ; decsyncCC from F-Droid; doesn't see any calendars...
and then I add the colID's it just crashes.
I'm really confused how to troubleshoot beyond this point

DecSync with Todo-txt specification is possible?

1. feature-name

DecSync with Todo-txt specification is possible?

2. feature-description

DecSync with Todo-txt

2.1 What is todo-txt?

  1. Your todo.txt is a plain text file. To take advantage of structured task metadata like priority, projects, context, creation, and completion date, there are a few simple but flexible file format rules.
  2. Philosophically, the todo.txt file format has two goals:
  • The file contents should be human-readable without requiring any tools other than a plain text viewer or editor.
  • A user can manipulate the file contents in a plain text editor in sensible, expected ways. For example, a text editor that can sort lines alphabetically should be able to sort your task list in a meaningful way.
  • These two goals are why, for example, lines start with priority and/or dates, so that they are easily sorted by priority or time, and completed items are marked with an x, which both sorts at the bottom of an alphabetical list and looks like a filled-in checkbox.

2.3 ui/ux: todo-txt spec

image

3. Why?

Both work with plain text file

4. References

Allow for directory merging in app

With a recent update, DecSync appears to have stopped using the directory I've saved all of my stuff to, even though I selected the directory for it to use when it asked. I've added events since then without noticing the issue, and now I'm stuck with trying to juggle those events between either import-exports from calendar apps, or offline calendars so that I can change the directory and move them all back to my actual DecSync folder again. It's a pain in the arse, and I just want to merge folders, but I don't know if just copy-pasting them together will break anything or not.

V1 clearing

Dear @39aldo39 ,
I've been looking for this information without success.

I understand that the new protocol version v2 will overcome some shortcomings, namely more efficient data storage with a lower number of files.

I would like to clean my syncing directory.
When all my devices are updated to the new version, can I somehow clean the file structure? I have more than 5000 files to sync and syncthing scales with the number of files...

At the moment I'm using DecSyncCC and Radicale-DecSync.

Add encryption specification

There is no standard way to encrypt the database. As a result, all applications that have access to the disk can read the data there, even if they don't need to access the database.

This is also required if cloud is used for synchronization, such as Nextcloud, Seafile or Dropbox.

See previous discussion at #3

Independent bridge

First off, thanks for creating this amazing way to sync contacts and calendars all locally. It's very convenient to be able to do that, but it could be improved. Currently your only option for using DecSync across all desktop platforms is by using a Radicale plugin. This is not a good user experience since you have to use a third-party piece of software to get your contacts and calendars syncing. It would be nice if DecSync had an independent bridge for desktop either inspired by or forked from EteSync, that would run in the background and simply output CalDAV and CardDAV URLs to use in your apps. I mentioned EteSync since they also had a similar approach with a Radicale plugin and then decided to create their own little application instead. Something along the lines of this would be more user friendly and provide a better experience for DecSync as whole. Thanks for your work on this project and I hope it continues to improve!

How to completely remove sync nodes?

What is the preferred way to completely remove the traces of a sync node?

Use case: I sometimes create Radicale nodes for desktop. At some point, I'd like to completely remove any references to these nodes from the data files.

So far I've done that manually. Not sure if the stale records, from the nodes which no longer sync, may cause any issues in the future, in case the names are duplicate or something like that.

[Suggestions] Newsboat Integration + More Documentation

First of all, I want to thank you for this excellent program. I was literally looking for days for something that integrated my calendar and contacts between my Android and computers with Syncthing. I couldn't believe there wasn't something on Android that would let me just live-edit a ics file, but this is literally just what I was looking for. I can't believe how many times I scrolled past it on F-Droid

A suggestion: newsboat is an excellent minimalist RSS reader, personally I find FeedReader to be a bit bloated myself, but it does the job. I'm not sure how difficult implementing it would be, but I feel due to newsboat (seemingly) simple nature it could be easier than other programs. I'm pretty pretty entry level with programming, but I'd be more than happy to do what I could to try and help you out even if it was just testing builds.

Second, I'm having a bit of trouble getting figuring out how to sync between my phone, laptop, and desktop. I can create the calendars in Evolution and get them running on my Android fine, but having an additional computer work with it seems tricky. I can't seem to find a way to import an already existing DecSync calendar into a new instance of Evolution. The only options I can find would create a new calendar entirely, not edit the current one.

Again, thank you for the excellent plugins. I'll be sure to throw you a couple bucks when I can.

App crashes with no helpful message if DecSync folder exists before installing

I got a new Android device with LineageOS 16 with MicroG. I set up SyncThing and synced my folders first. This of course included the DecSync folder.

Then I installed DecSync for Android, but every time I tried to open it it crashed immediately. I did adb logcat to figure out what was going on and saw that the error was:

AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{org.decsync.cc/org.decsync.cc.MainActivity}: java.io.FileNotFoundException: /storage/emulated/0/DecSync/.decsync-info (Permission denied)

oh, so I hadn't given it storage access permissions yet. I went into the Android settings and gave it those, and it works now. Easy fix, but it was very unclear what the problem was and without my computer and adb I wouldn't have figured it out.

DecSync should probably check for those permissions before crashing like this.

Scalability

This is a great idea, thanks for sharing.
I'm mostly worried about the size of new-entries which, according to my understanding, is always growing, containing the whole history of the database.
Is there a plan to introduce some mitigation of this?

Duplicate entries in Evolution

Hi there,

I am using DecSync on Android and Arch Linux. I use Syncthing for two-way synchronization and it works. However, on Evolution side I have duplicates which do not follow the changes on Android. I guess those are perhaps from my early experiments trying to run DecSync. I checked the decsync folder and there are multiple entries for Evolution such as:

funbox-Evolution-33199  funbox-Evolution-65237 funbox-Evolution-50704

Should I know which folder is relevant and which one I can delete?

Thanks in advance for any tips.

Trouble using SD card

Many thanks for this app.

By default, at least on my phone, it uses /storage/emulated/0/DecSync, which is stored on the phone built-in memory. I wanted to change it to store on microSD instead, which on my phone appears as /storage/1443-10E3

First problem (apologies if putting multiple problems in one issue is undesired. I can split if required, but wasn't sure whether they might be linked):

I could browse to /storage/1443-10E3 within DecSync CC settings OK, but if I tried to create a folder within there using the top-right button I get an error: "Failed to create folder".

No problem I thought, I'll create a folder using a file manager, then browse to that folder in DecSync CC, which seemed to work.

However, now if I try to create a Calendar or Contacts collection, the app will crash: "DecSync CC has stopped", with a Restart app button. Looking in the folder in a file manager, nothing has been created.

Third problem: I thought "Oh well, seems like the app doesn't want to work with microSD, I'll change it back to default", but in DecSync CC settings I cannot change the folder back to /storage/emulated/0/DecSync. Specifically, I can browse to /storage/emulated but there is no "0" folder in there.

I managed to get round the last problem by deleting the apps settings in Android Settings, Apps, and the app seems to work OK using the internal storage - I can create calendar and contact collections with no errors for example. But still the problem remains of not being able to use microSD.

My phone is a Sony Xperia Z5 Compact running Android 7.1.1.

Many thanks again for this app.

DecSync CC does not automatically synchronize on incoming file changes

I have two mobiles, both with DecSync CC and Syncthing. They both use the same DecSync calendar account. Also, they both synchronize on a common server.
Any time I change any item in one of the two calendars it gets synced to my server after some seconds, so this part (automatic sync on outgoing calendar changes) is fine.

However, the calendar of the other mobile doesn't get updated automatically; I have to force it by manually pressing the "refresh" button in DecSync.

Failed to load storage module 'radicale_storage_decsync': libdecsync: A 64bit platform is required evon on a 64bit Kernel

On a raspberry pi 3+ (Linux raspberrypi 5.10.52-v8+ #1441 SMP PREEMPT Tue Aug 3 18:14:03 BST 2021 aarch64 GNU/Linux). Starting radicale-DecSync this error occurs:
[8569] [CRITICAL] An exception occurred during server startup: Failed to load storage module 'radicale_storage_decsync': libdecsync: A 64bit platform is required. Found '32bit'.

Steps to reproduce:
uname -a
Linux raspberrypi 5.10.52-v8+ #1441 SMP PREEMPT Tue Aug 3 18:14:03 BST 2021 aarch64 GNU/Linux

pip3 install radicale_storage_decsync
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting radicale_storage_decsync
Using cached https://www.piwheels.org/simple/radicale-storage-decsync/radicale_storage_decsync-1.2.2-py3-none-any.whl
Collecting radicale>=3 (from radicale_storage_decsync)
Using cached https://files.pythonhosted.org/packages/ca/62/29ba76472b5115affa124945ced26244b32d31e4a102aa7ba824416109ae/Radicale-3.0.6-py3-none-any.whl
Collecting libdecsync>=1.3.1 (from radicale_storage_decsync)
Using cached https://www.piwheels.org/simple/libdecsync/libdecsync-1.7.1-py3-none-any.whl
Collecting defusedxml (from radicale>=3->radicale_storage_decsync)
Using cached https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl
Collecting python-dateutil>=2.7.3 (from radicale>=3->radicale_storage_decsync)
Using cached https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl
Collecting vobject>=0.9.6 (from radicale>=3->radicale_storage_decsync)
Using cached https://www.piwheels.org/simple/vobject/vobject-0.9.6.1-py3-none-any.whl
Collecting passlib (from radicale>=3->radicale_storage_decsync)
Using cached https://files.pythonhosted.org/packages/3b/a4/ab6b7589382ca3df236e03faa71deac88cae040af60c071a78d254a62172/passlib-1.7.4-py2.py3-none-any.whl
Collecting six>=1.5 (from python-dateutil>=2.7.3->radicale>=3->radicale_storage_decsync)
Using cached https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl
Installing collected packages: defusedxml, six, python-dateutil, vobject, passlib, radicale, libdecsync, radicale-storage-decsync
Successfully installed defusedxml-0.7.1 libdecsync-1.7.1 passlib-1.7.4 python-dateutil-2.8.2 radicale-3.0.6 radicale-storage-decsync-1.2.2 six-1.16.0 vobject-0.9.6.1

python3 -m radicale --config "~/.config/radicale/config"
[2021-08-13 14:02:40 +0200] [8569] [CRITICAL] An exception occurred during server startup: Failed to load storage module 'radicale_storage_decsync': libdecsync: A 64bit platform is required.

Select cloud storage as directory

EDIT: Sorry, I think I created this issue in the wrong place. 39aldo39/DecSyncCC#45

It appears that many/most/all cloud storage solutions are embedded into the file browser in Android. (?) (for example pcloud) This allows you to browse and use the cloud storage like a regular folder on your device.

It would be great if I could set my cloud storage as DecSync directory. This would eliminate the need for a separate sync app for many users, as most cloud storage apps don't allow for mobile sync and in many cases not even backup besides photos and videos.

The password manager Keepass2Android supports this for its password database, if you need a code example https://github.com/PhilippC/keepass2android . I don't know anything about Android development, but it appears one only has to adjust the folder picker code?

Thanks for this app. It's much better than running a separate CardDAV/CalDAV server just to sync a few bits of text.

Thunderbird Bridge?

Hi!

First, apologies if this is not the right place. This is the "main" repo, so a suggestion for yet-another-bridge may fit here.
As there is already an Evolution plugin, having a plugin for Thunderbird may seem redundant. However, Thunderbird is a multi-platform application, unlike Evolution. While I have Evolution on my home Linux box, working on a Windows workstation leaves me hanging.

Radicale plugin may be a solution but I have experienced some weird issues with spewing (binary) parts on an SQLite database into the DecSync files.
Anyways, this is just to check how difficult do you find creating a Thunderbird plugin. Otherwise, going through the standard (DAV) interface is probably a better idea, anyways.

Cheers and thanks for implementing this great idea of allowing the personal information to be serverless again!

flat data structure with plain ics and vcf files

I can't understand the data structure, why didn't you use a plain data structure as khal and khard with vdirsyncer ?

I expected DecSync to be compatible with those. I wanted to be able to replace vdirsyncer static sync that uses DAV with decsync + syncthing. I like the way khal/khard let me manage plain files, to keep cross compatibility, it just sync ics and vcf files with a simple dir structure.

Evolution DecSync

➜ tree share/docs/decsync 
share/docs/decsync
└── calendars
    ├── colID14643
    │   ├── local
    │   │   ├── osz-Evolution
    │   │   │   └── info
    │   │   └── osz-Evolution-96506
    │   │       ├── info
    │   │       └── sequences
    │   └── v2
    │       ├── osz-Evolution
    │       │   ├── info
    │       │   └── sequences
    │       └── osz-Evolution-96506
    │           ├── 39
    │           ├── info
    │           └── sequences
    └── colID15653
        ├── local
        │   └── osz-Evolution-29453
        │       └── info
        └── v2
            └── osz-Evolution-29453
                ├── info
                └── sequences

13 directories, 11 files

➜ cat share/docs/decsync/calendars/colID14643/v2/osz-Evolution-96506/39
[["resources","4bf1df818e053d2587f14f08da81c18e9764dad2"],"2021-12-28T10:12:53",null,"BEGIN:VCALENDAR\r\nCALSCALE:GREGORIAN\r\nPRODID:-//Ximian//NONSGML Evolution Calendar//EN\r\nVERSION:2.0\r\nBEGIN:VEVENT\r\nUID:4bf1df818e053d2587f14f08da81c18e9764dad2\r\nDTSTAMP:20211228T100737Z\r\nDTSTART;TZID=/freeassociation.sourceforge.net/Europe/Paris:\r\n 20211228T120000\r\nDTEND;TZID=/freeassociation.sourceforge.net/Europe/Paris:20211228T123000\r\nSEQUENCE:2\r\nSUMMARY:Test\r\nTRANSP:OPAQUE\r\nCLASS:PUBLIC\r\nCREATED:20211228T101253Z\r\nLAST-MODIFIED:20211228T101253Z\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n"]

khal

➜ tree khal
khal
├── anniversaires
│   ├── a50d49fb-9812-401d-a8c8-584cb0531a08.ics
│   ├── aa6efc11-02a1-4d7c-960c-c62a071594a3.ics
│   └── ffdaf9d2-cc84-444c-bcbc-c274b9b5f646.ics
├── home
│   ├── 004a79fc-72c3-47b0-b21d-ed810457655e.ics
│   ├── fd2b182e-bf75-43a8-a455-4658257a11a1.ics
│   └── FDA6A018-28D1-4447-A026-E7C9031B0F1F.ics
└── tasks

khard

➜ tree khard
khard
└── contacts
    ├── 02591900-045D-45E3-B3A0-7EBA96565B82.vcf
    ├── 03A4088F-93F6-480E-8226-56EE138141BE.vcf
    └── 066de82a-281b-478b-ad35-510e78877d7f.vcf

Is this app still active?

Hi, I hope I'm not interfering too much, but I just wanted to check if this app is still actively worked on (re bug fixes) and if not, if there is any active forks/similar apps?

Thanks. I appreciate all your work so far, it's excellent. :)

Include timestamps in RSS "articles/read"

I want a record of when I read each feed entry, not just a boolean indicating that I have read it, and I want that record synchronized between readers. Could you add that to your spec?

Thunderbird add-on

Hi, is a Thunderbird version planned for the future?
Great job by the way!

Bridge to flat files/folders

Feature suggestion. A generic solution to enable DecSync for more applications would be a bridge to vcard/ical files and/or folders of vcards/icals.

This would address the apps that leverage those formats but don't have a CalDAV/CardDAV capability and would be an alternative to Radicale for applications like Thunderbird. The trick would be to ensure each local application has it's own dry of files/folders.

The negative of Radicale for me is multiple local apps on my PC are seen as a single instance on DecSync leading to possible sync conflicts between those apps in Radicale. It hasn't been a problem yet, but this was a reason I'm looking to move away from DAV servers.

If this is interesting, it will probably need support for a single file per calendar/addressbook for some apps (Thunderbird, Orage), and a folder with a file per event/contact for other apps (khal, khard). That in itself would be useful on a single PC to synchronize between the two storage types.

Negative would be the amount of duplication - but the files are relatively small.

Thanks

Please add feature to import contact and calendars

Adding my 10000++ contact to the app one by one is impossible.

If there a way to import contact / calendar from text / vcard / vcf files or from mobile / google contact is highly appreciated.

(´ ∀ ` *)

Renan

[Request] Make it possible to sync standard .ics and .vcf files

I need DecSync only for automated calendar/contacts backup, not necessarily for synchronization to another app. But due to DecSync's format I have to manually concatenate specific files to have a usable .ics or .vcf file ready to import somewhere. So, I would be grateful if you allowed to also keep standardized, whole .ics and .vcf files in sync directory in addition to only single-entry folder tree.

v2 Draft Status

Howdy!

I'm curious if there's an update about the version two spec. I'm in the process of drafting (no promises, just testing the water atm) a rust implementation of decsync, but I'm not sure how I should handle the version 2 spec. As I see it, my options are:

  • Implement v2 completely & by default
  • Add support, but use v1 by default
  • Don't implement v2, but leave the framework modular enough to support a non-backwards-compatible change
  • Focus exclusively on adding v1

Since it seems like most other apps use the v1 format, I'd normally lean towards the second option, but it seems like the v2 draft has been stagnant for a considerable amount of time, with most apps not using it.

I'm curious about when you predict the v2 spec will be officiated, and more importantly, implemented in official libs, especially since it seems like apps programmed without v2 support will be unable to read v2 collections, so before any v2 collections can be created, most of the implementations need to be able to read from it.

Thank you for the help!

Suggestion: Focus on Creation of Bridge Microservers

Hey there, Been using DecSync for a while and i think it has the potential to be a huge game changer in serverless peer to peer computing.

Currently DecSync implementation is focused on implementing the libdecsync library into various applications like spaRSS, Flym, evolution and so on.

My suggestion would be instead to focus instead on bridging microservers. These microservers would basically be background services running locally on desktops and mobile devices. They would connect to a decsync folder and expose standardised or common service APIs that other applications on the device could connect to. This would allow decsync to be supported on any application that supports these APIs without needing to build in specific decsync code into each application.

For example, RSS feeds in DecSync are currently handled by a custom fork of FeedReader and spaRSS (now Flym). What if instead, a microservice app was created for desktop and mobile devices that could connect to the decsync folder and expose a common RSS API, like Fever or NewsBlur or TTRSS instead. Then any RSS application on these devices that support those APIs could connect to the microserver and use DecSync.

This bridge microserver architecture is already used by DecSyncCC and Radicale (both implementing CalDAV). My suggestion would be to focus on this architecture for other services like RSS.

What are your thoughts?

Changes in desktop don't sync to Android

I've been using the radicale plugin with Thunderbird to sync with the android app, but only recently I've realized that basically none fo the changes are reflected on mobile. I've tried copying, changing details, creating a new event, etc. I've tried both with the stock apps and third party apps, none show anything. I removed the authentication from the radicale server too.

Only erasing an event created on mobile is reflected.

Same with tasks, no idea with contacts.

Race Condition in Protocol

Because most file sync protocols can process files in parallel and/or in random order, there is a race condition in the protocal, that might lead data not beeing synchronized.

The protocol specifies (and reference implementation implements): if the sequence file of an application indicates a change of an entry file, then the following will happen:

  • Execute all the new entries.
  • Update the sequences file in our local directory.

However, if the sequence file is synchronized and processed, before the corresponding entry file is synchronized the following will happen:

  • No new entries will be found.
  • The update of the sequence file in the local directory will prevent the (future) processing of the eventually updated entry file.

To my understanding this race condition cannot be detected with the current protocol version, because there is no link between entry sequence and entry contents. An extension of the protocol could make this race condition detectable by storing an entry file contents hash togehter with the sequence number in the apps sequence file. In this case the processig can be posponed until the entry files content hash matches the hash stored in the current sequence file.

Make it possible to control application permissions

Currently every app that uses DecSync requires storage permission (on Android). If I use DecSyncCC and DecSync-capable RSS reader, the RSS reader is able to access my contacts. Same for every application that can access my storage for whatever reason.

Instead, there should be a "keyring" application, similar to OpenKeychain, which can allow or deny access to various parts of the key-value store to applications. All other applications should use it to request access to a particular namespace.

Only Syncthing and the "keyring" application should have access to the raw storage. Not sure how to achieve it without Syncthing modification, need input from Android developers.

Newsflash integration

First of all, thanks a lot for your awesome program, I'm using it to sync RSS feeds between my phone and my Linux desktop. Related to that, I was wondering if you considered supporting the "spiritual successor" to FeedReader, Newsflash. It's made by the same devs, and they are currently looking for services maintainers: https://gitlab.com/news-flash/news_flash_gtk

"Read" status not synced

I'm using SpaRSS DecSync together with FeedReader, connected to the same DecSync folder.

When I mark certain item as read in FeedReader, the same item is still marked as unread in SpaRSS, even after refreshing multiple times.

Is this functionality not implemented, or I misconfigured something?

Using Android default file manager

Hello and thank you very much for this awesome APP.

Is it possible to change the file manager to use android's default?

This way it would be possible to store the calendar/contacts inside of veracrypt containers mounted on the system, improving a lot the security.

[Specification proposal] Webcal subscription

Some calendar app and caldav support external calendar subscription.
It can save an URL for icalendar resource (.ics) on web.
for example: webcal://www.calendarlabs.com/ical-calendar/ics/76/US_Holidays.ics

I have two idea for specification.

  • type A: decsribe one collection. similar to contacts-calendars.
  • type B: describe two collection. simple and distributed keys.

Draft type A

Path

DecSync
├── webcals
│   └── colID12345
│       ├── local
│       │   ├── appId1
│       │   │   ├── info
│       │   │   └── sequences
│       │   └── appId2
│       │       ├── info
│       │       └── sequences
│       └── v2
│           ├── appId1
│           │   ├── info
│           │   └── sequences
│           └── appId2
│               ├── info
│               └── sequences

Mappings

["info"]

  • key: "name"; value: String, name of the collection.
  • key: "url"; value: String, pointing a webcal address.
  • ley: "subscription"; value: Boolean, indicating the subscription status of the feed.
  • key: "color"; value: String with format "#rrggbb", indicating the color of the calendar.

Draft type B

Path

DecSync
├── webcals
│   ├── local
│   │   ├── appId1
│   │   │   ├── info
│   │   │   └── sequences
│   │   └── appId2
│   │       ├── info
│   │       └── sequences
│   └── v2
│       ├── appId1
│       │   ├── info
│       │   ├── 00
│       │   └── sequences
│       └── appId2
│           ├── info
│           ├── 00
│           └── sequences

Mappings

["names"]

  • key: String, URL of the webcal.
  • value: String, Name of the webcal.

["subscriptions"]

  • key: String, URL of the webcal.
  • value: Boolean, indicating the subscription status of the feed.

["color"]

  • key: String, URL of the webcal.
  • value: String, value: String with format "#rrggbb", indicating the color of the calendar.

Recovering From Another Device's Data

My contacts collection got wiped after moving to a new device - I notice that the encrypted data from another device is still there, can I recover that data?

podcasts subscriptions

Have you thought at all about syncing podcast subscriptions? Perhaps with antennapod on android and gpodder on linux? I think podcast subscriptions are just rss feeds so it might not be too hard?

Multiple lines read as text in /DecSync/calendars error

Hi!
I create events with Tasks (Tasks.org) and synchronize them with decsync. However, for the past few days I have been constantly getting this error notification "Multiple lines read as text in /DecSync/calendars/...". If I try to delete it (by swiping), it reappears after a few minutes, it's really annoying. I would like to try to fix the problem but I don't understand what the error is.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.