-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathfoobar2000_eslyrics_source.js
104 lines (85 loc) · 2.85 KB
/
foobar2000_eslyrics_source.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
function get_my_name() {
return 'Minilyrics';
}
function get_version() {
return '0.0.1';
}
function get_author() {
return 'Olee';
}
var dbg = true;
var api = 'http://bzeutzheim.de:8981/';
function start_search(info, callback) {
var httpClient = utils.CreateHttpClient();
var queryUrl = api + '?artist=' + encodeURI(info.Artist) + '&title=' + encodeURI(info.Title);
console('Query: ' + queryUrl);
var jsonText = httpClient.Request(queryUrl);
if (httpClient.StatusCode !== 200) {
console('Request url ' + queryUrl + ' error: ' + httpClient.StatusCode);
return;
}
var result = JSON.parse(jsonText);
console('result: ' + result.result);
if (result.result !== 'OK') {
console(result.result);
return;
}
console('Found ' + result.children.length + ' lyrics');
var lyric = callback.CreateLyric();
lyric.Source = get_my_name();
for (var i = 0; i < result.children.length; i++) {
if (callback.IsAborting()) {
console('User aborted!');
break;
}
var item = result.children[i];
var lyricsUrl = result.server_url + item.link;
console('Downloading item ' + (i + 1) + ' from ' + lyricsUrl);
var lyricsText = httpClient.Request(lyricsUrl);
if (httpClient.StatusCode !== 200) {
console('Request url ' + lyricsUrl + ' error: ' + httpClient.StatusCode);
continue;
}
lyric.Title = item.title;
lyric.Artist = item.artist;
lyric.Album = item.album;
lyric.LyricText = lyricsText;
callback.AddLyric(lyric);
}
lyric.Dispose();
}
function console(s) {
dbg && fb.trace('ESLyrics source ' + get_my_name() + ': ' + s);
}
// if (!Array.prototype.filter) {
// Array.prototype.filter = function (func, thisArg) {
// 'use strict';
// if (!((typeof func === 'Function' || typeof func === 'function') && this))
// throw new TypeError();
// var len = this.length >>> 0,
// res = new Array(len), // preallocate array
// t = this, c = 0, i = -1;
// if (thisArg === undefined) {
// while (++i !== len) {
// // checks to see if the key was set
// if (i in this) {
// if (func(t[i], i, t)) {
// res[c++] = t[i];
// }
// }
// }
// }
// else {
// while (++i !== len) {
// // checks to see if the key was set
// if (i in this) {
// if (func.call(thisArg, t[i], i, t)) {
// res[c++] = t[i];
// }
// }
// }
// }
// res.length = c; // shrink down array to proper size
// return res;
// };
// }