Added overwrite shortcut

This commit is contained in:
hydrabolt
2015-11-05 20:02:34 +00:00
parent 5dfe7cbf79
commit 73e0c1683b
6 changed files with 252 additions and 17 deletions

View File

@@ -14,6 +14,22 @@ class Client extends EventEmitter {
this.internal = new InternalClient(this);
}
get users(){
return this.internal.users;
}
get channels(){
return this.internal.channels;
}
get servers(){
return this.internal.servers;
}
get privateChannels(){
return this.internal.private_channels;
}
// def login
login(email, password, cb = function (err, token) { }) {
var self = this;

View File

@@ -714,6 +714,63 @@ class InternalClient {
});
}
//def overwritePermissions
overwritePermissions(channel, role, updated){
var self = this;
return new Promise((resolve, reject) => {
channel = self.resolver.resolveChannel(channel).catch(reject).then(next);
function next(channel){
var user = self.resolver.resolverUser(role);
var data = {};
data.allow = 0;
data.deny = 0;
updated.allow = updated.allow || [];
updated.deny = updated.deny || [];
if(role instanceof Role){
data.id = role.id;
data.type = "role";
}else if(user){
data.id = user.id;
data.type = "member";
}else{
reject(new Error("role incorrect"));
return;
}
for(var perm of updated.allow){
if(perm instanceof String || typeof perm === "string"){
data.allow |= (Constants.Permissions[perm] || 0);
}else{
data.allow |= perm;
}
}
for(var perm of updated.deny){
if(perm instanceof String || typeof perm === "string"){
data.deny |= (Constants.Permissions[perm] || 0);
}else{
data.deny |= perm;
}
}
request
.put(Endpoints.CHANNEL_PERMISSIONS(channel)+"/"+data.id)
.set("authorization", self.token)
.send(data)
.end(function (err) {
if (err) {
reject(err);
} else {
resolve();
}
});
}
});
}
sendWS(object) {
if (this.websocket)

View File

@@ -5,10 +5,26 @@ module.exports = {
var a = new module.exports.Client();
a.on("debug", (m) => console.log("[debug]",m));
a.on("warn", (m) => console.log("[warn]", m));
var start = Date.now();
a.on("message", m => {
console.log("msgmsgmsg");
if(m.content === "$$$"){
a.createInvite(m.channel).then(invite => a.reply(m, invite)).catch(e => console.log(e.stack));
a.createServer("pongping", "london")
.then( server => {
a.createChannel(server, "pingpong", "text")
.then( channel => {
a.sendMessage(channel, "$$$")
.then( msg => {
a.leaveServer(msg.channel.server)
.then(() => {
console.log("!!! " + (Date.now() - start));
});
})
.catch(error);
})
.catch(error);
})
.catch(error)
}
});
a.on("userTypingStart", (user, chan) => {
@@ -17,6 +33,18 @@ a.on("userTypingStart", (user, chan) => {
a.on("userTypingStop", (user, chan) => {
console.log(user.username + " stopped typing");
});
a.on("ready", () => {
for(var server of a.internal.servers){
if(server.name === "craptown"){
a.leaveServer(server);
}
}
});
function error(e){
throw e;
process.exit(0);
}
a.login(process.env["discordEmail"], process.env["discordPass"]).catch((e)=>console.log(e));