mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-18 12:33:30 +01:00
Finished embeds
This commit is contained in:
@@ -17,6 +17,7 @@ var PMChannel = require("./PMChannel.js");
|
|||||||
var ServerPermissions = require("./ServerPermissions.js");
|
var ServerPermissions = require("./ServerPermissions.js");
|
||||||
var gameMap = require("../ref/gameMap.json");
|
var gameMap = require("../ref/gameMap.json");
|
||||||
var Color = require("../ref/colours.js");
|
var Color = require("../ref/colours.js");
|
||||||
|
var Embeddable = require("./Embeds/IEmbed.js");
|
||||||
var zlib;
|
var zlib;
|
||||||
|
|
||||||
var EventEmitter = require('events');
|
var EventEmitter = require('events');
|
||||||
|
|||||||
@@ -4,6 +4,22 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
|
|||||||
|
|
||||||
var Embed = function Embed(data) {
|
var Embed = function Embed(data) {
|
||||||
_classCallCheck(this, Embed);
|
_classCallCheck(this, Embed);
|
||||||
|
|
||||||
|
this.url = data.url;
|
||||||
|
this.type = data.type;
|
||||||
|
this.title = data.title;
|
||||||
|
this.thumbnail = data.thumbnail;
|
||||||
|
//width
|
||||||
|
//height
|
||||||
|
//url
|
||||||
|
//proxy_url
|
||||||
|
this.provider = data.provider;
|
||||||
|
//url
|
||||||
|
//name
|
||||||
|
this.description = data.description;
|
||||||
|
this.author = data.author;
|
||||||
|
//url
|
||||||
|
//name
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = Embed;
|
module.exports = Embed;
|
||||||
19
lib/Embeds/IEmbed.js
Normal file
19
lib/Embeds/IEmbed.js
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
var ImageEmbed = require("./ImageEmbed.js"),
|
||||||
|
VideoEmbed = require("./VideoEmbed.js"),
|
||||||
|
LinkEmbed = require("./LinkEmbed.js");
|
||||||
|
|
||||||
|
exports.createEmbed = function (data) {
|
||||||
|
switch (data.type) {
|
||||||
|
case "image":
|
||||||
|
return new ImageEmbed(data);
|
||||||
|
break;
|
||||||
|
case "video":
|
||||||
|
return new VideoEmbed(data);
|
||||||
|
break;
|
||||||
|
case "link":
|
||||||
|
return new LinkEmbed(data);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -13,6 +13,10 @@ var VideoEmbed = (function (_Embed) {
|
|||||||
_classCallCheck(this, VideoEmbed);
|
_classCallCheck(this, VideoEmbed);
|
||||||
|
|
||||||
_Embed.call(this, data);
|
_Embed.call(this, data);
|
||||||
|
this.video = data.video;
|
||||||
|
//width
|
||||||
|
//height
|
||||||
|
//url
|
||||||
}
|
}
|
||||||
|
|
||||||
return VideoEmbed;
|
return VideoEmbed;
|
||||||
|
|||||||
@@ -19,7 +19,11 @@ var Discord = {
|
|||||||
ChannelPermissions: require("./ChannelPermissions.js"),
|
ChannelPermissions: require("./ChannelPermissions.js"),
|
||||||
EvaluatedPermissiosn: require("./EvaluatedPermissions.js"),
|
EvaluatedPermissiosn: require("./EvaluatedPermissions.js"),
|
||||||
VoiceChannel: require("./VoiceChannel.js"),
|
VoiceChannel: require("./VoiceChannel.js"),
|
||||||
gameMap: require("../ref/gameMap.json")
|
gameMap: require("../ref/gameMap.json"),
|
||||||
|
Embed: require("./Embeds/Embed.js"),
|
||||||
|
LinkEmbed: require("./Embeds/LinkEmbed.js"),
|
||||||
|
VideoEmbed: require("./Embeds/VideoEmbed.js"),
|
||||||
|
ImageEmbed: require("./Embeds/ImageEmbed.js")
|
||||||
};
|
};
|
||||||
|
|
||||||
Discord.patchStrings = function () {
|
Discord.patchStrings = function () {
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ var _createClass = (function () { function defineProperties(target, props) { for
|
|||||||
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 PMChannel = require("./PMChannel.js");
|
var PMChannel = require("./PMChannel.js");
|
||||||
|
var Embeddable = require("./Embeds/IEmbed.js");
|
||||||
|
|
||||||
var Message = (function () {
|
var Message = (function () {
|
||||||
function Message(data, channel, mentions, author) {
|
function Message(data, channel, mentions, author) {
|
||||||
@@ -16,7 +17,27 @@ var Message = (function () {
|
|||||||
this.mentions = mentions;
|
this.mentions = mentions;
|
||||||
this.everyoneMentioned = data.mention_everyone;
|
this.everyoneMentioned = data.mention_everyone;
|
||||||
this.id = data.id;
|
this.id = data.id;
|
||||||
this.embeds = data.embeds;
|
this.embeds = [];
|
||||||
|
|
||||||
|
if (data.embeds) {
|
||||||
|
for (var _iterator = data.embeds, _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 embed = _ref;
|
||||||
|
|
||||||
|
this.embeds.push(Embeddable.createEmbed(embed));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
this.editedTimestamp = data.edited_timestamp;
|
this.editedTimestamp = data.edited_timestamp;
|
||||||
this.content = data.content.trim();
|
this.content = data.content.trim();
|
||||||
this.channel = channel;
|
this.channel = channel;
|
||||||
@@ -36,19 +57,19 @@ var Message = (function () {
|
|||||||
|
|
||||||
Message.prototype.isMentioned = function isMentioned(user) {
|
Message.prototype.isMentioned = function isMentioned(user) {
|
||||||
var id = user.id ? user.id : user;
|
var id = user.id ? user.id : user;
|
||||||
for (var _iterator = this.mentions, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
|
for (var _iterator2 = this.mentions, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
|
||||||
var _ref;
|
var _ref2;
|
||||||
|
|
||||||
if (_isArray) {
|
if (_isArray2) {
|
||||||
if (_i >= _iterator.length) break;
|
if (_i2 >= _iterator2.length) break;
|
||||||
_ref = _iterator[_i++];
|
_ref2 = _iterator2[_i2++];
|
||||||
} else {
|
} else {
|
||||||
_i = _iterator.next();
|
_i2 = _iterator2.next();
|
||||||
if (_i.done) break;
|
if (_i2.done) break;
|
||||||
_ref = _i.value;
|
_ref2 = _i2.value;
|
||||||
}
|
}
|
||||||
|
|
||||||
var mention = _ref;
|
var mention = _ref2;
|
||||||
|
|
||||||
if (mention.id === id) {
|
if (mention.id === id) {
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ var PMChannel = require("./PMChannel.js");
|
|||||||
var ServerPermissions = require("./ServerPermissions.js");
|
var ServerPermissions = require("./ServerPermissions.js");
|
||||||
var gameMap = require("../ref/gameMap.json");
|
var gameMap = require("../ref/gameMap.json");
|
||||||
var Color = require("../ref/colours.js");
|
var Color = require("../ref/colours.js");
|
||||||
|
var Embeddable = require("./Embeds/IEmbed.js");
|
||||||
var zlib;
|
var zlib;
|
||||||
|
|
||||||
var EventEmitter = require('events');
|
var EventEmitter = require('events');
|
||||||
|
|||||||
@@ -1,6 +1,20 @@
|
|||||||
class Embed{
|
class Embed{
|
||||||
constructor(data){
|
constructor(data){
|
||||||
|
this.url = data.url;
|
||||||
|
this.type = data.type;
|
||||||
|
this.title = data.title;
|
||||||
|
this.thumbnail = data.thumbnail;
|
||||||
|
//width
|
||||||
|
//height
|
||||||
|
//url
|
||||||
|
//proxy_url
|
||||||
|
this.provider = data.provider;
|
||||||
|
//url
|
||||||
|
//name
|
||||||
|
this.description = data.description;
|
||||||
|
this.author = data.author;
|
||||||
|
//url
|
||||||
|
//name
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
17
src/Embeds/IEmbed.js
Normal file
17
src/Embeds/IEmbed.js
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
var ImageEmbed = require("./ImageEmbed.js"),
|
||||||
|
VideoEmbed = require("./VideoEmbed.js"),
|
||||||
|
LinkEmbed = require("./LinkEmbed.js");
|
||||||
|
|
||||||
|
exports.createEmbed = function(data){
|
||||||
|
switch(data.type){
|
||||||
|
case "image":
|
||||||
|
return new ImageEmbed(data);
|
||||||
|
break;
|
||||||
|
case "video":
|
||||||
|
return new VideoEmbed(data);
|
||||||
|
break;
|
||||||
|
case "link":
|
||||||
|
return new LinkEmbed(data);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,6 +3,10 @@ var Embed = require("./Embed.js");
|
|||||||
class VideoEmbed extends Embed{
|
class VideoEmbed extends Embed{
|
||||||
constructor(data){
|
constructor(data){
|
||||||
super(data);
|
super(data);
|
||||||
|
this.video = data.video;
|
||||||
|
//width
|
||||||
|
//height
|
||||||
|
//url
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,11 @@ var Discord = {
|
|||||||
ChannelPermissions : require("./ChannelPermissions.js"),
|
ChannelPermissions : require("./ChannelPermissions.js"),
|
||||||
EvaluatedPermissiosn : require("./EvaluatedPermissions.js"),
|
EvaluatedPermissiosn : require("./EvaluatedPermissions.js"),
|
||||||
VoiceChannel : require("./VoiceChannel.js"),
|
VoiceChannel : require("./VoiceChannel.js"),
|
||||||
gameMap : require("../ref/gameMap.json")
|
gameMap : require("../ref/gameMap.json"),
|
||||||
|
Embed : require("./Embeds/Embed.js"),
|
||||||
|
LinkEmbed : require("./Embeds/LinkEmbed.js"),
|
||||||
|
VideoEmbed : require("./Embeds/VideoEmbed.js"),
|
||||||
|
ImageEmbed : require("./Embeds/ImageEmbed.js"),
|
||||||
}
|
}
|
||||||
|
|
||||||
Discord.patchStrings = function () {
|
Discord.patchStrings = function () {
|
||||||
|
|||||||
@@ -1,42 +1,50 @@
|
|||||||
var PMChannel = require("./PMChannel.js");
|
var PMChannel = require("./PMChannel.js");
|
||||||
|
var Embeddable = require("./Embeds/IEmbed.js");
|
||||||
|
|
||||||
class Message{
|
class Message {
|
||||||
constructor(data, channel, mentions, author){
|
constructor(data, channel, mentions, author) {
|
||||||
this.tts = data.tts;
|
this.tts = data.tts;
|
||||||
this.timestamp = Date.parse(data.timestamp);
|
this.timestamp = Date.parse(data.timestamp);
|
||||||
this.nonce = data.nonce;
|
this.nonce = data.nonce;
|
||||||
this.mentions = mentions;
|
this.mentions = mentions;
|
||||||
this.everyoneMentioned = data.mention_everyone;
|
this.everyoneMentioned = data.mention_everyone;
|
||||||
this.id = data.id;
|
this.id = data.id;
|
||||||
this.embeds = data.embeds;
|
this.embeds = [];
|
||||||
|
|
||||||
|
if (data.embeds) {
|
||||||
|
for (var embed of data.embeds) {
|
||||||
|
this.embeds.push( Embeddable.createEmbed(embed) );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
this.editedTimestamp = data.edited_timestamp;
|
this.editedTimestamp = data.edited_timestamp;
|
||||||
this.content = data.content.trim();
|
this.content = data.content.trim();
|
||||||
this.channel = channel;
|
this.channel = channel;
|
||||||
|
|
||||||
if(this.isPrivate){
|
if (this.isPrivate) {
|
||||||
this.author = this.channel.client.getUser("id", author.id);
|
this.author = this.channel.client.getUser("id", author.id);
|
||||||
}else{
|
} else {
|
||||||
this.author = this.channel.server.getMember("id", author.id) || this.channel.client.getUser("id", author.id);
|
this.author = this.channel.server.getMember("id", author.id) || this.channel.client.getUser("id", author.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.attachments = data.attachments;
|
this.attachments = data.attachments;
|
||||||
}
|
}
|
||||||
|
|
||||||
isMentioned( user ){
|
isMentioned(user) {
|
||||||
var id = (user.id ? user.id : user);
|
var id = (user.id ? user.id : user);
|
||||||
for(var mention of this.mentions){
|
for (var mention of this.mentions) {
|
||||||
if(mention.id === id){
|
if (mention.id === id) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
get sender(){
|
get sender() {
|
||||||
return this.author;
|
return this.author;
|
||||||
}
|
}
|
||||||
|
|
||||||
get isPrivate(){
|
get isPrivate() {
|
||||||
return this.channel.isPrivate;
|
return this.channel.isPrivate;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,6 +40,11 @@ mybot.once("ready", function () {
|
|||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
mybot.on("messageUpdate", function(newMessage, oldMessage){
|
||||||
|
// links and videos will create a loop
|
||||||
|
mybot.reply(newMessage, JSON.stringify(newMessage.embeds, null, 4));
|
||||||
|
})
|
||||||
|
|
||||||
mybot.on("serverUpdate", function (oldserver, newserver) {
|
mybot.on("serverUpdate", function (oldserver, newserver) {
|
||||||
console.log("server changed! " + mybot.servers.length);
|
console.log("server changed! " + mybot.servers.length);
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user