-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathindex.js
99 lines (78 loc) · 2.26 KB
/
index.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
var https = require('https');
var config = {
base: "https://i.ytimg.com/vi/",
quality: {
default: 'default',
medium: 'mqdefault',
high: 'hqdefault',
standard: 'sddefault',
maxres: 'maxresdefault'
}
};
function valid(id, proxy, callback) {
https.get(proxy + config.base + id +'/'+ config.quality.maxres + ".jpg", function(response) {
if (response.statusCode == 200)
callback({maxres: true, standard: true});
else {
https.get(proxy + config.base + id +'/'+ config.quality.standard + ".jpg", function(response) {
if (response.statusCode == 200)
callback({maxres: false, standard: true});
else
callback({maxres: false, standard: false});
});
}
});
}
var all = function(id, proxy = '', callback) {
var allYouthumbs = {};
valid(id, proxy, function(exist) {
if (exist.maxres) {
for (quality in config.quality) {
allYouthumbs[quality] = config.base + id +'/'+ config.quality[quality] + ".jpg";
}
}
else if (exist.standard) {
for (quality in config.quality) {
if (quality == 'maxres')
continue
allYouthumbs[quality] = config.base + id +'/'+ config.quality[quality] + ".jpg";
}
}
else {
for (quality in config.quality) {
if (quality == 'maxres' || quality =='standard')
continue
allYouthumbs[quality] = config.base + id +'/'+ config.quality[quality] + ".jpg";
}
}
callback(allYouthumbs);
});
}
var get = function(id, proxy = '', quality, callback) {
var imageQuality;
if (quality in config.quality) {
imageQuality = config.quality[quality];
} else if (typeof quality == 'number' && quality in [0,1,2,3]) {
imageQuality = quality;
} else {
imageQuality = config.quality.default;
}
if (imageQuality == 'maxresdefault' || imageQuality == 'sddefault') {
valid(id, proxy, function(exist) {
if (imageQuality == 'maxresdefault' && exist.maxres) {
callback(null, config.base + id +'/'+ imageQuality + ".jpg");
}
else if (imageQuality == 'sddefault' && exist.standard) {
callback(null, config.base + id +'/'+ imageQuality + ".jpg");
}
else {
callback('Error: The thumbnail you where looking for don\'t exist.');
}
});
}
else {
callback(null, config.base + id +'/'+ imageQuality + ".jpg");
}
}
module.exports.all = all;
module.exports.get = get;