1 /** The osmplayer namespace. */
  2 var osmplayer = osmplayer || {};
  3 
  4 /** The parser object. */
  5 osmplayer.parser = osmplayer.parser || {};
  6 
  7 /**
  8  * The youtube parser object.
  9  *
 10  * @return {object} The youtube parser.
 11  **/
 12 osmplayer.parser.youtube = {
 13 
 14   // The priority for this parser.
 15   priority: 10,
 16 
 17   // Return if this is a valid youtube feed.
 18   valid: function(feed) {
 19     return (feed.search(/^http(s)?\:\/\/gdata\.youtube\.com/i) === 0);
 20   },
 21 
 22   // Returns the type of request to make.
 23   getType: function(feed) {
 24     return 'jsonp';
 25   },
 26 
 27   // Returns the feed provided the start and numItems.
 28   getFeed: function(feed, start, numItems) {
 29     feed = feed.replace(/(.*)\??(.*)/i, '$1');
 30     feed += '?start-index=' + (start + 1);
 31     feed += '&max-results=' + (numItems);
 32     feed += '&v=2&alt=jsonc';
 33     return feed;
 34   },
 35 
 36   // Parse the feed.
 37   parse: function(data) {
 38     data = data.data;
 39     var playlist = {
 40       total_rows: data.totalItems,
 41       nodes: []
 42     };
 43 
 44     // Iterate through the items and parse it.
 45     var node = null;
 46     for (var index in data.items) {
 47       if (data.items.hasOwnProperty(index)) {
 48         node = minplayer.players.youtube.parseNode(data.items[index]);
 49         playlist.nodes.push(node);
 50       }
 51     }
 52 
 53     return playlist;
 54   }
 55 };
 56