Par défaut, Boursi Scroller est configuré pour aller chercher des valeurs sur le site Yahoo FR ou US ;
Il est néanmoins tout à fait possible de créer un nouveau "type syndication", en créant un nouveau fichier de syndication (extension SXML).
Les fichiers de syndication sont structurés en XML.
Vous pouvez utiliser n'importe quel nom de fichier. Du moment qu'il a l'extension '.sxml', Boursi Scroller le lira et vous proposera alors les différentes syndications qu'il contient.
Un fichier de syndication peut contenir plusieurs syndications
Voici la structure d'un fichier de syndication :
<syndications>
<syndication name="" url="" username="" password="" culture="" parent="">
<!-- Blocs d'affichage -->
<masks>
<mask value="" image="" index="" blinking="" color=""/>
<!-- ../.. -->
</masks>
<!-- Données -->
<patterns>
<pattern name="" function="" value=""/>
<!-- ../.. -->
</patterns>
</syndication>
<!-- ../.. -->
</syndications>
Chaque section "syndication" d’un fichier correspond à un type de valeur que vous pouvez utiliser (action, indice, etc…).
Les attributs suivants sont à renseigner :
name : Nom de la syndication, il doit être unique.
url : C'est l'adresse HTTP que Boursi Scroller doit utiliser pour aller chercher les informations. Dans cette adresse, vous pouvez utiliser les patterns {code} et/ou {name} qui correspondent au code et au nom de la valeur.
culture : Culture des données récupérées, encodage des pages web.
Pour chaque section "syndication", nous avons une section "masks" et une section "patterns".
La section "<masks>" décrit comment afficher les données de la syndication.
La section "<patterns>" décrit comment aller chercher (ou calculer) les valeurs qui nous intéressent.
La section "patterns" peut contenir plusieurs lignes, chaque sous-section "pattern" décrivant une donnée à aller lire via l'URL de syndication ou à calculer.
Pour chaque ligne "pattern", les attributs suivants sont à renseigner :
name : Nom de la pattern, c'est ce nom qu'il faut réutiliser dans les masques d'affichage.
value : C'est une expression régulière qui permet de parser la page HTML que Boursi Scroller charge en se connectant à l'URL de syndication. La valeur que l'on souhaite extraire de la page HTML est lue grâce à cette expression régulière.
Cette expression régulière de recherche peut être contruite grace au plugin "SyndicationBuilder".
function : vous pouvez calculer une valeur à partir d’autres patterns en renseignant une fonction.
Fonction ‘decode’ : permet de faire une table de correspondance entre des valeurs.
Exemple :
<pattern name="multiplicateur" Function="decode" value="texte_variation 1 down -1 up 1"/>
Cette pattern faudra -1 si la pattern "texte_variation" vaut « down » et vaudra +1 si la pattern "texte_variation" vaut « up » ou autre chose.
Fonction ‘multiply’ : multiplie les deux patterns ou valeurs contenues dans ‘value’.
Fonction ‘divide’ : divise les deux patterns ou valeurs contenues dans ‘value’.
Fonction ‘sub’ : soustrait les deux patterns ou valeurs contenues dans ‘value’.
Fonction ‘add’ : additionne les deux patterns ou valeurs contenues dans ‘value’.
Fonction ‘concat’ : concatène les deux patterns ou valeurs contenues dans ‘value’.
En plus de celles que vous définissez dans cette section, différentes patterns internes sont disponibles:
{name} : nom du titre saisi par l’utilisateur.
{code} : code du titre saisi par l’utilisateur.
{type} : syndication du titre saisi par l’utilisateur.
{currency} : devise du titre saisi par l’utilisateur.
{my_variation} : variation dutitre par rapport à sa valeur d'achat.
{my_gain} : profits du titre.
{my_value} : valeur d'achat du titre.
{my_qty} : volume du titre.
Pour chaque ligne "mask", les attributs suivants sont à renseigner :
value : C'est la chaine qui décrit le masque d'affichage.
Vous pouvez incorporer des patterns dans cette chaine.
blinking : 1 ou 0, gère le clignotement.
color : C'est la valeur qui correspond à la couleur du masque d'affichage. Cette valeur peut être:
1) un code HTML RGB
2) une chaine vide (dans ce cas la couleur est celle du titre)
3) un nom de pattern numérique (dans ce cas la couleur varie en fonction du signe de la pattern)
image : Cette valeur peut être vide, si elle ne l’est pas et qu’elle contient l’url d’une image, l’attribut « value » est ignoré et l’image est affichée.
Si image vaut « default », on affiche une image qui varie en fonction du signe de la pattern contenue dans l’attribut « value ».
index : Ordre d’affichage du masque.
Exemple de nouveau fichier de syndication :
<syndications>
<!-- 1ere syndication -->
<syndication name="toto1" url="http://toto.fr/bourse?code={code}" username="" password="" culture="fr-FR" parent="">
<!-- Blocs d'affichage -->
<masks>
<mask value="La variation de {name} est {cotation} %" image="" index="0"/>
<mask value="Youpi !" blinking="1" index="2"/>
</masks>
<!-- Données -->
<patterns>
<!-- Expression régulière qui va chercher la variation sur toto.fr -->
<pattern name="variation" function="" value="<b>(\d+,\d+)</b>"/>
</patterns>
</syndication>
<!-- 2ème syndication -->
<!-- Cette syndication est basée sur toto1 -->
<syndication name="toto2" parent="toto1">
<!-- Blocs d'affichage -->
<masks>
<!-- on affiche une image indicatrice du signe de {variation} -->
<mask value="{variation}" image="default" index="1"/>
<!-- on affiche un logo -->
<mask value="" image="http://toto.fr/logo.gif" index="3"/>
</masks>
<patterns>
</patterns>
</syndication>
</syndications>