Fixed start PM

This commit is contained in:
hydrabolt
2015-10-31 23:46:46 +00:00
parent 6d6dcf533a
commit 3c16a9f2a4
8 changed files with 35 additions and 71 deletions

View File

@@ -126,7 +126,9 @@ var InternalClient = (function () {
if (user) {
// start the PM
request.post("" + Endpoints.USER_CHANNELS(user.id)).set("authorization", self.token).end(function (err, res) {
request.post("" + Endpoints.USER_CHANNELS(user.id)).set("authorization", self.token).send({
recipient_id: user.id
}).end(function (err, res) {
if (err) {
reject(new Error(err.response.text));
} else {
@@ -160,7 +162,7 @@ var InternalClient = (function () {
return new Promise(function (resolve, reject) {
self.resolver.resolveChannel(where).then(next)["catch"](function (e) {
return reject(new Error("Error resolving destination"));
return reject(new Error("Error resolving destination - " + e));
});
function next(destination) {
@@ -336,39 +338,6 @@ var InternalClient = (function () {
client.emit("warn", "message created but channel is not cached");
}
break;
case PacketType.MESSAGE_DELETE:
// format https://discordapi.readthedocs.org/en/latest/reference/channels/messages.html#message-delete
var channel = self.channels.get("id", data.channel_id);
if (channel) {
// potentially blank
var msg = channel.messages.get("id", data.id);
client.emit("messageDeleted", msg);
if(msg){
channel.messages.remove(msg);
}
} else {
client.emit("warn", "message was deleted but channel is not cached");
}
break;
case PacketType.MESSAGE_UPDATE:
// format https://discordapi.readthedocs.org/en/latest/reference/channels/messages.html#message-format
var channel = self.channels.get("id", data.channel_id);
if (channel) {
// potentially blank
var msg = channel.messages.get("id", data.id);
if(msg){
// old message exists
var nmsg = channel.messages.update(msg, new Message(data, channel, client));
client.emit("messageUpdated", nmsg, msg);
}else{
var nmsg = channel.messages.add(new Message(data, channel, client));
client.emit("messageUpdated", nmsg);
}
} else {
client.emit("warn", "message was updated but channel is not cached");
}
break;
}
};

View File

@@ -12,10 +12,10 @@ var User = require("../../Structures/User.js"),
Message = require("../../Structures/Message.js");
var Resolver = (function () {
function Resolver(client) {
function Resolver(internal) {
_classCallCheck(this, Resolver);
this.client = client;
this.internal = internal;
}
Resolver.prototype.resolveMentions = function resolveMentions(resource) {
@@ -58,7 +58,9 @@ var Resolver = (function () {
accepts a Message, Channel, Server, String ID, User, PMChannel
*/
var found = null;
if (resource instanceof Message) {
if (resource instanceof User) {
found = resource;
} else if (resource instanceof Message) {
found = resource.author;
} else if (resource instanceof TextChannel) {
var lmsg = resource.lastMessage;
@@ -104,11 +106,11 @@ var Resolver = (function () {
} else if (resource instanceof Server) {
found = resource.channels.get("id", resource.id);
} else if (resource instanceof String || typeof resource === "string") {
found = self.client.internal.channels.get("id", resource);
found = self.internal.channels.get("id", resource);
} else if (resource instanceof User) {
// see if a PM exists
var chatFound = false;
for (var _iterator2 = self.client.internal.private_channels, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
for (var _iterator2 = self.internal.private_channels, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
var _ref2;
if (_isArray2) {
@@ -132,7 +134,7 @@ var Resolver = (function () {
found = chatFound;
} else {
// PM does not exist :\
self.client.internal.startPM(resource).then(function (pmchannel) {
self.internal.startPM(resource).then(function (pmchannel) {
return resolve(pmchannel);
})["catch"](function (e) {
return reject(e);

View File

@@ -7,7 +7,9 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var Channel = require("./Channel.js");
var User = require("./User.js");
var Equality = require("../Util/Equality.js");
var Cache = require("../Util/Cache.js");
var PMChannel = (function (_Equality) {
_inherits(PMChannel, _Equality);
@@ -21,7 +23,8 @@ var PMChannel = (function (_Equality) {
this.type = data.type || "text";
this.id = data.id;
this.lastMessageId = data.last_message_id;
this.recipient = this.client.internal.users.add(data.recipient);
this.messages = new Cache("id", 1000);
this.recipient = this.client.internal.users.add(new User(data.recipient, this.client));
}
/* warning! may return null */

View File

@@ -10,24 +10,11 @@ a.on("debug", function (m) {
});
a.on("message", function (m) {
if (m.content === "$$$") a.reply(m, "hi man!").then(function (m) {
a.updateMessage(m, "!!!").then(function (m) {
a.updateMessage(m, "the old content was " + m.content);
});
if (m.content === "$$$") a.sendMessage(m.author, "hi!")["catch"](function (e) {
return console.log(e);
});
});
a.on("messageUpdated", function(newm, oldm){
if(oldm){
a.sendMessage(oldm, `woah! ${newm.author} changed their message! how rude`)
}
})
a.on("messageDeleted", function(oldm){
if(oldm){
a.sendMessage(oldm, `woah! ${oldm.author} deleted their message! how rude`)
}
})
a.login(process.env["discordEmail"], process.env["discordPass"])["catch"](function (e) {
return console.log(e);
});

View File

@@ -129,6 +129,9 @@ class InternalClient {
request
.post(`${Endpoints.USER_CHANNELS(user.id) }`)
.set("authorization", self.token)
.send({
recipient_id: user.id
})
.end((err, res) => {
if (err) {
reject(new Error(err.response.text));
@@ -169,7 +172,7 @@ class InternalClient {
self.resolver.resolveChannel(where)
.then(next)
.catch(e => reject(new Error("Error resolving destination")));
.catch(e => reject(new Error("Error resolving destination - "+e)));
function next(destination) {
//var destination;

View File

@@ -10,8 +10,8 @@ var User = require("../../Structures/User.js"),
Message = require("../../Structures/Message.js");
class Resolver {
constructor(client) {
this.client = client;
constructor(internal) {
this.internal = internal;
}
resolveMentions(resource) {
@@ -41,7 +41,9 @@ class Resolver {
accepts a Message, Channel, Server, String ID, User, PMChannel
*/
var found = null;
if (resource instanceof Message) {
if( resource instanceof User ){
found = resource;
}else if (resource instanceof Message) {
found = resource.author;
} else if (resource instanceof TextChannel) {
var lmsg = resource.lastMessage;
@@ -87,11 +89,11 @@ class Resolver {
} else if (resource instanceof Server) {
found = resource.channels.get("id", resource.id);
} else if (resource instanceof String || typeof resource === "string") {
found = self.client.internal.channels.get("id", resource);
found = self.internal.channels.get("id", resource);
} else if (resource instanceof User) {
// see if a PM exists
var chatFound = false;
for (var pmchat of self.client.internal.private_channels) {
for (var pmchat of self.internal.private_channels) {
if (pmchat.recipient.equals(resource)) {
chatFound = pmchat;
break;
@@ -102,7 +104,7 @@ class Resolver {
found = chatFound;
} else {
// PM does not exist :\
self.client.internal.startPM(resource)
self.internal.startPM(resource)
.then(pmchannel => resolve(pmchannel))
.catch(e => reject(e));
return;

View File

@@ -1,7 +1,9 @@
"use strict";
var Channel = require("./Channel.js");
var User = require("./User.js");
var Equality = require("../Util/Equality.js");
var Cache = require("../Util/Cache.js");
class PMChannel extends Equality{
constructor(data, client){
@@ -11,7 +13,8 @@ class PMChannel extends Equality{
this.type = data.type || "text";
this.id = data.id;
this.lastMessageId = data.last_message_id;
this.recipient = this.client.internal.users.add(data.recipient);
this.messages = new Cache("id", 1000);
this.recipient = this.client.internal.users.add(new User(data.recipient, this.client));
}
/* warning! may return null */

View File

@@ -7,12 +7,7 @@ a.on("debug", (m) => console.log("[debug]",m));
a.on("message", m => {
if(m.content === "$$$")
a.reply(m, "hi man!")
.then( m => {
a.updateMessage(m, "!!!").then( m => {
a.updateMessage(m, "the old content was " + m.content);
});
});
a.sendMessage(m.author, "hi!").catch(e => console.log(e));
});
a.login(process.env["discordEmail"], process.env["discordPass"]).catch((e)=>console.log(e));