diff --git a/modules/default/newsfeed/README.md b/modules/default/newsfeed/README.md
index 8cfff7e7..eaaf2032 100644
--- a/modules/default/newsfeed/README.md
+++ b/modules/default/newsfeed/README.md
@@ -70,6 +70,13 @@ The following properties can be configured:
Default value: 2000
(2.5 seconds)
+
+ encoding |
+ The encoding of the news feed.
+ Possible values:'UTF-8' , 'ISO-8859-1' , etc ...
+ Default value: 'UTF-8'
+ |
+
diff --git a/modules/default/newsfeed/fetcher.js b/modules/default/newsfeed/fetcher.js
index 3a4a81c3..427d198f 100644
--- a/modules/default/newsfeed/fetcher.js
+++ b/modules/default/newsfeed/fetcher.js
@@ -14,7 +14,7 @@ var NewsFetcher = require('./newsfetcher.js');
* attribute reloadInterval number - Reload interval in milliseconds.
*/
-var Fetcher = function(url, reloadInterval) {
+var Fetcher = function(url, reloadInterval, encoding) {
var self = this;
var newsFetcher = new NewsFetcher();
if (reloadInterval < 1000) {
@@ -44,7 +44,7 @@ var Fetcher = function(url, reloadInterval) {
}, function(error) {
fetchFailedCallback(self, error);
scheduleTimer();
- });
+ }, encoding);
};
/* scheduleTimer()
diff --git a/modules/default/newsfeed/newsfeed.js b/modules/default/newsfeed/newsfeed.js
index b6640382..b643a000 100644
--- a/modules/default/newsfeed/newsfeed.js
+++ b/modules/default/newsfeed/newsfeed.js
@@ -16,6 +16,7 @@ Module.register('newsfeed',{
reloadInterval: 5 * 60 * 1000, // every 5 minutes
updateInterval: 7.5 * 1000,
animationSpeed: 2.5 * 1000,
+ encoding: 'UTF-8' //ISO-8859-1
},
// Define required scripts.
@@ -56,6 +57,13 @@ Module.register('newsfeed',{
getDom: function() {
var wrapper = document.createElement("div");
+ // wrapper.className = "small";
+ // for (var n in this.newsItems) {
+ // var item = this.newsItems[n];
+ // wrapper.innerHTML += item.title + '
';
+ // }
+ // return wrapper;
+
if (this.activeItem >= this.newsItems.length) {
this.activeItem = 0;
}
@@ -90,7 +98,8 @@ Module.register('newsfeed',{
Log.log('Add news feed to fetcher: ' + this.config.feedUrl);
this.sendSocketNotification('ADD_FEED', {
url: this.config.feedUrl,
- reloadInterval: this.config.reloadInterval
+ reloadInterval: this.config.reloadInterval,
+ encoding: this.config.encoding
});
},
diff --git a/modules/default/newsfeed/newsfetcher.js b/modules/default/newsfeed/newsfetcher.js
index 3075ac67..145e4cb0 100644
--- a/modules/default/newsfeed/newsfetcher.js
+++ b/modules/default/newsfeed/newsfetcher.js
@@ -43,10 +43,10 @@ var NewsFetcher = function() {
* attribute success function(items) - Callback on succes.
* attribute error function(error) - Callback on error.
*/
- self.fetchNews = function(url, success, error) {
+ self.fetchNews = function(url, success, error, encoding) {
self.successCallback = success;
self.errorCallback = error;
- request({uri:url, encoding:null}).pipe(iconv.decodeStream('ISO-8859-1')).pipe(parser);
+ request({uri:url, encoding:null}).pipe(iconv.decodeStream(encoding)).pipe(parser);
};
};
diff --git a/modules/default/newsfeed/node_helper.js b/modules/default/newsfeed/node_helper.js
index 4199875d..12328607 100644
--- a/modules/default/newsfeed/node_helper.js
+++ b/modules/default/newsfeed/node_helper.js
@@ -20,7 +20,7 @@ module.exports = NodeHelper.create({
// Subclass socketNotificationReceived received.
socketNotificationReceived: function(notification, payload) {
if(notification === 'ADD_FEED') {
- this.createFetcher(payload.url, payload.reloadInterval);
+ this.createFetcher(payload.url, payload.reloadInterval, payload.encoding);
}
},
@@ -32,7 +32,7 @@ module.exports = NodeHelper.create({
* attribute reloadInterval number - Reload interval in milliseconds.
*/
- createFetcher: function(url, reloadInterval) {
+ createFetcher: function(url, reloadInterval, encoding) {
var self = this;
if (!validUrl.isUri(url)){
@@ -43,7 +43,7 @@ module.exports = NodeHelper.create({
var fetcher;
if (typeof self.fetchers[url] === 'undefined') {
console.log('Create new news fetcher for url: ' + url + ' - Interval: ' + reloadInterval);
- fetcher = new Fetcher(url, reloadInterval);
+ fetcher = new Fetcher(url, reloadInterval, encoding);
fetcher.onReceive(function(fetcher) {
self.sendSocketNotification('NEWS_ITEMS', {