Open saerdnaer opened 10 months ago
@johnjohndoe It's complicated... For a proper solution we should first think about the UI in which the speakers performs this choices... See https://git.cccv.de/hub/hub/-/issues/373#note_18383 for more information.
This PR was thougth as a first step for 37C3 Saal E (SoS Lightning)... but we probably won't find the time to do it properly this round...
I added a table with a first mapping between the JSON and XML variants to the pull request description
I am still struggling with the negation (do_not_..
) and the combination of recording and streaming. I feel this makes it unnecessary complicated for users of this API. Even if other related infrastructure parts handle these entities different I would decouple the API from these aspects (especially UI). Here is a proposal:
schedule.json | schedule.xml | Meaning |
---|---|---|
"has_recording": true , "has_live_stream": true |
<has_recording>true</has_recording> , <has_live_stream>true</has_live_stream> |
We enable the live stream and create a recording, which we publish without any additional approval by the speaker |
"has_recording": false , "has_live_stream": false |
<has_recording>false</has_recording> , <has_live_stream>false</has_live_stream> |
The speaker does not want a recording of any kind. We will remove all personnel, and maybe even switch off all cameras |
"has_recording": maybe , "has_live_stream": true |
<has_recording>maybe</has_recording> , <has_live_stream>true</has_live_stream> |
NEW: We are allowed to create a recording / enable the live stream; but the speaker can decide afterwards if we can publish it |
"has_recording": unknown , "has_live_stream": unknown |
<has_recording>unknown</has_recording> , <has_live_stream>unknown</has_live_stream> |
NEW: We don't know if a recording will exist and recommend all on-premise participants to attend the event in person |
As these fields would be new to the json/xml API clients could migrate at their own pace without being broken.
The problem is that we already have 'do_not_record': Boolean
in schedule.json and <recording><optout>true</optout></recording>
in schedule.xml – so we have/should somehow to be compatible with these exiting fields.
But yeah, we should stop with this asymmetry between the json and xml variants.
I imagine that adding semantic versioning to the schema, json, xml would allow to introduce new fields and also to deprecate and remove old fields.
relates to #117
"do_not_record": false
or"do_not_record": false, "do_not_stream": false,
|<recording>…<optout>false</optout></recording>
"do_not_record": true, "do_not_stream": true,
|<recording>…<optout>true</optout></recording>
"do_not_record": null, "do_not_stream": false,
|<recording>…<optout>maybe</optout></recording>
"do_not_record": null, "do_not_stream": null,
|<recording>…<optout>unknown</optout></recording>