Plateformes
Une plateforme, telle que décrite précédemment, est définie grâce à la classe Platform
exposée par le fichier JavaScript présent à l'adresse suivante :
https://obs.multistream.tools/v1/adapters.js
Ce fichier/module exporte également un certain nombre de constantes utiles à la modélisation des plateformes Facebook, TikTok, Trovo, Twitch et YouTube.
API
La signature TypeScript de la classe Platform
est la suivante :
type Id = string;
type Event = string;
type Alerts = Event[];
type Filters = {
alerts?: false;
chat?: false;
session?: true;
other?: true;
[key: Event]: false;
};
declare class Platform {
constructor(id: Id, alerts: Alerts, filters?: Filters, extraAlerts?: Alerts);
get id(): Id;
has(event: Event): boolean;
}
Paramètres
Chaque paramètre listé ci-dessous n'est plus modifiable une fois la plateforme instanciée (lecture seule).
L'id
d'une plateforme est un identifiant unique de type string
correspondant généralement au nom de la plateforme en question ; écrit en minuscules par convention. Par exemple 'twitch'
pour Twitch, 'youtube'
pour YouTube, etc.
Les alerts
d'une plateforme correspondent à la liste des événements de catégorie alerte que celle-ci supporte, désactivables par le biais de filters
. Il s'agit d'un array
dont chaque élément est de type string
, correspondant au nom d'une alerte donnée ; écrit en minuscules par convention. Par exemple 'subscriber'
pour un abonnement payant sur Twitch, 'sponsor'
pour un abonnement payant sur YouTube, etc.
Le paramètre optionnel filters
permet d'activer/désactiver certains événements normalement émis par la plateforme. C'est notamment utile lorsque vous modélisez une plateforme destinée à être réutilisée par d'autres développeurs, comme nous l'avons fait avec les plateformes pré-configurées listées ci-dessous. Il s'agit d'un object
dont chaque propriété porte le nom de l'événement que l'on souhaite activer/désactiver et la valeur true
ou false
selon si cet événement est désactivé ou activé par défaut.
Les événements activables/désactivables correspondent aux alertes d'une plateforme mais également à des catégories entières d'événements : session
, alerts
, chat
, et other
. Les événements de catégorie load
ne sont pas désactivables, ceux de catégorie session
ou other
sont désactivés par défaut. Ces catégories sont décrites sur la page dédiée aux adaptateurs.
import {
chat,
subscriber,
Platform,
Twitch
} from 'https://obs.multistream.tools/v1/adapters.js';
const customAlert = 'alert';
class CustomPlatform extends Platform {
constructor(...args) {
super('custom', [customAlert], ...args);
}
}
const customPlatform = new CustomPlatform({
[chat]: false,
[customAlert]: false
});
const twitchPlatform = new Twitch({
[chat]: false,
[subscriber]: false
});
Le paramètre optionnel extraAlerts
permet d'ajouter des événements de catégorie alerte à la liste de ceux émis par la plateforme. C'est notamment utile lorsque vous modélisez une plateforme destinée à être réutilisée par d'autres développeurs, comme nous l'avons fait avec les plateformes pré-configurées listées ci-dessous. Il s'agit du même type de données que pour le paramètre alerts
.
import {
Platform,
Twitch
} from 'https://obs.multistream.tools/v1/adapters.js';
const customAlert = 'alert';
const commonAlerts = ['alert1', 'alert2', 'alert3'];
class CustomPlatform extends Platform {
constructor(...args) {
super('custom', [customAlert], ...args);
}
}
const customPlatform = new CustomPlatform(undefined, commonAlerts);
const twitchPlatform = new Twitch(undefined, commonAlerts);
Propriétés
Il est possible de récupérer la valeur de l'id
d'une plateforme après sa création. Pour ce faire, il suffit d'accéder à la propriété (getter), nommée tout bonnement id
, présente sur une instance de la classe Plaftorm
.
import {
twitch,
Platform,
Twitch
} from 'https://obs.multistream.tools/v1/adapters.js';
const customPlatformId = 'custom';
const customPlatform = new Platform(customPlatformId, ['alert']);
console.log(customPlatform.id === customPlatformId); // true
const twitchPlatform = new Twitch();
console.log(twitchPlatform.id === twitch); // true
Méthodes
Il est également possible de savoir si une plateforme donnée supporte un événement spécifique en faisant appel à la méthode nommée has
présente sur une instance de la classe Plaftorm
. Cette méthode renverra true
si la plateforme en question est capable d'émettre l'événement souhaité ou false
si ce n'est pas le cas (ce dernier n'est pas supporté ou a été désactivé grâce aux filters
).
import {
alerts,
subscriber,
Platform,
Twitch
} from 'https://obs.multistream.tools/v1/adapters.js';
const customAlert = 'alert';
class CustomPlatform extends Platform {
constructor(...args) {
super('custom', [customAlert], ...args);
}
}
let customPlatform = new CustomPlatform();
console.log(customPlatform.has(alerts)); // true
console.log(customPlatform.has(customAlert)); // true
console.log(customPlatform.has(subscriber)); // false
customPlatform = new CustomPlatform({ [customAlert]: false }, [subscriber]);
console.log(customPlatform.has(alerts)); // true
console.log(customPlatform.has(customAlert)); // false
console.log(customPlatform.has(subscriber)); // true
customPlatform = new CustomPlatform({ [alerts]: false }, [subscriber]);
console.log(customPlatform.has(alerts)); // false
console.log(customPlatform.has(customAlert)); // false
console.log(customPlatform.has(subscriber)); // false
let twitchPlatform = new Twitch();
console.log(twitchPlatform.has(alerts)); // true
console.log(twitchPlatform.has(subscriber)); // true
console.log(twitchPlatform.has(customAlert)); // false
twitchPlatform = new Twitch({ [subscriber]: false }, [customAlert]);
console.log(twitchPlatform.has(alerts)); // true
console.log(twitchPlatform.has(subscriber)); // false
console.log(twitchPlatform.has(customAlert)); // true
twitchPlatform = new Twitch({ [alerts]: false }, [customAlert]);
console.log(twitchPlatform.has(alerts)); // false
console.log(twitchPlatform.has(subscriber)); // false
console.log(twitchPlatform.has(customAlert)); // false
Plateformes pré-configurées
Nous fournissons les plateformes suivantes, exposées par le même fichier JavaScript cité tout au long de cette page, pour vous éviter de les modéliser vous-même.
classe | id | events |
---|---|---|
Facebook | 'facebook' | 'follower' , 'fan' , 'videolike' , 'supporter' , 'share' , 'stars' |
TikTok | 'tiktok' | 'subscriber' , 'gift' , 'follower' , 'share' , 'like' |
Trovo | 'trovo' | 'subscriber' , 'elixir' , 'follower' , 'raid' |
Twitch | 'twitch' | 'subscriber' , 'cheer' , 'follower' , 'raid' , 'reward' (points de chaîne) |
YouTube | 'youtube' | 'sponsor' , 'superchat' , 'subscriber' |
Leurs signatures TypeScript sont les suivantes :
declare class Facebook extends Platform {
constructor(filters?: Filters, extraAlerts?: Alerts);
}
declare class TikTok extends Platform {
constructor(filters?: Filters, extraAlerts?: Alerts);
}
declare class Trovo extends Platform {
constructor(filters?: Filters, extraAlerts?: Alerts);
}
declare class Twitch extends Platform {
constructor(filters?: Filters, extraAlerts?: Alerts);
}
declare class YouTube extends Platform {
constructor(filters?: Filters, extraAlerts?: Alerts);
}