Author: ygrego Date: 2015-04-02 15:41:32 +0000 (Thu, 02 Apr 2015) New Revision: 1059 Url: http://forge.nuiton.org/projects/sandbox/repository/revisions/1059 Log: Implementation of xml tv data as a class. Added: oipf/data/XmlTvData.js Added: oipf/data/XmlTvData.js =================================================================== --- oipf/data/XmlTvData.js (rev 0) +++ oipf/data/XmlTvData.js 2015-04-02 15:41:32 UTC (rev 1059) @@ -0,0 +1,88 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +var XmlTVData = Class.extend({ + + map: { + "title": "name", + "-start": "startTime", + "desc": "description", + "length#text": "duration", + "episode-num#text": "episode" + }, + + channelNameMap: { + "ART1.kazer.org" : "ARTE", + "EUR2.kazer.org" : "D17", + "FRA2.kazer.org" : "FRANCE_2", + "FRA3.kazer.org" : "FRANCE_3", + "FRA4.kazer.org" : "FRANCE_4", + "FRA5.kazer.org" : "FRANCE_5", + "M61.kazer.org" : "M6", + "NRJ1.kazer.org" : "NRJ_12", + "NT11.kazer.org" : "NT1", + "RTL2.kazer.org" : "RTL9", + "TF11.kazer.org" : "TF1", + "TMC1.kazer.org" : "TMC", + "W91.kazer.org" : "W9" + }, + + programmes: null, + + init: function(data) { + this.channelService = new ChannelService(); + this.type = "XML_TV"; + this.programmes = []; + data && this.initProgrammes(data.tv.programme); + }, + + /* + * Description: + * Don't take in charge the "credits" property of a xmlTv programmes for the moment. + */ + initProgrammes: function(programmeList) { + for (var i = 0, l = programmeList.length; i < l; i++) { + var programme = {}; + var object = programmeList[i]; + var channelName; + var self = this; + var createProgramme = function(object, programme, parentKey) { + var keys = Object.keys(object); + for (var j = 0, l1 = keys.length; j < l1; j++) { + var key = keys[j]; + var element = object[key]; + if (element instanceof Object) { + createProgramme(element, programme, key); + } else { + if (key == "-channel") { + channelName = self.channelNameMap[element]; + console.log(channelName); + } + if (key == "#text") { + key = parentKey+key; + } else { + var mapping = self.map[key]; + if (mapping) { + programme[mapping] = element; + } + } + } + } + }; + + createProgramme(object, programme); + programme.channel = this.initChannel(channelName); + this.programmes.push(programme); + } + console.log(this.programmes); + }, + + initChannel: function(name){ + return this.channelService.getADvbTChannel(name); + } + + +}); +
participants (1)
-
ygregoï¼ users.nuiton.org