Hoi!
Ben al een tijdje bezig met dit maar het wil mij niet lukken en ik snap ook niet waarom. Ik probeer een image te downloaden en hiervan een base64 string te maken, lukt allemaal maar blijkbaar lijkt de base64 die ik genereer niet valid.
Volledige script:
Codeblok (voorbeeld.php):
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
var toDutch = function(month) {
var months = [];
months[0] = "januari";
months[1] = "februari";
months[2] = "maart";
months[3] = "april";
months[4] = "mei";
months[5] = "juni";
months[6] = "juli";
months[7] = "augustus";
months[8] = "september";
months[9] = "oktober";
months[10] = "november";
months[11] = "december";
return months[month];
}
var http = require("request");
module.exports.start = function(app, fs) {
console.log("main.js running");
/*var download = function(uri, filename, callback){
http.head(uri, function(err, res, body){
console.log(content-type:, res.headers[content-type]);
console.log(content-length:, res.headers[content-length]);
console.log(uri);
http(uri).pipe(fs.createWriteStream(filename)).on(close, callback);
});
};*/
/* Routes */
app.get("/", function(req, res, next) {
res.redirect("http://www.one2xs.com/profiel/bekijk?gebruiker=dylan");
res.end();
next();
});
app.get("/lastfm/:username", function(req, res, next) {
http("http://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks&user=" + req.param("username") + "&api_key=lol&format=json&limit=1", function(err, resp, body) {
var data = JSON.parse(body);
if("" + typeof data.error != "undefined") {
res.send("Deze gebruiker bestaat niet!");
} else {
var musicData = {};
console.log(data.recenttracks.track[0]);
if("" + typeof data.recenttracks.track[0] != "undefined") {
musicData.artist = data.recenttracks.track[0].artist["#text"];
musicData.song = data.recenttracks.track[0].name;
musicData.from = (data.recenttracks.track[0].album["#text"] == "" ? "onbekend" : data.recenttracks.track[0].album["#text"]);
musicData.image = data.recenttracks.track[0].image[2]["#text"];
musicData.date = function() {
return "dit moment luister";
}
} else {
musicData.artist = data.recenttracks.track.artist["#text"];
musicData.song = data.recenttracks.track.name;
musicData.from = (data.recenttracks.track.album["#text"] === "" ? "onbekend" : data.recenttracks.track.album["#text"]);
musicData.image = data.recenttracks.track.image[2]["#text"];
musicData.date = function() {
var date = new Date(parseInt(data.recenttracks.track.date.uts)*1000);
return date.getDate() + " " + toDutch(date.getMonth())+ " om " + date.getHours() + ":" + date.getMinutes() + " luisterde";
}
}
musicData.getImage = function() {
if("" + typeof musicData.image == "string") {
var name = musicData.image.split("/")[5];
http(musicData.image, function(err, resp, body) {
console.log(musicData.image);
if("" + typeof body == "string") {
var type = musicData.image.substr(musicData.image.lastIndexOf(".") + 1);
musicData.image = "data:image/" + type + ";base64," + new Buffer(body).toString("base64");
} else {
musicData.image = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NTc3MiwgMjAxNC8wMS8xMy0xOTo0NDowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjlGQTMxODcxQTRCRjExRTRBREJBQjg2RUVFQzlBNDE3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjlGQTMxODcyQTRCRjExRTRBREJBQjg2RUVFQzlBNDE3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OUZBMzE4NkZBNEJGMTFFNEFEQkFCODZFRUVDOUE0MTciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6OUZBMzE4NzBBNEJGMTFFNEFEQkFCODZFRUVDOUE0MTciLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6ovkiFAAAAD0lEQVR42mL6//8/QIABAAYGAwAriXStAAAAAElFTkSuQmCC";
}
res.render("image", musicData);
});
}
}
musicData.getImage();
}
});
})
}
Het gaat om dit stukje:
[c]
var type = musicData.image.substr(musicData.image.lastIndexOf(".") + 1);
musicData.image = "data:image/" + type + ";base64," + new Buffer(body).toString("base64");
[/c]
Van dit:
Afbeelding niet beschikbaarDe bron kon niet worden geladen (userserve-ak.last.fm).Bron openen ↗krijg ik
Afbeelding niet beschikbaarDe bron kon niet worden geladen (i.imgur.com).Bron openen ↗
Afbeelding niet beschikbaarDe bron kon niet worden geladen (i.imgur.com).Bron openen ↗
Weet iemand wat ik fout doe?
Ben al een tijdje bezig met dit maar het wil mij niet lukken en ik snap ook niet waarom. Ik probeer een image te downloaden en hiervan een base64 string te maken, lukt allemaal maar blijkbaar lijkt de base64 die ik genereer niet valid.
Volledige script:
Codeblok (voorbeeld.php):
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
var toDutch = function(month) {
var months = [];
months[0] = "januari";
months[1] = "februari";
months[2] = "maart";
months[3] = "april";
months[4] = "mei";
months[5] = "juni";
months[6] = "juli";
months[7] = "augustus";
months[8] = "september";
months[9] = "oktober";
months[10] = "november";
months[11] = "december";
return months[month];
}
var http = require("request");
module.exports.start = function(app, fs) {
console.log("main.js running");
/*var download = function(uri, filename, callback){
http.head(uri, function(err, res, body){
console.log(content-type:, res.headers[content-type]);
console.log(content-length:, res.headers[content-length]);
console.log(uri);
http(uri).pipe(fs.createWriteStream(filename)).on(close, callback);
});
};*/
/* Routes */
app.get("/", function(req, res, next) {
res.redirect("http://www.one2xs.com/profiel/bekijk?gebruiker=dylan");
res.end();
next();
});
app.get("/lastfm/:username", function(req, res, next) {
http("http://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks&user=" + req.param("username") + "&api_key=lol&format=json&limit=1", function(err, resp, body) {
var data = JSON.parse(body);
if("" + typeof data.error != "undefined") {
res.send("Deze gebruiker bestaat niet!");
} else {
var musicData = {};
console.log(data.recenttracks.track[0]);
if("" + typeof data.recenttracks.track[0] != "undefined") {
musicData.artist = data.recenttracks.track[0].artist["#text"];
musicData.song = data.recenttracks.track[0].name;
musicData.from = (data.recenttracks.track[0].album["#text"] == "" ? "onbekend" : data.recenttracks.track[0].album["#text"]);
musicData.image = data.recenttracks.track[0].image[2]["#text"];
musicData.date = function() {
return "dit moment luister";
}
} else {
musicData.artist = data.recenttracks.track.artist["#text"];
musicData.song = data.recenttracks.track.name;
musicData.from = (data.recenttracks.track.album["#text"] === "" ? "onbekend" : data.recenttracks.track.album["#text"]);
musicData.image = data.recenttracks.track.image[2]["#text"];
musicData.date = function() {
var date = new Date(parseInt(data.recenttracks.track.date.uts)*1000);
return date.getDate() + " " + toDutch(date.getMonth())+ " om " + date.getHours() + ":" + date.getMinutes() + " luisterde";
}
}
musicData.getImage = function() {
if("" + typeof musicData.image == "string") {
var name = musicData.image.split("/")[5];
http(musicData.image, function(err, resp, body) {
console.log(musicData.image);
if("" + typeof body == "string") {
var type = musicData.image.substr(musicData.image.lastIndexOf(".") + 1);
musicData.image = "data:image/" + type + ";base64," + new Buffer(body).toString("base64");
} else {
musicData.image = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NTc3MiwgMjAxNC8wMS8xMy0xOTo0NDowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjlGQTMxODcxQTRCRjExRTRBREJBQjg2RUVFQzlBNDE3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjlGQTMxODcyQTRCRjExRTRBREJBQjg2RUVFQzlBNDE3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OUZBMzE4NkZBNEJGMTFFNEFEQkFCODZFRUVDOUE0MTciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6OUZBMzE4NzBBNEJGMTFFNEFEQkFCODZFRUVDOUE0MTciLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6ovkiFAAAAD0lEQVR42mL6//8/QIABAAYGAwAriXStAAAAAElFTkSuQmCC";
}
res.render("image", musicData);
});
}
}
musicData.getImage();
}
});
})
}
Het gaat om dit stukje:
[c]
var type = musicData.image.substr(musicData.image.lastIndexOf(".") + 1);
musicData.image = "data:image/" + type + ";base64," + new Buffer(body).toString("base64");
[/c]
Van dit:
Afbeelding niet beschikbaarDe bron kon niet worden geladen (userserve-ak.last.fm).Bron openen ↗
Afbeelding niet beschikbaarDe bron kon niet worden geladen (i.imgur.com).Bron openen ↗
Afbeelding niet beschikbaarDe bron kon niet worden geladen (i.imgur.com).Bron openen ↗Weet iemand wat ik fout doe?
