Only one entry in database for episodes with same download URL, but different guid
I'm debugging the syncing state of a few curious feeds with Kasts. There seem to be a few feeds which have duplicate entries of the same episode. These episodes have the same title, enclosure URL, description, but a different GUID. Those are probably some leftovers from the past in which they've accidentally added the same episode twice.
Anyway, when I'm marking all episodes of such a podcast on one device, then sync it across to another device using nextcloud-gpodder, then it turns out that only one of the duplicate episodes is marked as played on the second device. I've also checked the nextcloud-gpodder db table, and I can only see one entry.
If I then manually mark the second episode as played, and sync the state across, then the entry for the first episode disappears in the db table and gets replaced by an entry for the second.
I'm assuming that nextcloud-gpodder is still using the episode download URL as a "unique" column, even though you also have the guid in the table? Is that correct?
If so, are there any plans to change this in the near future? Or do you want to keep it that way to stay aligned with the original gpodder API? I'm just asking so I know how to deal with this on Kasts' end. I'm fine with either approach.
Yes, this is correct. If no GUID is passed, gpoddersync will work just like gpodder.net and if one is passed, it will use the GUID as identification. And since Antennapod passes the GUID for sync and Kasts<--->Antennapod sync works, it works if only one sync endpoint passes GUID.
In my opinion this won't change in the foreseeable future since it simplifies adding gpoddersync as an additional sync endpoint while allowing a more precise sync by GUID if implemented. What do you think, @thrillfall? Maybe we should document this behaviour in the README (that GUID is not necessary but leads to better sync results because it will be used as identification if available). I could formulate something for that.
Right, a note that guid supersedes the URL would be helpful