Bonjour toujours plus d'activité sur se topic c'est vraiment dommage quand l'on voit se que les gens arrive à faire avec iviewer.
je suis toujours à la recherche d'une personne pouvant m'aider en Javascript pour parser les info de mon popcorn C200.
j'arrive à avoir un mur d'affiche mais uniquement en lançant une requête sur un fichier xml présent sur le popcorn le problème c'est que ma base de film se compose de plusieur fichier xml.
exemple de code venant du site Arnodomotique qui fonctionne pour moi.
// On répertorie tous les objets de notre interface qui nous intéresse
var gui = {
// Listes
List: "l100",
// ListesItem
ListAffiche: 101,
ListTexte: 102
};
// Fonction de mise à jour de notre liste
function updateList() {
// On commence par vider la liste
CF.setJoin(gui.List, "0x");
// On lance la requete de MAJ après 200 millisecondes, le temps que la liste se vide
setTimeout(function() {
// On lance la requete web
CF.request("http://192.168.0.11:8088/stream/file=/share/Jukebox/Other_All_1.xml", function(status, headers, body) {
try {
// Si on a recut correctement les infos
if (status == 200) {
// On initialise nos variables
var list_entries = new Array();
var entry = {};
var nb_item = 0;
// On récupère notre fichier XML
var parser = new DOMParser();
var doc = parser.parseFromString(body, 'text/xml');
var racine = doc.documentElement;
// On récupère la liste de toutes nos entrées
var items = racine.getElementsByTagName("movie")
for (var i = 0; i < items.length; i++) {
// On récupère le titre du films
var title = items[i].getElementsByTagName("title")[0].childNodes[0].nodeValue;
// On récupère l'affiche du film
var thumb = items[i].getElementsByTagName("thumbnail")[0].childNodes[0].nodeValue;
var thumb = thumb.replace("%20" , " ")
var thumb = thumb.replace("%28" , "(")
var thumb = thumb.replace("%29" , ")")
var str1 = "http://192.168.0.11:8088/stream/file=/share/Jukebox/"
var thumb = str1+thumb;
// On ajoute le film dans notre tableau
nb_item++;
entry["s" + (gui.ListAffiche + nb_item * 10)] = thumb;
entry["s" + (gui.ListTexte + nb_item * 10)] = title;
// Si on a rempli nos 3 entrées ou que l'on a fini de remplir notre liste
if (nb_item == 3 || ((i + 1) == items.length)) {
list_entries.push(entry);
entry = {};
nb_item = 0;
}
}
// On ajoute nos donnée dans notre liste
CF.listAdd(gui.List, list_entries);
// Si notre nombre de film n'est pas un multiple de 3
if ((items.length % 3) != 0) {
var line = Math.floor(items.length / 3);
for (i = 0; i < 3 - (items.length % 3) ; i++) {
CF.setProperties([
{join: gui.List + ":" + line + ":s" + (gui.ListAffiche + (3-i) * 10), opacity: 0.0},
{join: gui.List + ":" + line + ":s" + (gui.ListTexte + (3-i) * 10), opacity: 0.0},
], 0.0, 0.0);
}
}
} else {
// On n'a pas réussit à récupérer le contenu de notre requete web
var error = (typeof(body)=="string" && body.length>0) ? body : "HTTP status: " + status;
CF.log("Un erreur c'est produite dans la fonction updateList: " + error);
}
}
catch(e) {
// Une exeception à été levée...
CF.log("Une exception a été relevé dans la fonction updateList: "+e);
}
});
}, 200);
}
// Initialiation du projet
CF.userMain = function() {
// On lance le remplissage de notre liste
updateList();
// Disparition du logo pour afficher l'interface
setTimeout(function() {
CF.setJoins([
{join: "d1000", value: 1},
{join: "d9999", value: 0},
]);
}, 3000);
}
Voila pour l'exemple.
Il faudrait que je puisse interroger les huit fichiers
http://192.168.0.11:8088/stream/file=/s ... _All_2.xml puis Other_All_3.xml......... jusqu'a 8 et que j'arrive a remplir ma liste avec l'ensemble pour voir ma colléction de film en entier.
Une personne à t'il une idée pour réaliser cela.
Merci à tous en espérant voir repartir se Topic.