diff --git a/index.html b/index.html
index 4a25aa9..f793934 100644
--- a/index.html
+++ b/index.html
@@ -49,6 +49,7 @@
+
diff --git a/js/services.js b/js/services.js
index ac8670b..e9dbff7 100644
--- a/js/services.js
+++ b/js/services.js
@@ -143,7 +143,7 @@ angular.module('podcasts.services', [])
}
}
}])
- .service('feeds', ['$log', '$q', 'dbNew', 'db', 'downloaderBackend', 'xmlParser', 'feedItems', function($log, $q, db, dbOld, downloaderBackend, xmlParser, feedItems) {
+ .service('feeds', ['$log', '$q', 'dbNew', 'db', 'downloaderBackend', 'xmlParser', 'feedItems', 'utilities', function($log, $q, db, dbOld, downloaderBackend, xmlParser, feedItems, utilities) {
return {
feeds: [],
add: function(url) {
@@ -157,9 +157,9 @@ angular.module('podcasts.services', [])
});
};
- // TODO: verify URL format somewhere
+ var cleanedUrl = utilities.clean_url(url);
- var promise = downloaderBackend.downloadXml(url);
+ var promise = downloaderBackend.downloadXml(cleanedUrl);
promise.then(function(xml) {
var channelChildren = xml.find('channel').children(),
newFeed = {},
@@ -175,7 +175,7 @@ angular.module('podcasts.services', [])
}
});
- newFeed.url = url;
+ newFeed.url = cleanedUrl;
newFeed.title = channelChildren.find('title').text();
newFeed.summary = channelChildren.find('description').text();
newFeed.nrQueueItems = 1;
@@ -190,7 +190,7 @@ angular.module('podcasts.services', [])
}, function() {
console.warn('Could not fetch XML for feed, adding just URL for now');
var newFeed = {};
- newFeed.url = url;
+ newFeed.url = cleanedUrl;
finishSave(newFeed);
});
diff --git a/js/utilities.js b/js/utilities.js
new file mode 100644
index 0000000..00a0f6f
--- /dev/null
+++ b/js/utilities.js
@@ -0,0 +1,17 @@
+angular.module('podcasts.utilities', [])
+ .service('utilities', function() {
+ return {
+ clean_url: function(url) {
+ var cleanedUrl;
+
+ if (url.substring(0, 4) != 'http') {
+ cleanedUrl = 'http://' + url;
+ } else {
+ cleanedUrl = url;
+ }
+
+ return cleanedUrl;
+ }
+ }
+ })
+;