added emoji support (#503)

This commit is contained in:
Zman840
2016-08-06 17:29:17 -05:00
committed by abal
parent 0a648e80c9
commit c0ef815f9d
7 changed files with 145 additions and 12 deletions

View File

@@ -4,6 +4,7 @@ exports.__esModule = true;
var Constants = {};
var API = Constants.API = "https://discordapp.com/api";
var CDN = Constants.CDN = "https://cdn.discordapp.com";
var Endpoints = Constants.Endpoints = {
// general endpoints
@@ -26,6 +27,11 @@ var Endpoints = Constants.Endpoints = {
return API + "/invite/" + id;
},
// emojis
EMOJI: function EMOJI(emojiID) {
return CDN + "/emojis/" + emojiID + ".png";
},
// servers
SERVERS: API + "/guilds",
SERVER: function SERVER(serverID) {

58
lib/Structures/Emoji.js Normal file
View File

@@ -0,0 +1,58 @@
"use strict";
exports.__esModule = true;
var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var _Constants = require("../Constants");
/* example data
{
id: '164585980739846145'
name: 'wlfSS',
roles: [ '135829612780322816' ],
require_colons: false,
managed: true,
}
*/
var Emoji = (function () {
function Emoji(data, server) {
_classCallCheck(this, Emoji);
this.server = server;
this.id = data.id;
this.name = data.name;
this.roleList = data.roles;
this.colons = data.require_colons;
this.managed = data.managed;
}
_createClass(Emoji, [{
key: "roles",
get: function get() {
var roleGroup = [];
if (this.managed) {
for (var i = 0; i < this.roleList.length; i++) {
var roleID = this.roleList[i].toString();
var role = this.server.roles.get("id", roleID);
roleGroup.push(role);
}
}
return roleGroup;
}
}, {
key: "getURL",
get: function get() {
return _Constants.Endpoints.EMOJI(this.id);
}
}]);
return Emoji;
})();
exports["default"] = Emoji;
module.exports = exports["default"];

View File

@@ -45,6 +45,10 @@ var _Role = require("./Role");
var _Role2 = _interopRequireDefault(_Role);
var _Emoji = require("./Emoji");
var _Emoji2 = _interopRequireDefault(_Emoji);
var _UtilArgumentRegulariser = require("../Util/ArgumentRegulariser");
var strictKeys = ["region", "ownerID", "name", "id", "icon", "afkTimeout", "afkChannelID"];
@@ -77,6 +81,7 @@ var Server = (function (_Equality) {
this.members = new _UtilCache2["default"]();
this.channels = new _UtilCache2["default"]();
this.roles = new _UtilCache2["default"]();
this.emojis = new _UtilCache2["default"]();
this.icon = data.icon;
this.afkTimeout = data.afk_timeout;
this.afkChannelID = data.afk_channel_id || data.afkChannelID;
@@ -94,6 +99,16 @@ var Server = (function (_Equality) {
});
}
if (data.emojis instanceof _UtilCache2["default"]) {
data.emojis.forEach(function (emoji) {
return _this.emojis.add(emoji);
});
} else {
data.emojis.forEach(function (dataEmoji) {
_this.emojis.add(new _Emoji2["default"](dataEmoji, _this));
});
}
if (data.members instanceof _UtilCache2["default"]) {
data.members.forEach(function (member) {
return _this.members.add(member);

View File

@@ -6,23 +6,23 @@ exports.__esModule = true;
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var TokenCacher = (function () {
function TokenCacher() {
_classCallCheck(this, TokenCacher);
}
function TokenCacher() {
_classCallCheck(this, TokenCacher);
}
TokenCacher.prototype.setToken = function setToken() {};
TokenCacher.prototype.setToken = function setToken() {};
TokenCacher.prototype.save = function save() {};
TokenCacher.prototype.save = function save() {};
TokenCacher.prototype.getToken = function getToken() {
return null;
};
TokenCacher.prototype.getToken = function getToken() {
return null;
};
TokenCacher.prototype.init = function init(ind) {
this.done = true;
};
TokenCacher.prototype.init = function init(ind) {
this.done = true;
};
return TokenCacher;
return TokenCacher;
})();
exports["default"] = TokenCacher;