From 414371393c84633c4c021fcdb402fe03cf9fcfc5 Mon Sep 17 00:00:00 2001 From: Gregory Eremin Date: Wed, 12 Oct 2011 12:36:20 +0400 Subject: [PATCH] Minor fixes --- lib/vkontakte_music.min.js | 3 ++- src/vkontakte_music.coffee | 20 +++++++++++--------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/lib/vkontakte_music.min.js b/lib/vkontakte_music.min.js index f4d4440..d5f5187 100644 --- a/lib/vkontakte_music.min.js +++ b/lib/vkontakte_music.min.js @@ -6,4 +6,5 @@ * Licensed under the MIT license. * https://raw.github.com/magnolia-fan/vkontakte_music_search/master/LICENSE */ -var VkontakteMusic;VkontakteMusic=function(){function a(){}return a.prototype.query_results={},a.prototype.search=function(a,b,c,d,e){var f,g;return e==null&&(e=!1),f=this.prepareQuery(a,b),this.query_results[f]!=null&&!e&&d(this.query_results[f]),g=this,VK.Api.call("audio.search",{q:f},function(h){var i,j;return i=g.range(h.response,a,b,c),j=null,i.length>0&&(j=i[0].url),g.query_results[f]=i,d(e?i:j)})},a.prototype.range=function(a,b,c,d){var e,f,g,h,i;typeof d=="string"&&(d=d.split(":"),d=parseInt(d[0],10)*60+parseInt(d[1],10));for(f=0,i=a.length;f0&&(g.artist===b?h+=10:g.artist.split(b).length===2?h+=5:g.title.split(b).length===2&&(h+=4)),g.artist.length>0&&(g.title===c?h+=10:g.title.split(c).length===2&&(h+=5)),parseInt(g.duration,10)===d?h+=15:(e=Math.abs(parseInt(g.duration,10)-d),e<10&&(h+=10-e)),a[f].score=h}return a.length>0&&typeof a[0]!="object"&&(a.splice(0,1),a.sort(function(a,b){return b.score-a.score})),a},a.prototype.prepareQuery=function(a,b){return a+" "+b.replace(/\(.*\)/i,"").split("/")[0]},a.prototype.trim=function(a){while(a.indexOf(" ")!==-1)a=a.replace(" "," ");return a.charAt(0)===" "&&(a=a.substring(1)),a.charAt(a.length-1)===" "&&(a=a.substring(0,a.length-1)),a},a}() \ No newline at end of file + +window.VkontakteMusic=function(){function a(){}a.prototype.query_results={};a.prototype.search=function(a,b,c,d,e){var f,g;if(e==null){e=false}f=this.prepareQuery(a,b);if(this.query_results[f]!=null&&!e){d(this.query_results[f])}g=this;return VK.Api.call("audio.search",{q:f},function(h){var i,j;i=g.range(h.response,a,b,c);j=null;if(i.length>0){j=i[0].url}g.query_results[f]=i;return d(e?i:j)})};a.prototype.range=function(a,b,c,d){var e,f,g,h,i;if(typeof d==="string"){d=d.split(":");d=parseInt(d[0],10)*60+parseInt(d[1],10)}for(f=0,i=a.length;f0){if(g.artist===b){h+=10}else if(g.artist.split(b).length===2){h+=5}else if(g.title.split(b).length===2){h+=4}}if(g.artist.length>0){if(g.title===c){h+=10}else if(g.title.split(c).length===2){h+=5}}if(d!==0&&parseInt(g.duration,10)===d){h+=15}else{e=Math.abs(parseInt(g.duration,10)-d);if(e<10){h+=10-e}}a[f].score=h}if(a.length>0){if(typeof a[0]!=="object"){a.splice(0,1)}a.sort(function(a,b){return b.score-a.score})}return a};a.prototype.prepareQuery=function(a,b){return a+" "+b.replace(/\(.*\)/i,"").split("/")[0]};a.prototype.trim=function(a){while(a.indexOf(" ")!==-1){a=a.replace(" "," ")}if(a.charAt(0)===" "){a=a.substring(1)}if(a.charAt(a.length-1)===" "){a=a.substring(0,a.length-1)}return a};return a}() \ No newline at end of file diff --git a/src/vkontakte_music.coffee b/src/vkontakte_music.coffee index 14e4ec0..3c9fd94 100644 --- a/src/vkontakte_music.coffee +++ b/src/vkontakte_music.coffee @@ -6,6 +6,7 @@ * Licensed under the MIT license. * https://raw.github.com/magnolia-fan/vkontakte_music_search/master/LICENSE ### + class window.VkontakteMusic query_results: {} @@ -29,9 +30,9 @@ class window.VkontakteMusic for item, i in data if typeof item isnt 'object' continue - item.score = 0; - item.artist = this.trim(item.artist); - item.title = this.trim(item.title); + item.score = 0 + item.artist = this.trim(item.artist) + item.title = this.trim(item.title) score = 0 if item.artist.length > 0 if item.artist == artist @@ -45,14 +46,15 @@ class window.VkontakteMusic score += 10 else if item.title.split(track).length is 2 score += 5 - if parseInt(item.duration, 10) == duration + if duration != 0 and parseInt(item.duration, 10) == duration score += 15 else delta = Math.abs parseInt(item.duration, 10) - duration score += (10 - delta) if delta < 10 data[i].score = score - if data.length > 0 and typeof data[0] isnt 'object' - data.splice 0, 1 + if data.length > 0 + if typeof data[0] isnt 'object' + data.splice(0, 1) data.sort (a, b) -> b.score - a.score data @@ -62,9 +64,9 @@ class window.VkontakteMusic trim: (str) -> while str.indexOf(' ') isnt -1 - str = str.replace ' ', ' ' + str = str.replace(' ', ' ') if str.charAt(0) is ' ' - str = str.substring 1 + str = str.substring(1) if str.charAt(str.length - 1) is ' ' - str = str.substring 0, str.length - 1 + str = str.substring(0, str.length - 1) str