Author: ygrego Date: 2015-07-08 13:23:16 +0200 (Wed, 08 Jul 2015) New Revision: 1778 Url: http://forge.nuiton.org/projects/sandbox/repository/revisions/1778 Log: Have more information about programmes. Modified: oipf/lib/js/utils/ProgrammeHelper.js Modified: oipf/lib/js/utils/ProgrammeHelper.js =================================================================== --- oipf/lib/js/utils/ProgrammeHelper.js 2015-07-08 07:51:39 UTC (rev 1777) +++ oipf/lib/js/utils/ProgrammeHelper.js 2015-07-08 11:23:16 UTC (rev 1778) @@ -7,14 +7,30 @@ constructor(channelService, channels) { this.map = { - "title": "name", - "start": "startTime", - "stop": "duration", - "desc": "description", + category: "genre", + title: "name", + start: "startTime", + stop: "duration", + "desc#text": "description", "episode-num#text": "episode", "title#text": "name" }; + this.transformationData = { + start: { + methodTransformName: "millsecondsSinceJanuary1970", + necessaryData: ["value"] + }, + stop: { + methodTransformName: "millsecondsSinceJanuary1970", + necessaryData: ["value"] + }, + category: { + methodTransformName: "setCategory", + necessaryData: ["value"] + } + } + this.channelsLogoAndRealName = {}; this.setChannelsLogoAndRealName(channels) @@ -40,7 +56,9 @@ for (var i = 0, l = programmeList.length; i < l; i++) { var programme = {}; var object = programmeList[i]; - var channelName; + var channelName = { + value: "" + }; var self = this; var createProgramme = function(object, programme, parentKey) { var keys = Object.keys(object); @@ -47,32 +65,18 @@ for (var j = 0, l1 = keys.length; j < l1; j++) { var key = keys[j]; var element = object[key]; - if (element instanceof Object) { + if (element instanceof Object && !(element instanceof Array)) { createProgramme(element, programme, key); } else { - if (key == "start") { - element = self.transformInSecondSince01011970(element); - } - if (key == "stop") { - element = self.transformInSecondSince01011970(element); - } - if (key == "channel") { - channelName = element; - } - if (key == "#text") { - key = parentKey + key; - } - var mapping = self.map[key]; - if (mapping) { - programme[mapping] = element; - } + self.setProgrammeProperty(element, key, parentKey, programme, channelName); } } + }; createProgramme(object, programme); - var realChannelName = this.channelsLogoAndRealName[channelName]["display-name"]; - var channelLogoUrl = this.channelsLogoAndRealName[channelName].icon.src; + var realChannelName = this.channelsLogoAndRealName[channelName.value]["display-name"]; + var channelLogoUrl = this.channelsLogoAndRealName[channelName.value].icon.src; if (realChannelName) { var channel = this.channelService.getChannelSimplyByName(realChannelName); @@ -99,8 +103,41 @@ return this.channelService.getADvbTChannel(name); } + setProgrammeProperty(element, key, parentKey, programme, channelName) { + /*if (key == "start") { + element = self.transformInSecondSince01011970(element); + } + if (key == "stop") { + element = self.transformInSecondSince01011970(element); + }*/ + var data = { + value: element, + key: key + }; + + if (key == "channel") { + channelName.value = element; + } + + if (key == "#text") { + key = parentKey + key; + } + + var mapping = this.map[key]; + + /*if (mapping) { + programme[mapping] = element; + }*/ + + if (mapping) { + programme[mapping] = this.doTransformation(data); + } + + } + transformToDateObject(wrongDateFormat) { - var pattern = /(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})\s\+(\d{2})/; +// var pattern = /(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})\s\+(\d{2})/; + var pattern = /(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/; var tmpDate = wrongDateFormat; tmpDate = pattern.exec(tmpDate); @@ -125,5 +162,54 @@ return minutes * 60; } + doTransformation(data) { + var key = data.key; + + var transformationData = this.transformationData[key]; + + if (transformationData) { + var methodTransformationParams = + this.getMethodTransformationParameter(data, transformationData.necessaryData); + + var methodTransformationName = transformationData.methodTransformName; + + return this[methodTransformationName].apply(this, methodTransformationParams); + } + + return data.value; + } + + getMethodTransformationParameter(data, infoList) { + var param = []; + + for (var i = 0, li = infoList.length; i < li; i++) { + var infoName = infoList[i]; + + var paramValue = data[infoName]; + + param.push(paramValue); + } + + return param; + } + + setCategory(categoryList) { + var category = new StringCollection(); + + for (var i = 0, li = categoryList.length; i < li; i++) { + var categoryItem = categoryList[i]; + + categoryItem && category.push(categoryItem); + } + + return category + } + + millsecondsSinceJanuary1970(date) { + date = this.transformInSecondSince01011970(date); + + return date; + } + }
participants (1)
-
ygregoï¼ users.nuiton.org