Created
June 25, 2014 18:27
-
-
Save nicloay/339cd4782f71811c7ce6 to your computer and use it in GitHub Desktop.
gracemonkey script transfer music from spotify in to vkontakte (right now, not sure that copy past works well, so I past spotify uri directly to the file)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // ==UserScript== | |
| // @name SpotifyVK | |
| // @namespace com.nicloy.vkspotify | |
| // @description Import music from spotify to vk albums | |
| // @grant GM_xmlhttpRequest | |
| // @include http://vk.com/audio* | |
| // @include https://vk.com/audio* | |
| // @version 1 | |
| // ==/UserScript== | |
| console.log("starting script"); | |
| //spotify:track:3nV3zKrWBuDcCYjju4LkNp | |
| var SPOTIFY_BASE_URI="https://ws.spotify.com/lookup/1/.json?uri="; | |
| var spotifyUrlArray =[]; | |
| var pastInProgress=true; | |
| var pageWrap = document.getElementById("s_search"); | |
| var origOnPaste = pageWrap.onpaste; | |
| function handleSpotifyRef(){ | |
| console.log("length = "+spotifyUrlArray.length); | |
| if (spotifyUrlArray.length == 0){ | |
| pastInProgress = false; | |
| return; | |
| } | |
| var spotifyRef = spotifyUrlArray.shift(); | |
| console.log("spotifyRef ="+spotifyRef); | |
| if (spotifyRef == ""){ | |
| handleSpotifyRef(); | |
| } else { | |
| var url = SPOTIFY_BASE_URI+spotifyRef; | |
| console.log(url); | |
| var req = GM_xmlhttpRequest({ | |
| method: "GET", | |
| url: url, | |
| headers: {"Accept": "application/json"}, | |
| onload: function(response) { | |
| var spotObject = JSON.parse( response.responseText); | |
| var songAndArtist = spotObject.track.name + " "+ spotObject.track.artists[0].name; | |
| console.log(songAndArtist); | |
| pageWrap.value= songAndArtist; | |
| pageWrap.onkeyup(); | |
| setTimeout(handleSpotifyRef, 30000); | |
| }, | |
| onerror: function(response){ | |
| alert( response); | |
| } | |
| }); | |
| } | |
| } | |
| function handleSpotifyData(pastedText){ | |
| spotifyUrlArray = pastedText.split(/[\r,\n, ]+/); | |
| pastInProgress = true; | |
| handleSpotifyRef(spotifyUrlArray); | |
| } | |
| var onPasteHandler = function(e){ | |
| if (pastInProgress) { | |
| console.log("already do something"); | |
| return; | |
| } | |
| var pastedText = ''; | |
| if (window.clipboardData && window.clipboardData.getData) { // IE | |
| pastedText = window.clipboardData.getData('Text'); | |
| } else if (e.clipboardData && e.clipboardData.getData) { | |
| pastedText = e.clipboardData.getData('text/plain'); | |
| } | |
| console.log(pastedText); | |
| if (pastedText.trim().startsWith("spotify")){ | |
| e.preventDefault(); | |
| pageWrap.value = ""; | |
| handleSpotifyData(pastedText.trim()); | |
| }else{ | |
| origOnPaste(); | |
| } | |
| } | |
| pageWrap.onpaste = onPasteHandler; | |
| function test(){ | |
| var songs=" \ | |
| spotify:track:33oSNr28y1sJdVPCxAuQUj\ | |
| spotify:track:6UpxgpAPvAXRdxQMI0PpMn\ | |
| spotify:track:3zECldeBYO8lj8QZlUB2Be\ | |
| spotify:track:7r7yufHWyMVJcc31l0EqzQ\ | |
| spotify:track:3fKg9Up2k4rMBbGgJQnd85\ | |
| spotify:track:7mPvLGEZAqIYzEz0nHSjeJ\ | |
| spotify:track:1dngxWbqUf8WYmOcUGYGGq\ | |
| spotify:track:3UduZBfrWQkNk46RbD3H9p\ | |
| spotify:track:1ph6Bncj7s3BmYp6FkIzP8\ | |
| spotify:track:3J9pd7B1AS0xJeX7k63EJf\ | |
| spotify:track:41pFyxOpS119Pb8JEzhx0w\ | |
| spotify:track:5wV0DFdwgTfLCDgkQRMGEL\ | |
| spotify:track:0oks4FnzhNp5QPTZtoet7c\ | |
| spotify:track:4D4RuVFzlNXSdf7IrBzE2o\ | |
| spotify:track:7LuojryrN6VkYWbax5dWTv\ | |
| spotify:track:0QwZfbw26QeUoIy82Z2jYp\ | |
| spotify:track:0DanGj9TtgZIjJnHdTbW9v\ | |
| spotify:track:2kHCRMBCGhuZo2vOAB0JrS\ | |
| spotify:track:0ORtVeSxQ54z9F8eJKkhIs\ | |
| spotify:track:2RcfeD1kA09Kjj6twD6eGs\ | |
| spotify:track:1SXP53Ue7P7ZBiDeRUG9H4\ | |
| spotify:track:6Ayw75pIMeKjoEO7I1MSqw\ | |
| spotify:track:3hMVNsHKnApzCa6Lw6vlVj\ | |
| spotify:track:4zH2xJAkTtnjJuQSjjw1IX\ | |
| spotify:track:6MbiVHE2xG242NuOgNIEYM\ | |
| spotify:track:6QpkhjUGO5OrOHAgFvmEDJ\ | |
| spotify:track:2eeW1sIe4qcTirHqEAjWGl\ | |
| spotify:track:1bYBLZUHKK0m93qZ4cMWJC\ | |
| spotify:track:0Aekazl3SoTfU42pWMP1Rb\ | |
| spotify:track:0jVy0Y3QEtUKsrIHAZuR45\ | |
| spotify:track:1u0aIMrEBvFkRtgcg264gW\ | |
| spotify:track:1KRH1AhRdmYh0OTZa5QAqn\ | |
| spotify:track:0qla0jAU8Z2RpH6q3Lvb92\ | |
| spotify:track:7cdxGn1ElZlpM4M1At0k4g\ | |
| spotify:track:2oFZRf3oYi7B6vC3t9iZrP\ | |
| spotify:track:7fXQ5AUAtmv1IaQbRtlyOm\ | |
| spotify:track:3jUTjCISntIUFL8jnAjzgc\ | |
| spotify:track:1FMm3wG5WOhi7js35KR7Ea\ | |
| spotify:track:0GjSbSr86nsOLJsibU2cjh\ | |
| spotify:track:3ZPTb9HHBRt2VDbsIUFnSD\ | |
| spotify:track:1ccFnIocW7FZ546v5cVqta\ | |
| spotify:track:5dIgg4mrQHOlVm1ZFYHW29\ | |
| spotify:track:5FbMKftNTXCKiBYSf0TQrs\ | |
| spotify:track:19MlCZz8yterrE7guDVJdL\ | |
| spotify:track:6QYW3HXqRTwLs75HDxLVgN\ | |
| spotify:track:1ru5R5iSawvuMELqKXxLjS\ | |
| spotify:track:3G9ImkMC04pq5UeHaUDr3T\ | |
| spotify:track:0QIYINh2AwmOmdu8CRYvlw\ | |
| spotify:track:0z1b34WikhOH9ZxU8QDWcv\ | |
| spotify:track:0aCtudavUSkvtS1MottwVU\ | |
| spotify:track:2JvXGzbMyqr2OkmsqDnQsL\ | |
| spotify:track:28XOSoxxj3Npuz52KP6FuE\ | |
| spotify:track:7nVxwYcdX9bG18qA9k74ID\ | |
| spotify:track:5KQrOv9nFVnM465CVGriW9\ | |
| spotify:track:3qjF2EzZ7Kx0VD1AooRFjy\ | |
| spotify:track:25nzKGDiua1lE9Qo5V19GL\ | |
| spotify:track:3oVSsJXNADnYAnZWiEWFJH\ | |
| spotify:track:27Ur4EIdqUJSlBi45E8gE9\ | |
| spotify:track:7hXyu2yIXRZv7hg7nWFlTR\ | |
| spotify:track:7xcuo1zlZ5cys40tpFKFzr\ | |
| spotify:track:3vqRwGd80zpGdpZmmotMfv\ | |
| spotify:track:0vKyA6t7Ncbl0ms0aNvntt\ | |
| spotify:track:6f4ys4e8vWJ2jDBlpqSNa6\ | |
| spotify:track:0xIof5gmHjFY0t1eX7angP\ | |
| spotify:track:3FpJxAODaFrO7NkHEuplIA\ | |
| spotify:track:0peYAmI5sjt67CFMgmUfjq\ | |
| spotify:track:1r9j3mBytoMwddWGJv6kF0\ | |
| spotify:track:2wfIav4mTuE5jd2QKyauKD\ | |
| spotify:track:57LP4yVIIBkRLWbq0ETF4K\ | |
| spotify:track:331q5cdwo9aq7ih6bSpoOa\ | |
| spotify:track:7GYTGDxy53uilTvcsAVqVo\ | |
| spotify:track:4ehFuOQd4GaJp08kNvMR3z\ | |
| spotify:track:45JxylFwaThjLsRBuzcfoL\ | |
| spotify:track:0mq8gFHMpr9Pc1603T7cdS\ | |
| spotify:track:422DJ0g3ZVW7aQu3Z6NEpq\ | |
| spotify:track:1TaT2vwgMrzOhDEMVNZ5Mr\ | |
| spotify:track:3ctoHckjyd13eBi2IDw2Ip\ | |
| spotify:track:2eQOMQkStoRUQyq6HGh1iG\ | |
| spotify:track:5Yihfvz56HKVjPJQm2uHbJ\ | |
| spotify:track:7DdXf9x75iEVCHWfoRwRuR\ | |
| spotify:track:519uJbE3zyKLlToVA65PrP\ | |
| spotify:track:5d4EJrwEEQgP4qzs6gwzsD\ | |
| spotify:track:66dxtOtemB4EcgCXUSNuKC\ | |
| spotify:track:5nG6XQckfjnPkDyxDGDFFV\ | |
| spotify:track:5BP0oaQ1VhuaznT77CBXQp\ | |
| spotify:track:4WpDqmZCa3JZGeOo1rzjK8\ | |
| spotify:track:2uyhhyy1VsqAuEsQnfbh0z\ | |
| spotify:track:22HUwdcICEa6IcmjirhXvG\ | |
| spotify:track:1LytkZ67Tquo5A5TyzqVcZ\ | |
| spotify:track:21RDsw7wzUJNl2FbWTgEfJ\ | |
| spotify:track:5kxxhOkxd7j57e7oL121gI\ | |
| spotify:track:1595LW73XBxkRk2ciQOHfr\ | |
| spotify:track:1jJci4qxiYcOHhQR247rEU\ | |
| spotify:track:3UPPGZeSjNwxyJslnSTm1c\ | |
| spotify:track:286bpRdcpueYPc7gLIvrzU\ | |
| spotify:track:7ncTtnHuRHExZGp18vnimz\ | |
| spotify:track:4BVEA1X7HXIK2ScfRoEzzb\ | |
| spotify:track:7gARZ2i5u5DHC1b1n1fML5\ | |
| spotify:track:55frTib3O35mjAbdyNj8me\ | |
| spotify:track:7KOh0GSvWyBbqglGkWdCpR\ | |
| spotify:track:0wuRFAZfya3gwGw3c6567P\ | |
| spotify:track:1oMesUID2788elbHOFFs4y\ | |
| spotify:track:7w87IxuO7BDcJ3YUqCyMTT\ | |
| spotify:track:2lbAU3IQytWjl9b0LLuztk\ | |
| spotify:track:06o8Gyc1W56J1pSs16RMC7\ | |
| spotify:track:3AszgPDZd9q0DpDFt4HFBy\ | |
| spotify:track:46WVVHERbHreW3Ap2ztQt8\ | |
| spotify:track:6Wze1mFZVcT3fj8hTKnBSz\ | |
| spotify:track:3skn2lauGk7Dx6bVIt5DVj\ | |
| spotify:track:0HQLq1DUWyhMN2gWXBQ89Y\ | |
| spotify:track:4dTVgHZFPlaq9nPbLVVLSG\ | |
| spotify:track:4bVVAGHw9NXZIxhXeB57a8\ | |
| spotify:track:0c7v6RPu6F8QKep5xhfgYU\ | |
| spotify:track:5D2vlXnwXXTPq5o2fm9bxw\ | |
| spotify:track:5KhBCD311UeeLlnxMqKlde" | |
| handleSpotifyData(songs); | |
| } | |
| test(); | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment