Added setAvatar

This commit is contained in:
hydrabolt
2015-11-19 16:52:01 +00:00
parent e486ad1a79
commit e08c10507d
7 changed files with 78 additions and 13 deletions

View File

@@ -713,6 +713,23 @@ var Client = (function (_EventEmitter) {
});
};
//def setAvatar
Client.prototype.setAvatar = function setAvatar(avatar) {
var callback = arguments.length <= 1 || arguments[1] === undefined ? function (err) {} : arguments[1];
var self = this;
return new Promise(function (resolve, reject) {
self.internal.setAvatar(avatar).then(function () {
callback();
resolve();
})["catch"](function (err) {
callback(err);
reject(err);
});
});
};
//def joinVoiceChannel
Client.prototype.joinVoiceChannel = function joinVoiceChannel(channel) {

View File

@@ -988,7 +988,7 @@ var InternalClient = (function () {
var self = this;
return new Promise(function (resolve, reject) {
request.patch(Endpoints.ME).set("authorization", self.token).send({
avatar: data.avatar || self.user.avatar,
avatar: self.resolver.resolveToBase64(data.avatar) || self.user.avatar,
email: data.email || self.email,
new_password: data.new_password || null,
password: data.password || self.password,
@@ -1003,6 +1003,12 @@ var InternalClient = (function () {
});
};
//def setAvatar
InternalClient.prototype.setAvatar = function setAvatar(avatar) {
return this.updateDetails({ avatar: avatar });
};
//def setUsername
InternalClient.prototype.setUsername = function setUsername(username) {

View File

@@ -1,4 +1,5 @@
"use strict";
/* global Buffer */
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
@@ -21,6 +22,14 @@ var Resolver = (function () {
this.internal = internal;
}
Resolver.prototype.resolveToBase64 = function resolveToBase64(resource) {
if (resource instanceof Buffer) {
resource = resource.toString("base64");
resource = "data:image/jpg;base64," + resource;
}
return resource;
};
Resolver.prototype.resolveInviteID = function resolveInviteID(resource) {
if (resource instanceof Invite) {
return resource.id;

View File

@@ -710,6 +710,22 @@ class Client extends EventEmitter {
});
}
//def setAvatar
setAvatar(avatar, callback = function (err) { }) {
var self = this;
return new Promise((resolve, reject) => {
self.internal.setAvatar(avatar)
.then(() => {
callback();
resolve();
})
.catch(err => {
callback(err);
reject(err);
});
});
}
//def joinVoiceChannel
joinVoiceChannel(channel, callback = function (err) { }) {
var self = this;

View File

@@ -1056,7 +1056,7 @@ class InternalClient {
.patch(Endpoints.ME)
.set("authorization", self.token)
.send({
avatar: data.avatar || self.user.avatar,
avatar: self.resolver.resolveToBase64(data.avatar) || self.user.avatar,
email : data.email || self.email,
new_password : data.new_password || null,
password : data.password || self.password,
@@ -1072,6 +1072,11 @@ class InternalClient {
});
}
//def setAvatar
setAvatar(avatar) {
return this.updateDetails({avatar});
}
//def setUsername
setUsername(username) {
return this.updateDetails({username});

View File

@@ -1,4 +1,5 @@
"use strict";
/* global Buffer */
var fs = require("fs");
@@ -16,11 +17,19 @@ class Resolver {
constructor(internal) {
this.internal = internal;
}
resolveInviteID(resource){
if(resource instanceof Invite){
resolveToBase64(resource) {
if (resource instanceof Buffer) {
resource = resource.toString("base64");
resource = "data:image/jpg;base64," + resource;
}
return resource;
}
resolveInviteID(resource) {
if (resource instanceof Invite) {
return resource.id;
}else if (typeof resource == "string" || resource instanceof String) {
} else if (typeof resource == "string" || resource instanceof String) {
if (resource.indexOf("http") === 0) {
var split = resource.split("/");
@@ -33,15 +42,15 @@ class Resolver {
return null;
}
resolveServer(resource){
if(resource instanceof Server){
resolveServer(resource) {
if (resource instanceof Server) {
return resource;
}else if(resource instanceof ServerChannel){
} else if (resource instanceof ServerChannel) {
return resource.server;
}else if(resource instanceof String || typeof resource === "string"){
} else if (resource instanceof String || typeof resource === "string") {
return this.internal.servers.get("id", resource);
}else if(resource instanceof Message){
if(resource.channel instanceof TextChannel){
} else if (resource instanceof Message) {
if (resource.channel instanceof TextChannel) {
return resource.server;
}
}
@@ -118,7 +127,7 @@ class Resolver {
resolveVoiceChannel(resource) {
// resolveChannel will also work but this is more apt
if(resource instanceof VoiceChannel){
if (resource instanceof VoiceChannel) {
return resource;
}
return null;

View File

@@ -13,6 +13,9 @@ client.on("message", m => {
client.stopTyping(m.channel);
} else if (m.content === "changename") {
client.setUsername("Hydrabot!");
} else if (m.content === "setav") {
var fs = require("fs");
client.setAvatar(fs.readFileSync("./test/image.png"));
}
});