discovery-media-player 0.1.108 → 0.1.110
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/server/presentations.js +1 -1
- package/server/schema.js +27 -4
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "discovery-media-player",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.110",
|
|
4
4
|
"description": "Self-hosted document viewer: per-recipient tracked links, reading analytics, live presentation. The core knows nothing about the application hosting it — everything it borrows arrives through an injected context.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"pdf-viewer",
|
package/server/presentations.js
CHANGED
|
@@ -1134,4 +1134,4 @@ async function listPresentationsForDoc(docId, email, isAdmin, autoriseLarge) {
|
|
|
1134
1134
|
module.exports = {
|
|
1135
1135
|
reacteurDepuisJeton,
|
|
1136
1136
|
purgerPerimees,
|
|
1137
|
-
messagePublic, CHAMPS_PUBLICS, cheminPieceJointe, init, createPresentation, getPresentation, setPage, endPresentation, addMessage, listMessages, toggleReaction, editMessage, deleteMessage, setChatLock, createUploadUrl, reclaimPresentation, touchPresentation, listActivePresentations, handoverPresentation, endPresentationByOwner, recordAttendance, presentationStats, listPresentationsForDoc, switchPresentationDoc, setPresentationContent };
|
|
1137
|
+
messagePublic, CHAMPS_PUBLICS, cheminPieceJointe, init, createPresentation, getPresentation, setPage, endPresentation, addMessage, listMessages, toggleReaction, editMessage, deleteMessage, setChatLock, createUploadUrl, reclaimPresentation, touchPresentation, listActivePresentations, handoverPresentation, endPresentationByOwner, recordAttendance, presentationStats, listPresentationsForDoc, switchPresentationDoc, setPresentationContent , STALE_MS};
|
package/server/schema.js
CHANGED
|
@@ -403,7 +403,20 @@ async function ajouterPresence(etat) {
|
|
|
403
403
|
// lecteur, dans six mois, c'est nous. On adjoint donc le nombre qui désambiguïse, comme
|
|
404
404
|
// `dontScellees` l'a fait pour `sansRang` : 0 actives + 0 avecJeton = repos ; N actives + 0
|
|
405
405
|
// avecJeton = ANOMALIE. (Précision du second hôte.)
|
|
406
|
-
|
|
406
|
+
// ⚠️ « ACTIVE » N'EST PAS « VIVANTE », ET LE DÉNOMINATEUR A BESOIN DE LA SECONDE. Une présentation
|
|
407
|
+
// dont le présentateur a fermé l'onglet sans clôturer reste `active = true` : la compter ferait
|
|
408
|
+
// annoncer « N actives et 0 avecJeton = ANOMALIE » alors que personne n'est parti nulle part. La
|
|
409
|
+
// fiabilité de ce nombre dépendrait alors de la DISCIPLINE DE CLÔTURE — et le second hôte, dont la
|
|
410
|
+
// clôture a été impossible trois jours durant (0008), est bien placé pour le dire : ses sept
|
|
411
|
+
// présentations sont inactives mais gardent toutes leur control_hash, donc aucune n'a été close
|
|
412
|
+
// proprement. Un dénominateur qui dépend d'une discipline humaine produit des anomalies fantômes.
|
|
413
|
+
//
|
|
414
|
+
// On réutilise donc LE seuil qui définit déjà « vivante » ailleurs dans le code — `STALE_MS`, le
|
|
415
|
+
// même que celui du balayage des présentations orphelines — plutôt que d'inventer un second
|
|
416
|
+
// nombre qui divergerait. Le présentateur bat toutes les 30 s (`present-touch`) : une présentation
|
|
417
|
+
// sans battement depuis trois minutes est abandonnée, pas silencieuse. (Relevé du second hôte.)
|
|
418
|
+
const vivantDepuis = new Date(Date.now() - require("./presentations").STALE_MS).toISOString();
|
|
419
|
+
const actives = await PLAYER.db.request(`doc_presentations?active=eq.true&last_seen=gt.${encodeURIComponent(vivantDepuis)}&select=slug${bornee}`);
|
|
407
420
|
const nActives = Array.isArray(actives) ? actives.length : 0;
|
|
408
421
|
// ⚠️ `couvre` VOYAGE AVEC LES NOMBRES, ET C'EST LE POINT. Le commentaire ci-dessus protège celui
|
|
409
422
|
// qui lit la SOURCE ; celui qui court un risque, lui, lit le JSON — dans six mois, dans un cockpit,
|
|
@@ -429,10 +442,20 @@ async function ajouterPresence(etat) {
|
|
|
429
442
|
// `avecJeton` qui prend le relais comme SIGNE DE VIE — nul pendant une présentation en cours
|
|
430
443
|
// veut alors dire que quelque chose est cassé.
|
|
431
444
|
couvre: (PLAYER.config && PLAYER.config.presenceStrict)
|
|
445
|
+
// ⚠️ LA RÈGLE PORTE SUR LE CAS PRÉSENT, PAS SUR UN GABARIT. Une première version injectait
|
|
446
|
+
// `nActives` dans une phrase écrite pour N > 0 et rendait, à N = 0 : « 0 active et 0 avecJeton
|
|
447
|
+
// = ANOMALIE ; 0 active et 0 avecJeton = repos normal » — une contradiction dans la même ligne.
|
|
448
|
+
// Formellement construite, fausse dans le cas du moment : exactement le défaut que ce champ
|
|
449
|
+
// existe pour éviter. On BRANCHE donc sur l'état réel plutôt que d'interpoler un nombre dans un
|
|
450
|
+
// texte générique — et au repos on annonce ce que le nombre voudra dire quand ça tournera.
|
|
432
451
|
? "jauge de transition PÉRIMÉE — porte fermée : sansJeton est structurellement nul et ne mesure "
|
|
433
|
-
+ "plus rien. Le signe de vie est avecJeton,
|
|
434
|
-
+ nActives
|
|
435
|
-
|
|
452
|
+
+ "plus rien. Le signe de vie est avecJeton, à croiser avec presentationsActives. "
|
|
453
|
+
+ (nActives > 0
|
|
454
|
+
? nActives + " présentation(s) en cours : avecJeton DOIT être non nul — " + nAvec + " observé"
|
|
455
|
+
+ (nAvec > 0 ? ", donc les présences s'enregistrent." : " : ANOMALIE, les présences ne s'enregistrent plus.")
|
|
456
|
+
: "aucune présentation en cours : avecJeton nul est le repos NORMAL. Le jour où une "
|
|
457
|
+
+ "présentation tournera, un avecJeton nul voudra dire que les présences ne s'enregistrent plus.")
|
|
458
|
+
+ " avecJeton inclut les bootstraps auto-déclarés — pas une preuve d'identité."
|
|
436
459
|
: "jauge-de-migration — sansJeton dit combien de clients ANCIENS battent encore (0 = on peut "
|
|
437
460
|
+ "fermer). Instrument de TRANSITION : après fermeture il vaudra 0 quoi qu'il arrive, et le "
|
|
438
461
|
+ "relais sera avecJeton croisé avec presentationsActives. "
|