Created
February 6, 2017 21:30
-
-
Save krasnobaev/0cc99f41abca65061548619751a2237f to your computer and use it in GitHub Desktop.
work with audio
This file contains 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
/* | |
Trackid – 0 : "456239225" | |
ownerid – 1 : "212204800" | |
? – 2 : "" | |
track name – 3 : "Emotion" | |
track artist – 4 : "FGFC820" | |
? – 5 : 313 | |
album id – 6 : 83025823 | |
? – 7 : 0 | |
? – 8 : "" | |
? – 9 : 5993455 | |
? – 10 : 518 | |
? – 11 : "" | |
? – 12 : "[]" | |
? – 13 : "/d3a121904b72b7c10d/06224d9074e50401b7" | |
*/ | |
/* fetch tracks data from another account */ | |
/** | |
* Store track list | |
* | |
* All tracks should be visible on audios page | |
* | |
* @param {<type>} acc The acc | |
* @return {<type>} { description_of_the_return_value } | |
*/ | |
var storeTrackList = function (acc) { | |
if (typeof acc === 'undefined') { | |
return; | |
} | |
var aplayer = getAudioPlayer(); | |
return aplayer.getPlaylist('album', acc).getAudiosList(); | |
}; | |
JSON.stringify(storeTrackList()); // tracklist.json | |
/** | |
* Store albums | |
* | |
* @return {Array} { description_of_the_return_value } | |
*/ | |
var storeAlbums = function () { | |
var albums = []; | |
// document.querySelectorAll('.audio_albums_wrap .audio_album_item') | |
document.querySelectorAll('.ui_rmenu_pr .audio_album_item') | |
.forEach(function (album) { | |
albums.push({ | |
albumowner: album.id.split('_').splice(-2)[0], | |
albumid: album.id.split('_').splice(-2)[1], | |
title: album.getElementsByClassName('audio_album_title')[0].innerText, | |
}); | |
}); | |
return albums; | |
}; | |
JSON.stringify(storeAlbums()); // albums.json | |
/* add tracks and albums */ | |
/** | |
* Adds tracks | |
* | |
* @todo implement chaining via (Promises) | |
* | |
* @param {string} acc The acc | |
* @param {<type>} arrTracks The arr tracks | |
*/ | |
var addTracks = function (acc, arrTracks) { | |
arrTracks.forEach(function (track) { | |
setTimeout(function () { | |
AudioUtils.addAudio(this('#audio_' + acc + '_' + track + ' .audio_info')); | |
}.bind($), 3000); | |
}); | |
}; | |
/** | |
* Adds tracks via Promises | |
* | |
* @param {string} acc The acc | |
* @param {<type>} arrTracks The arr tracks | |
*/ | |
var addTracksPromises = function (acc, arrTracks) { | |
var sequence = Promise.resolve(); | |
var aTasks = arrTracks.map(function (track, i) { | |
sequence = sequence.then(function () { | |
var processTrack = function (track, i) { | |
var chain = null; | |
var dialogIsOpen = new Promise(function (resolve, reject) { | |
var checkSelector = setInterval(function () { | |
if (document.getElementsByClassName('box_title_wrap').length) { | |
console.log('captcha box is open'); | |
} else { | |
console.log('captcha box is not open'); | |
console.log(i + ': ' + track); | |
resolve(i, track); | |
clearInterval(checkSelector); | |
} | |
}, 1000); | |
}); | |
return dialogIsOpen; | |
}; | |
return processTrack(track, i).then(function () { | |
AudioUtils.addAudio(document.getElementById('audio_' + acc + '_' + track) | |
.getElementsByClassName('audio_info')[0] | |
); | |
}); | |
}.bind(this)); | |
}); | |
}; | |
/** | |
* createAlbum('sex', ["456239216", "456239215", "456239213"]) | |
* | |
* @param {string} title | |
* @param {[string]} aTrackIds | |
*/ | |
var createAlbum = function (title, aTrackIds) { | |
AudioPage($('#ui_rmenu_audio_album_add>span>div')).createAlbum(new MouseEvent(0)); | |
$('#album_name').value = title; | |
AudioPage.saveAlbum(aTrackIds, $('button.flat_button'), 0); | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment