From ac3608feb459def06629035bc1df0836feca1a80 Mon Sep 17 00:00:00 2001 From: hydrabolt Date: Fri, 6 Nov 2015 20:36:35 +0000 Subject: [PATCH] more channel features --- lib/Client/Client.js | 54 +++++++++++++++++++++++++++++ lib/Client/InternalClient.js | 64 ++++++++++++++++++++++++++++++++++ lib/index.js | 6 +--- src/Client/Client.js | 54 +++++++++++++++++++++++++++++ src/Client/InternalClient.js | 66 ++++++++++++++++++++++++++++++++++++ src/index.js | 4 +-- 6 files changed, 240 insertions(+), 8 deletions(-) diff --git a/lib/Client/Client.js b/lib/Client/Client.js index 04d2d88a0..862d6311f 100644 --- a/lib/Client/Client.js +++ b/lib/Client/Client.js @@ -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() { diff --git a/lib/Client/InternalClient.js b/lib/Client/InternalClient.js index 76d620f2d..e1ab0193a 100644 --- a/lib/Client/InternalClient.js +++ b/lib/Client/InternalClient.js @@ -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)); }; diff --git a/lib/index.js b/lib/index.js index 6b382d905..2c2c1a317 100644 --- a/lib/index.js +++ b/lib/index.js @@ -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) { diff --git a/src/Client/Client.js b/src/Client/Client.js index 8e85f3fc6..cbfae507d 100644 --- a/src/Client/Client.js +++ b/src/Client/Client.js @@ -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; \ No newline at end of file diff --git a/src/Client/InternalClient.js b/src/Client/InternalClient.js index 5336188d2..13bc9ae38 100644 --- a/src/Client/InternalClient.js +++ b/src/Client/InternalClient.js @@ -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) diff --git a/src/index.js b/src/index.js index 9d6d8fbba..446644412 100644 --- a/src/index.js +++ b/src/index.js @@ -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) => {