add urlcleaner utility

This commit is contained in:
Colin Frei 2013-06-26 23:22:35 +02:00
parent 28112eb306
commit 37e290f4b0
3 changed files with 23 additions and 5 deletions

View file

@ -49,6 +49,7 @@
<script src="lib/angular/angular.js"></script> <script src="lib/angular/angular.js"></script>
<script src="lib/iscroll.js"></script> <script src="lib/iscroll.js"></script>
<script src="js/app.js"></script> <script src="js/app.js"></script>
<script src="js/utilities.js"></script>
<script src="js/services.js"></script> <script src="js/services.js"></script>
<script src="js/directives.js"></script> <script src="js/directives.js"></script>
<script src="js/controllers.js"></script> <script src="js/controllers.js"></script>

View file

@ -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 { return {
feeds: [], feeds: [],
add: function(url) { 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) { promise.then(function(xml) {
var channelChildren = xml.find('channel').children(), var channelChildren = xml.find('channel').children(),
newFeed = {}, newFeed = {},
@ -175,7 +175,7 @@ angular.module('podcasts.services', [])
} }
}); });
newFeed.url = url; newFeed.url = cleanedUrl;
newFeed.title = channelChildren.find('title').text(); newFeed.title = channelChildren.find('title').text();
newFeed.summary = channelChildren.find('description').text(); newFeed.summary = channelChildren.find('description').text();
newFeed.nrQueueItems = 1; newFeed.nrQueueItems = 1;
@ -190,7 +190,7 @@ angular.module('podcasts.services', [])
}, function() { }, function() {
console.warn('Could not fetch XML for feed, adding just URL for now'); console.warn('Could not fetch XML for feed, adding just URL for now');
var newFeed = {}; var newFeed = {};
newFeed.url = url; newFeed.url = cleanedUrl;
finishSave(newFeed); finishSave(newFeed);
}); });

17
js/utilities.js Normal file
View file

@ -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;
}
}
})
;