more channel features

This commit is contained in:
hydrabolt
2015-11-06 20:36:35 +00:00
parent 48616c4505
commit ac3608feb4
6 changed files with 240 additions and 8 deletions

View File

@@ -478,6 +478,60 @@ var Client = (function (_EventEmitter) {
});
};
//def setChannelName
Client.prototype.setChannelName = function setChannelName(channel, topic) {
var callback = arguments.length <= 2 || arguments[2] === undefined ? function (err) {} : arguments[2];
var self = this;
return new Promise(function (resolve, reject) {
self.internal.setChannelName(channel, topic).then(function () {
callback();
resolve();
})["catch"](function (e) {
callback(e);
reject(e);
});
});
};
//def setChannelNameAndTopic
Client.prototype.setChannelNameAndTopic = function setChannelNameAndTopic(channel, name, topic) {
var callback = arguments.length <= 3 || arguments[3] === undefined ? function (err) {} : arguments[3];
var self = this;
return new Promise(function (resolve, reject) {
self.internal.setChannelNameAndTopic(channel, name, topic).then(function () {
callback();
resolve();
})["catch"](function (e) {
callback(e);
reject(e);
});
});
};
//def updateChannel
Client.prototype.updateChannel = function updateChannel(channel, data) {
var callback = arguments.length <= 2 || arguments[2] === undefined ? function (err) {} : arguments[2];
var self = this;
return new Promise(function (resolve, reject) {
self.internal.updateChannel(channel, data).then(function () {
callback();
resolve();
})["catch"](function (e) {
callback(e);
reject(e);
});
});
};
_createClass(Client, [{
key: "users",
get: function get() {

View File

@@ -757,6 +757,70 @@ var InternalClient = (function () {
});
};
//def setChannelName
InternalClient.prototype.setChannelName = function setChannelName(chann) {
var name = arguments.length <= 1 || arguments[1] === undefined ? "discordjs_is_the_best" : arguments[1];
var self = this;
return new Promise(function (resolve, reject) {
self.resolver.resolveChannel(chann).then(next)["catch"](reject);
function next(channel) {
request.patch(Endpoints.CHANNEL(channel.id)).set("authorization", self.token).send({
name: name,
position: 0,
topic: channel.topic
}).end(function (err, res) {
if (err) {
reject(err);
} else {
channel.name = res.body.name;
resolve();
}
});
}
});
};
//def setChannelNameAndTopic
InternalClient.prototype.setChannelNameAndTopic = function setChannelNameAndTopic(chann) {
var name = arguments.length <= 1 || arguments[1] === undefined ? "discordjs_is_the_best" : arguments[1];
var topic = arguments.length <= 2 || arguments[2] === undefined ? "" : arguments[2];
var self = this;
return new Promise(function (resolve, reject) {
self.resolver.resolveChannel(chann).then(next)["catch"](reject);
function next(channel) {
request.patch(Endpoints.CHANNEL(channel.id)).set("authorization", self.token).send({
name: name,
position: 0,
topic: topic
}).end(function (err, res) {
if (err) {
reject(err);
} else {
channel.name = res.body.name;
channel.topic = res.body.topic;
resolve();
}
});
}
});
};
//def updateChannel
InternalClient.prototype.updateChannel = function updateChannel(chann, data) {
return this.setChannelNameAndTopic(chann, data.name, data.topic);
};
InternalClient.prototype.sendWS = function sendWS(object) {
if (this.websocket) this.websocket.send(JSON.stringify(object));
};

View File

@@ -14,11 +14,7 @@ a.on("warn", function (m) {
var start = Date.now();
a.on("message", function (m) {
if (m.content === "$$$") {
a.internal.overwritePermissions(m.channel, m.author, {
manageRoles: true
})["catch"](error).then(function () {
return console.log("hihihihihi!");
});
a.internal.setTopic(m.channel, "a channel topic!");
}
});
a.on("userTypingStart", function (user, chan) {

View File

@@ -459,6 +459,60 @@ class Client extends EventEmitter {
})
}
//def setChannelName
setChannelName(channel, topic, callback=function(err){}){
var self = this;
return new Promise((resolve, reject) => {
self.internal.setChannelName(channel, topic)
.then(() => {
callback();
resolve();
})
.catch(e => {
callback(e);
reject(e);
});
})
}
//def setChannelNameAndTopic
setChannelNameAndTopic(channel, name, topic, callback=function(err){}){
var self = this;
return new Promise((resolve, reject) => {
self.internal.setChannelNameAndTopic(channel, name, topic)
.then(() => {
callback();
resolve();
})
.catch(e => {
callback(e);
reject(e);
});
})
}
//def updateChannel
updateChannel(channel, data, callback=function(err){}){
var self = this;
return new Promise((resolve, reject) => {
self.internal.updateChannel(channel, data)
.then(() => {
callback();
resolve();
})
.catch(e => {
callback(e);
reject(e);
});
})
}
}
module.exports = Client;

View File

@@ -807,6 +807,72 @@ class InternalClient {
});
}
//def setChannelName
setChannelName(chann, name="discordjs_is_the_best"){
var self = this;
return new Promise((resolve, reject) => {
self.resolver.resolveChannel(chann).then(next).catch(reject);
function next(channel){
request
.patch(Endpoints.CHANNEL(channel.id))
.set("authorization", self.token)
.send({
name : name,
position : 0,
topic : channel.topic
})
.end((err, res) => {
if(err){
reject(err);
}else{
channel.name = res.body.name;
resolve();
}
})
}
});
}
//def setChannelNameAndTopic
setChannelNameAndTopic(chann, name="discordjs_is_the_best", topic=""){
var self = this;
return new Promise((resolve, reject) => {
self.resolver.resolveChannel(chann).then(next).catch(reject);
function next(channel){
request
.patch(Endpoints.CHANNEL(channel.id))
.set("authorization", self.token)
.send({
name : name,
position : 0,
topic : topic
})
.end((err, res) => {
if(err){
reject(err);
}else{
channel.name = res.body.name;
channel.topic = res.body.topic;
resolve();
}
})
}
});
}
//def updateChannel
updateChannel(chann, data){
return this.setChannelNameAndTopic(chann, data.name, data.topic);
}
sendWS(object) {
if (this.websocket)

View File

@@ -8,9 +8,7 @@ a.on("warn", (m) => console.log("[warn]", m));
var start = Date.now();
a.on("message", m => {
if(m.content === "$$$"){
a.internal.overwritePermissions(m.channel, m.author, {
manageRoles : true
}).catch(error).then(()=>console.log("hihihihihi!"));
a.internal.setTopic(m.channel, "a channel topic!");
}
});
a.on("userTypingStart", (user, chan) => {