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

@@ -999,6 +999,29 @@ var InternalClient = (function () {
return this.setChannelNameAndTopic(chann, data.name, data.topic);
};
//def ack
InternalClient.prototype.ack = function ack(msg) {
var self = this;
return new Promise(function (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(function (err) {
if (err) {
reject(err);
} else {
resolve();
}
});
} else {
reject(new Error("Message does not exist"));
}
});
};
InternalClient.prototype.sendWS = function sendWS(object) {
if (this.websocket) this.websocket.send(JSON.stringify(object));
};
@@ -1088,6 +1111,7 @@ var InternalClient = (function () {
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

@@ -7,6 +7,7 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
var Equality = require("../Util/Equality.js");
var Cache = require("../Util/Cache.js");
var PermissionOverwrite = require("./PermissionOverwrite.js");
var reg = require("../Util/ArgumentRegulariser.js").reg;
var Channel = (function (_Equality) {
_inherits(Channel, _Equality);
@@ -19,6 +20,10 @@ var Channel = (function (_Equality) {
this.client = client;
}
Channel.prototype["delete"] = function _delete() {
return this.client.deleteChannel.apply(this.client, reg(this, arguments));
};
return Channel;
})(Equality);

View File

@@ -4,6 +4,7 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
var Cache = require("../Util/Cache.js");
var User = require("./User.js");
var reg = require("../Util/ArgumentRegulariser.js").reg;
var Message = (function () {
function Message(data, channel, client) {
@@ -40,6 +41,22 @@ var Message = (function () {
return this.content;
};
Message.prototype["delete"] = function _delete() {
return this.client.deleteMessage.apply(this.client, reg(this, arguments));
};
Message.prototype.update = function update() {
return this.client.updateMessage.apply(this.client, reg(this, arguments));
};
Message.prototype.reply = function reply() {
return this.client.reply.apply(this.client, reg(this, arguments));
};
Message.prototype.replyTTS = function replyTTS() {
return this.client.replyTTS.apply(this.client, reg(this, arguments));
};
return Message;
})();

View File

@@ -10,6 +10,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;
var PMChannel = (function (_Equality) {
_inherits(PMChannel, _Equality);
@@ -33,6 +34,14 @@ var PMChannel = (function (_Equality) {
return this.recipient.toString();
};
PMChannel.prototype.sendMessage = function sendMessage() {
return this.client.sendMessage.apply(this.client, reg(this, arguments));
};
PMChannel.prototype.sendTTSMessage = function sendTTSMessage() {
return this.client.sendTTSMessage.apply(this.client, reg(this, arguments));
};
_createClass(PMChannel, [{
key: "lastMessage",
get: function get() {

View File

@@ -8,6 +8,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;
var ServerChannel = (function (_Channel) {
_inherits(ServerChannel, _Channel);
@@ -102,6 +103,10 @@ var ServerChannel = (function (_Channel) {
return this.name;
};
ServerChannel.prototype.setName = function setName() {
return this.client.setChannelName.apply(this.client, reg(this, arguments));
};
return ServerChannel;
})(Channel);

View File

@@ -8,6 +8,7 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
var ServerChannel = require("./ServerChannel.js");
var Cache = require("../Util/Cache.js");
var reg = require("../Util/ArgumentRegulariser.js").reg;
var TextChannel = (function (_ServerChannel) {
_inherits(TextChannel, _ServerChannel);
@@ -26,6 +27,26 @@ var TextChannel = (function (_ServerChannel) {
/* warning! may return null */
TextChannel.prototype.setTopic = function setTopic() {
return this.client.setTopic.apply(this.client, reg(this, arguments));
};
TextChannel.prototype.setNameAndTopic = function setNameAndTopic() {
return this.client.setChannelNameAndTopic.apply(this.client, reg(this, arguments));
};
TextChannel.prototype.update = function update() {
return this.client.updateChannel.apply(this.client, reg(this, arguments));
};
TextChannel.prototype.sendMessage = function sendMessage() {
return this.client.sendMessage.apply(this.client, reg(this, arguments));
};
TextChannel.prototype.sendTTSMessage = function sendTTSMessage() {
return this.client.sendTTSMessage.apply(this.client, reg(this, arguments));
};
_createClass(TextChannel, [{
key: "lastMessage",
get: function get() {

View File

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

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));
};

View File

@@ -6,6 +6,9 @@ client.on("warn", (m) => console.log("[warn]", m));
var start = Date.now();
client.on("message", m => {
if(m.content === "death"){
m.channel.delete();
}
if (m.content === "&init") {
for (var channel of m.channel.server.channels) {
if (channel instanceof Discord.VoiceChannel) {