mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-14 02:23:31 +01:00
sendFile and fix deleteMessage
This commit is contained in:
@@ -161,7 +161,7 @@ var Client = (function (_EventEmitter) {
|
|||||||
callback = options;
|
callback = options;
|
||||||
}
|
}
|
||||||
|
|
||||||
self.internal.deleteMessage(msg).then(function () {
|
self.internal.deleteMessage(msg, options).then(function () {
|
||||||
callback();
|
callback();
|
||||||
resolve();
|
resolve();
|
||||||
})["catch"](function (e) {
|
})["catch"](function (e) {
|
||||||
@@ -217,6 +217,24 @@ var Client = (function (_EventEmitter) {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// def sendFile
|
||||||
|
|
||||||
|
Client.prototype.sendFile = function sendFile(where, attachment) {
|
||||||
|
var name = arguments.length <= 2 || arguments[2] === undefined ? "image.png" : arguments[2];
|
||||||
|
var callback = arguments.length <= 3 || arguments[3] === undefined ? function (err, m) {} : arguments[3];
|
||||||
|
|
||||||
|
var self = this;
|
||||||
|
return new Promise(function (resolve, reject) {
|
||||||
|
self.internal.sendFile(where, attachment, name).then(function (m) {
|
||||||
|
callback(null, m);
|
||||||
|
resolve(m);
|
||||||
|
})["catch"](function (e) {
|
||||||
|
callback(e);
|
||||||
|
reject(e);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
return Client;
|
return Client;
|
||||||
})(EventEmitter);
|
})(EventEmitter);
|
||||||
|
|
||||||
|
|||||||
@@ -251,6 +251,33 @@ var InternalClient = (function () {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
InternalClient.prototype.sendFile = function sendFile(where, _file) {
|
||||||
|
var name = arguments.length <= 2 || arguments[2] === undefined ? "image.png" : arguments[2];
|
||||||
|
|
||||||
|
var self = this;
|
||||||
|
return new Promise(function (resolve, reject) {
|
||||||
|
self.resolver.resolveChannel(where).then(next)["catch"](function (e) {
|
||||||
|
return reject(new Error("couldn't resolve to channel - " + e));
|
||||||
|
});
|
||||||
|
|
||||||
|
function next(channel) {
|
||||||
|
|
||||||
|
var file = self.resolver.resolveFile(_file);
|
||||||
|
|
||||||
|
request.post(Endpoints.CHANNEL_MESSAGES(channel.id)).set("authorization", self.token).attach("file", file, name).end(function (err, res) {
|
||||||
|
|
||||||
|
if (err) {
|
||||||
|
reject(new Error(err.response.text));
|
||||||
|
} else {
|
||||||
|
resolve(channel.messages.add(new Message(res.body, channel, self.client)));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
// def getChannelLogs
|
||||||
|
|
||||||
InternalClient.prototype.getChannelLogs = function getChannelLogs(_channel) {
|
InternalClient.prototype.getChannelLogs = function getChannelLogs(_channel) {
|
||||||
var limit = arguments.length <= 1 || arguments[1] === undefined ? 500 : arguments[1];
|
var limit = arguments.length <= 1 || arguments[1] === undefined ? 500 : arguments[1];
|
||||||
var options = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];
|
var options = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||||
|
|
||||||
|
var fs = require("fs");
|
||||||
|
|
||||||
var User = require("../../Structures/User.js"),
|
var User = require("../../Structures/User.js"),
|
||||||
Channel = require("../../Structures/Channel.js"),
|
Channel = require("../../Structures/Channel.js"),
|
||||||
TextChannel = require("../../Structures/TextChannel.js"),
|
TextChannel = require("../../Structures/TextChannel.js"),
|
||||||
@@ -18,6 +20,14 @@ var Resolver = (function () {
|
|||||||
this.internal = internal;
|
this.internal = internal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Resolver.prototype.resolveFile = function resolveFile(resource) {
|
||||||
|
if (typeof resource === "string" || resource instanceof String) {
|
||||||
|
return fs.createReadStream(resource);
|
||||||
|
} else {
|
||||||
|
return resource;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
Resolver.prototype.resolveMentions = function resolveMentions(resource) {
|
Resolver.prototype.resolveMentions = function resolveMentions(resource) {
|
||||||
// resource is a string
|
// resource is a string
|
||||||
var _mentions = [];
|
var _mentions = [];
|
||||||
|
|||||||
21
lib/index.js
21
lib/index.js
@@ -9,26 +9,7 @@ a.on("debug", function (m) {
|
|||||||
return console.log("[debug]", m);
|
return console.log("[debug]", m);
|
||||||
});
|
});
|
||||||
|
|
||||||
a.on("message", function (m) {
|
a.on("message", function (m) {});
|
||||||
if (m.content === "$$$") a.getChannelLogs(m).then(function (logs) {
|
|
||||||
for (var _iterator = logs, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
|
|
||||||
var _ref;
|
|
||||||
|
|
||||||
if (_isArray) {
|
|
||||||
if (_i >= _iterator.length) break;
|
|
||||||
_ref = _iterator[_i++];
|
|
||||||
} else {
|
|
||||||
_i = _iterator.next();
|
|
||||||
if (_i.done) break;
|
|
||||||
_ref = _i.value;
|
|
||||||
}
|
|
||||||
|
|
||||||
var item = _ref;
|
|
||||||
|
|
||||||
console.log(item.author.username + "> " + item.content);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
a.login(process.env["discordEmail"], process.env["discordPass"])["catch"](function (e) {
|
a.login(process.env["discordEmail"], process.env["discordPass"])["catch"](function (e) {
|
||||||
return console.log(e);
|
return console.log(e);
|
||||||
|
|||||||
@@ -138,7 +138,7 @@ class Client extends EventEmitter {
|
|||||||
callback = options;
|
callback = options;
|
||||||
}
|
}
|
||||||
|
|
||||||
self.internal.deleteMessage(msg)
|
self.internal.deleteMessage(msg, options)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
callback();
|
callback();
|
||||||
resolve();
|
resolve();
|
||||||
@@ -194,6 +194,23 @@ class Client extends EventEmitter {
|
|||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// def sendFile
|
||||||
|
sendFile(where, attachment, name="image.png", callback=function(err, m){}){
|
||||||
|
var self = this;
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
self.internal.sendFile(where, attachment, name)
|
||||||
|
.then( m => {
|
||||||
|
callback(null, m);
|
||||||
|
resolve(m);
|
||||||
|
})
|
||||||
|
.catch( e => {
|
||||||
|
callback(e);
|
||||||
|
reject(e);
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = Client;
|
module.exports = Client;
|
||||||
@@ -281,6 +281,36 @@ class InternalClient {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sendFile(where, _file, name="image.png"){
|
||||||
|
var self = this;
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
self.resolver.resolveChannel(where)
|
||||||
|
.then(next)
|
||||||
|
.catch(e => reject(new Error("couldn't resolve to channel - " + e)));
|
||||||
|
|
||||||
|
function next(channel) {
|
||||||
|
|
||||||
|
var file = self.resolver.resolveFile(_file);
|
||||||
|
|
||||||
|
request
|
||||||
|
.post(Endpoints.CHANNEL_MESSAGES(channel.id))
|
||||||
|
.set("authorization", self.token)
|
||||||
|
.attach("file", file, name)
|
||||||
|
.end((err, res) => {
|
||||||
|
|
||||||
|
if(err){
|
||||||
|
reject(new Error(err.response.text));
|
||||||
|
}else{
|
||||||
|
resolve(channel.messages.add(new Message(res.body, channel, self.client)));
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// def getChannelLogs
|
||||||
getChannelLogs(_channel, limit = 500, options = {}) {
|
getChannelLogs(_channel, limit = 500, options = {}) {
|
||||||
var self = this;
|
var self = this;
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
|
var fs = require("fs");
|
||||||
|
|
||||||
var User = require("../../Structures/User.js"),
|
var User = require("../../Structures/User.js"),
|
||||||
Channel = require("../../Structures/Channel.js"),
|
Channel = require("../../Structures/Channel.js"),
|
||||||
TextChannel = require("../../Structures/TextChannel.js"),
|
TextChannel = require("../../Structures/TextChannel.js"),
|
||||||
@@ -14,6 +16,14 @@ class Resolver {
|
|||||||
this.internal = internal;
|
this.internal = internal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
resolveFile(resource) {
|
||||||
|
if (typeof resource === "string" || resource instanceof String) {
|
||||||
|
return fs.createReadStream(resource);
|
||||||
|
} else {
|
||||||
|
return resource;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
resolveMentions(resource) {
|
resolveMentions(resource) {
|
||||||
// resource is a string
|
// resource is a string
|
||||||
var _mentions = [];
|
var _mentions = [];
|
||||||
@@ -41,9 +51,9 @@ class Resolver {
|
|||||||
accepts a Message, Channel, Server, String ID, User, PMChannel
|
accepts a Message, Channel, Server, String ID, User, PMChannel
|
||||||
*/
|
*/
|
||||||
var found = null;
|
var found = null;
|
||||||
if( resource instanceof User ){
|
if (resource instanceof User) {
|
||||||
found = resource;
|
found = resource;
|
||||||
}else if (resource instanceof Message) {
|
} else if (resource instanceof Message) {
|
||||||
found = resource.author;
|
found = resource.author;
|
||||||
} else if (resource instanceof TextChannel) {
|
} else if (resource instanceof TextChannel) {
|
||||||
var lmsg = resource.lastMessage;
|
var lmsg = resource.lastMessage;
|
||||||
@@ -65,9 +75,9 @@ class Resolver {
|
|||||||
// accepts a Message, PMChannel & TextChannel
|
// accepts a Message, PMChannel & TextChannel
|
||||||
var found = null;
|
var found = null;
|
||||||
|
|
||||||
if( resource instanceof TextChannel || resource instanceof PMChannel ){
|
if (resource instanceof TextChannel || resource instanceof PMChannel) {
|
||||||
found = resource.lastMessage;
|
found = resource.lastMessage;
|
||||||
}else if( resource instanceof Message ){
|
} else if (resource instanceof Message) {
|
||||||
found = resource;
|
found = resource;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,12 +6,6 @@ var a = new module.exports.Client();
|
|||||||
a.on("debug", (m) => console.log("[debug]",m));
|
a.on("debug", (m) => console.log("[debug]",m));
|
||||||
|
|
||||||
a.on("message", m => {
|
a.on("message", m => {
|
||||||
if(m.content === "$$$")
|
|
||||||
a.getChannelLogs(m).then( logs => {
|
|
||||||
for(var item of logs){
|
|
||||||
console.log(item.author.username + "> " + item.content);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
a.login(process.env["discordEmail"], process.env["discordPass"]).catch((e)=>console.log(e));
|
a.login(process.env["discordEmail"], process.env["discordPass"]).catch((e)=>console.log(e));
|
||||||
Reference in New Issue
Block a user