Merge remote-tracking branch 'upstream/rewrite' into rewrite

This commit is contained in:
abalabahaha
2015-11-15 12:47:43 -08:00
15 changed files with 177 additions and 0 deletions

View File

@@ -1065,6 +1065,33 @@ class InternalClient {
updateChannel(chann, data) {
return this.setChannelNameAndTopic(chann, data.name, data.topic);
}
//def ack
ack(msg){
var self = this;
return new Promise((resolve, reject) => {
msg = self.resolver.resolveMessage(msg);
if(msg){
request
.post(Endpoints.CHANNEL_MESSAGE(msg.channel.id, msg.id)+"/ack")
.set("authorization", self.token)
.end((err) => {
if(err){
reject(err);
}else{
resolve();
}
});
}else{
reject(new Error("Message does not exist"));
}
});
}
sendWS(object) {
if (this.websocket)
@@ -1155,6 +1182,7 @@ class InternalClient {
if (channel) {
var msg = channel.messages.add(new Message(data, channel, client));
client.emit("message", msg);
self.ack(msg);
} else {
client.emit("warn", "message created but channel is not cached");
}

View File

@@ -3,6 +3,7 @@
var Equality = require("../Util/Equality.js");
var Cache = require("../Util/Cache.js");
var PermissionOverwrite = require("./PermissionOverwrite.js");
var reg = require("../Util/ArgumentRegulariser.js").reg;
class Channel extends Equality{
@@ -12,6 +13,10 @@ class Channel extends Equality{
this.client = client;
}
delete(){
return this.client.deleteChannel.apply(this.client, reg(this, arguments));
}
}
module.exports = Channel;

View File

@@ -2,6 +2,7 @@
var Cache = require("../Util/Cache.js");
var User = require("./User.js");
var reg = require("../Util/ArgumentRegulariser.js").reg;
class Message{
constructor(data, channel, client){
@@ -40,6 +41,22 @@ class Message{
toString(){
return this.content;
}
delete(){
return this.client.deleteMessage.apply(this.client, reg(this, arguments));
}
update(){
return this.client.updateMessage.apply(this.client, reg(this, arguments));
}
reply(){
return this.client.reply.apply(this.client, reg(this, arguments));
}
replyTTS(){
return this.client.replyTTS.apply(this.client, reg(this, arguments));
}
}
module.exports = Message;

View File

@@ -4,6 +4,7 @@ var Channel = require("./Channel.js");
var User = require("./User.js");
var Equality = require("../Util/Equality.js");
var Cache = require("../Util/Cache.js");
var reg = require("../Util/ArgumentRegulariser.js").reg;
class PMChannel extends Equality{
constructor(data, client){
@@ -25,6 +26,14 @@ class PMChannel extends Equality{
toString(){
return this.recipient.toString();
}
sendMessage(){
return this.client.sendMessage.apply(this.client, reg(this, arguments));
}
sendTTSMessage(){
return this.client.sendTTSMessage.apply(this.client, reg(this, arguments));
}
}
module.exports = PMChannel;

View File

@@ -4,6 +4,7 @@ var Channel = require("./Channel.js");
var Cache = require("../Util/Cache.js");
var PermissionOverwrite = require("./PermissionOverwrite.js");
var ChannelPermissions = require("./ChannelPermissions.js");
var reg = require("../Util/ArgumentRegulariser.js").reg;
class ServerChannel extends Channel{
constructor(data, client, server){
@@ -63,6 +64,10 @@ class ServerChannel extends Channel{
toString(){
return this.name;
}
setName(){
return this.client.setChannelName.apply(this.client, reg(this, arguments));
}
}
module.exports = ServerChannel;

View File

@@ -2,6 +2,7 @@
var ServerChannel = require("./ServerChannel.js");
var Cache = require("../Util/Cache.js");
var reg = require("../Util/ArgumentRegulariser.js").reg;
class TextChannel extends ServerChannel{
constructor(data, client, server){
@@ -18,6 +19,26 @@ class TextChannel extends ServerChannel{
get lastMessage(){
return this.messages.get("id", this.lastMessageID);
}
setTopic(){
return this.client.setTopic.apply(this.client, reg(this, arguments));
}
setNameAndTopic(){
return this.client.setChannelNameAndTopic.apply(this.client, reg(this, arguments));
}
update(){
return this.client.updateChannel.apply(this.client, reg(this, arguments));
}
sendMessage(){
return this.client.sendMessage.apply(this.client, reg(this, arguments));
}
sendTTSMessage(){
return this.client.sendTTSMessage.apply(this.client, reg(this, arguments));
}
}
module.exports = TextChannel;

View File

@@ -0,0 +1,3 @@
exports.reg = function (c, a) {
return [c].concat(Array.prototype.slice.call(a));
};