ElvishArtisan / rivendell

A full-featured radio automation system targeted for use in professional broadcast and media environments
197 stars 63 forks source link

Support dropbox metadata updates. #885

Closed dklann closed 12 months ago

dklann commented 1 year ago

We discussed this PR on the mailing list. I'm posting it with the hope that it will be merged sooner rather than later because of the added effort of keeping the database in sync...

ElvishArtisan commented 1 year ago

The --update-metadata flag doesn't seem to do anything. Regardless of whether I provide it or not, the parent's carts metadata get's changed to that of the latest import.

dklann commented 1 year ago

?! Wait. You're saying that importing an audio file via the dropbox mechanism updates metadata in an existing cart if you don't check the (new) box in the dropbox configuration?

I believe I understand what you're saying (in your comment), that running rdimport on the command line with or without --update-metadata sets metadata in the cart on first and subsequent imports.

My experience has been that rdimport behaves differently when used in --dropbox mode, and that specifying --update-metadata (by way of the checkbox in the dropbox configuration) causes the cart metadata to be updated. And without that option, metadata is ignored on subsequent imports.

ElvishArtisan commented 1 year ago

I think limiting the effect of --update-metadata to dropbox mode is inconsistent and confusing, especially as there's no language in the man page that mentions this limitation.

rdimport(1) is used for much more than just implementing dropboxes. Would it not make sense to have --update-metadata work equivalently in non-dropbox contexts?

dklann commented 1 year ago

I think limiting the effect of --update-metadata to dropbox mode is inconsistent and confusing, especially as there's no language in the man page that mentions this limitation.

rdimport(1) is used for much more than just implementing dropboxes. Would it not make sense to have --update-metadata work equivalently in non-dropbox contexts?

Yes! I like this idea! It confused me too when running rdimport from the command line and seeing metadata updates "just work".

I would be happy to take a stabe at modifing this PR to adjust rdimport accordingly. Or would you prefer a separate pull request?

ElvishArtisan commented 1 year ago

Feel free to add any needed changes to this PR.

You're right about rdimport(1) doing different things metadata-wise vis-a-vis dropbox vs. non-dropbox mode. The original implicit policy was just a Bad Idea on my part. A consistently applied --update-metadata option fixes this wart, letting users explicitly choose the policy they want applied, rather than the original design which guessed and (often) got it wrong.

dklann commented 1 year ago

OK. Besides tracking your changes, I've also updated utils/rdimport/rdimport.cpp to be more consistent in its handling of metadata. Let me know what you think!

ElvishArtisan commented 12 months ago

Merged to 'v4'. I updated the schema map in rddbmgr(8) to show schema version 371 as the beginning of the v4.1.x release series. I also bumped the schema version to 371 in 'lib/dbversion.h'.

Thank you!