Organized into mature package
This commit is contained in:
parent
87d6b209ac
commit
16fffcd9d0
|
@ -0,0 +1,20 @@
|
|||
Copyright (c) 2011 Gregory Eremin
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
14
README.md
14
README.md
|
@ -2,6 +2,7 @@
|
|||
|
||||
Don't forget to log in to [vk.com API](http://vk.com/developers.php?oid=-17680044&p=Open_API)
|
||||
|
||||
### CoffeeScript example
|
||||
```coffeescript
|
||||
vk_music = new VkontakteMusic
|
||||
vk_music.search "Kasabian", "L.S.F. (Lost Souls Forever)", "2:17", (url) ->
|
||||
|
@ -11,4 +12,15 @@ vk_music.search "Kasabian", "L.S.F. (Lost Souls Forever)", "2:17", (url) ->
|
|||
audio.play()
|
||||
```
|
||||
|
||||
If you need a compiled JavaScript version, feel free to compile it yourself on [CoffeeScript's home page](http://jashkenas.github.com/coffee-script/).
|
||||
### JavaScript example
|
||||
```javascript
|
||||
var vk_music;
|
||||
vk_music = new VkontakteMusic;
|
||||
vk_music.search("Kasabian", "L.S.F. (Lost Souls Forever)", "2:17", function(url) {
|
||||
var audio;
|
||||
audio = document.createElement("audio");
|
||||
audio.setAttribute("src", url);
|
||||
document.getElementsByTagName("body")[0].appendChild(audio);
|
||||
return audio.play();
|
||||
});
|
||||
```
|
|
@ -0,0 +1,9 @@
|
|||
/*
|
||||
* Vkontakte (VK.com) API music search tool
|
||||
* https://github.com/magnolia-fan/vkontakte_music_search
|
||||
*
|
||||
* Copyright 2011, Gregory Eremin
|
||||
* 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;f<i;f++){g=a[f];if(typeof g!="object")continue;g.score=0,g.artist=this.trim(g.artist),g.title=this.trim(g.title),h=0,g.artist.length>0&&(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}()
|
|
@ -1,3 +1,11 @@
|
|||
###
|
||||
* Vkontakte (VK.com) API music search tool
|
||||
* https://github.com/magnolia-fan/vkontakte_music_search
|
||||
*
|
||||
* Copyright 2011, Gregory Eremin
|
||||
* Licensed under the MIT license.
|
||||
* https://raw.github.com/magnolia-fan/vkontakte_music_search/master/LICENSE
|
||||
###
|
||||
class VkontakteMusic
|
||||
query_results: {}
|
||||
|
Loading…
Reference in New Issue