Feat : Handling idle state
This commit is contained in:
@@ -334,8 +334,12 @@ export interface WatchSettings {
|
||||
username: string;
|
||||
pollIntervalMs: number;
|
||||
/**
|
||||
* Statuts bruts de l'API considérés comme « pas de flux public ».
|
||||
* Valeurs observées côté Stripchat : public, private, p2p, groupShow, idle.
|
||||
* Statuts bruts de l'API considérés comme « pas de flux public, mais le
|
||||
* streamer est toujours là ». Ils mettent l'enregistrement en pause sans le
|
||||
* clore : le flux est censé revenir.
|
||||
*
|
||||
* Énumération relevée sur l'API Stripchat : `public`, `private`, `p2p`,
|
||||
* `groupShow`, `virtualPrivate`, `ticketShow`, `idle`, `off`.
|
||||
*/
|
||||
privateStatuses: string[];
|
||||
/**
|
||||
@@ -417,7 +421,10 @@ export const DEFAULT_WATCH_SETTINGS: WatchSettings = {
|
||||
provider: 'stripchat',
|
||||
username: '',
|
||||
pollIntervalMs: 10_000,
|
||||
privateStatuses: ['private', 'p2p', 'groupShow', 'virtualPrivate', 'ticketShow'],
|
||||
// `idle` est le « revient bientôt » : le modèle est connecté (isOnline) mais ne
|
||||
// diffuse pas (isLive faux). Il relève de la pause, pas de la clôture — à la
|
||||
// différence de `off`, qui est une déconnexion franche.
|
||||
privateStatuses: ['private', 'p2p', 'groupShow', 'virtualPrivate', 'ticketShow', 'idle'],
|
||||
confirmations: 2,
|
||||
pauseOnPrivate: true,
|
||||
resumeOnPublic: true,
|
||||
@@ -861,7 +868,13 @@ export function stripchatProfileUrl(username: string): string {
|
||||
*
|
||||
* Le champ autoritatif est `user.user.status` sur
|
||||
* `/api/front/v2/models/username/{pseudo}/cam`. Valeurs relevées en production :
|
||||
* `public`, `private`, `p2p`, `groupShow`, `idle`.
|
||||
* `public`, `private`, `p2p`, `groupShow`, `virtualPrivate`, `idle`, `off`.
|
||||
*
|
||||
* Deux champs voisins prêtent à confusion et ne doivent pas servir ici :
|
||||
* - `offlineStatus` est le message d'absence libre du modèle. Il reste
|
||||
* renseigné pendant qu'il diffuse : il ne dit rien de l'état courant.
|
||||
* - `isLive` / `isOnline` distinguent `idle` (connecté, ne diffuse pas) de
|
||||
* `off` (déconnecté), ce que `status` exprime déjà.
|
||||
*
|
||||
* Mutualisé entre l'agent (pause automatique) et le serveur (veille) : une seule
|
||||
* définition de l'endpoint et du chemin du champ à maintenir.
|
||||
@@ -928,6 +941,6 @@ export function mapStreamStatus(raw: string | undefined, privateStatuses: string
|
||||
const value = raw.toLowerCase();
|
||||
if (privateStatuses.some((status) => status.toLowerCase() === value)) return 'private';
|
||||
if (value === 'public') return 'public';
|
||||
// idle / off / offline / deleted : le modèle ne diffuse pas.
|
||||
// off / offline / deleted / notFound : le modèle n'est plus là du tout.
|
||||
return 'offline';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user