commit
66c24f246a
|
@ -12,4 +12,6 @@ node_modules
|
||||||
/*.jiiks
|
/*.jiiks
|
||||||
Installers/dotNet/bin/
|
Installers/dotNet/bin/
|
||||||
Installers/dotNet/packages/
|
Installers/dotNet/packages/
|
||||||
Installers/dotNet/dlls/
|
Installers/dotNet/dlls/
|
||||||
|
v2/dist/vendor/
|
||||||
|
v2/lib/static.js
|
File diff suppressed because one or more lines are too long
|
@ -172,6 +172,7 @@
|
||||||
"Dedede",
|
"Dedede",
|
||||||
"Ohok",
|
"Ohok",
|
||||||
"SRS!",
|
"SRS!",
|
||||||
"Isis"
|
"Isis",
|
||||||
|
"Okie"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -159,7 +159,7 @@ EmoteModule.prototype.injectEmote = function(node) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (typeof emotesBTTV !== 'undefined' && settingsCookie["bda-es-2"]) {
|
if (typeof emotesBTTV !== 'undefined' && settingsCookie["bda-es-2"]) {
|
||||||
if(emotesBTTV.hasOwnProperty(sw) && sw.length >= 4) {
|
if(emotesBTTV.hasOwnProperty(sw) && sw.length >= 3) {
|
||||||
if(text != null) { contents.splice(i + splice++, 0, document.createTextNode(text)); text = null;}
|
if(text != null) { contents.splice(i + splice++, 0, document.createTextNode(text)); text = null;}
|
||||||
var url = emotesBTTV[sw];
|
var url = emotesBTTV[sw];
|
||||||
contents.splice(i + splice++, 0, self.createEmoteElement(sw, url, emoteClass));
|
contents.splice(i + splice++, 0, self.createEmoteElement(sw, url, emoteClass));
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
plugins: ["transform-remove-strict-mode"],
|
||||||
|
presets: ["es2015"],
|
||||||
|
sourceMap: false
|
||||||
|
}
|
|
@ -0,0 +1,99 @@
|
||||||
|
module.exports = grunt => {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
require('load-grunt-tasks')(grunt);
|
||||||
|
|
||||||
|
grunt.initConfig({
|
||||||
|
requirejs: {
|
||||||
|
compileProject: {
|
||||||
|
options: {
|
||||||
|
include: ['src/js/core'],
|
||||||
|
out: 'intermediate/requirejs.js',
|
||||||
|
optimize: 'none',
|
||||||
|
paths: {
|
||||||
|
'events': 'empty:',
|
||||||
|
'electron': 'empty:'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
babel: {
|
||||||
|
dist: {
|
||||||
|
files: [{
|
||||||
|
src: ['intermediate/requirejs.js'],
|
||||||
|
dest: 'intermediate/babel.js'
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
replace: {
|
||||||
|
dist: {
|
||||||
|
options: {
|
||||||
|
patterns: [{
|
||||||
|
match: /\\n +/g,
|
||||||
|
replacement: ''
|
||||||
|
},{
|
||||||
|
match: / +/g,
|
||||||
|
replacement: ' '
|
||||||
|
},{
|
||||||
|
match: /\/*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*\/+/g,
|
||||||
|
replacement: ''
|
||||||
|
}]
|
||||||
|
},
|
||||||
|
files: [{
|
||||||
|
expand: true, src: ['intermediate/babel.js'], dest: ''
|
||||||
|
}]
|
||||||
|
},
|
||||||
|
nongreedy: {
|
||||||
|
options: {
|
||||||
|
patterns: [{
|
||||||
|
match: /\\n +/g,
|
||||||
|
replacement: ''
|
||||||
|
},{
|
||||||
|
match: / +/g,
|
||||||
|
replacement: ' '
|
||||||
|
},{
|
||||||
|
match: /\/\*(.|[\r\n])*?\*\//g,
|
||||||
|
replacement: ''
|
||||||
|
}]
|
||||||
|
},
|
||||||
|
files: [{
|
||||||
|
expand: true, src: ['intermediate/babel.js'], dest: ''
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
amdclean: {
|
||||||
|
options: {
|
||||||
|
wrap: {
|
||||||
|
start: '(function() {\n\n "use strict";\n\n var electron = require("electron");\n',
|
||||||
|
end: '\n\n}());'
|
||||||
|
},
|
||||||
|
escodegen: {
|
||||||
|
format: {
|
||||||
|
indent: {
|
||||||
|
style: ' ',
|
||||||
|
base: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
aggressiveOptimizations: true,
|
||||||
|
transformAMDChecks: false
|
||||||
|
},
|
||||||
|
dist: {
|
||||||
|
src: 'intermediate/babel.js',
|
||||||
|
dest: 'dist/js/main.js'
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
clean: [
|
||||||
|
'intermediate'
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
|
grunt.registerTask("js", [ "requirejs", "babel", "replace", "amdclean", "clean" ]);
|
||||||
|
grunt.registerTask("js-noclean", [ "requirejs", "babel", "replace", "amdclean" ]);
|
||||||
|
|
||||||
|
grunt.registerTask("fastjs", ["requirejs", "babel", "replace:nongreedy", "amdclean", "clean" ]);
|
||||||
|
grunt.registerTask("fastjs-noclean", ["requirejs", "babel", "replace:nongreedy", "amdclean" ]);
|
||||||
|
|
||||||
|
|
||||||
|
};
|
|
@ -0,0 +1 @@
|
||||||
|
v2 preview for external testers
|
|
@ -0,0 +1,165 @@
|
||||||
|
(function() {
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
var electron = require("electron");
|
||||||
|
var src_js_modules_observermodule, src_js_modules_modules, src_js_utils, src_js_api, src_js_plugin, src_js_event, src_js_core;
|
||||||
|
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');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
src_js_modules_observermodule = function () {
|
||||||
|
var Observer = function () {
|
||||||
|
function Observer() {
|
||||||
|
_classCallCheck(this, Observer);
|
||||||
|
this.mutationObserver = new MutationObserver(this.observe);
|
||||||
|
this.mutationObserver.observe(document, {
|
||||||
|
childList: true,
|
||||||
|
subtree: true
|
||||||
|
});
|
||||||
|
}
|
||||||
|
_createClass(Observer, [{
|
||||||
|
key: 'observe',
|
||||||
|
value: function observe(mutations) {
|
||||||
|
mutations.forEach(function (mutation) {
|
||||||
|
BD.event.emit('raw-mutation', mutation);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}]);
|
||||||
|
return Observer;
|
||||||
|
}();
|
||||||
|
return new Observer();
|
||||||
|
}();
|
||||||
|
src_js_modules_modules = function (observerModule) {
|
||||||
|
var modules = { observerModule: observerModule };
|
||||||
|
return modules;
|
||||||
|
}(src_js_modules_observermodule);
|
||||||
|
src_js_utils = function () {
|
||||||
|
var Utils = function Utils() {
|
||||||
|
_classCallCheck(this, Utils);
|
||||||
|
};
|
||||||
|
return new Utils();
|
||||||
|
}();
|
||||||
|
src_js_api = function () {
|
||||||
|
var Api = function Api() {
|
||||||
|
_classCallCheck(this, Api);
|
||||||
|
};
|
||||||
|
return new Api();
|
||||||
|
}();
|
||||||
|
src_js_plugin = function () {
|
||||||
|
var Plugin = function () {
|
||||||
|
function Plugin(args) {
|
||||||
|
_classCallCheck(this, Plugin);
|
||||||
|
this.info = args;
|
||||||
|
}
|
||||||
|
_createClass(Plugin, [
|
||||||
|
{
|
||||||
|
key: 'author',
|
||||||
|
get: function get() {
|
||||||
|
return this.info.author;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'name',
|
||||||
|
get: function get() {
|
||||||
|
return this.info.name;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'version',
|
||||||
|
get: function get() {
|
||||||
|
return this.info.version;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
return Plugin;
|
||||||
|
}();
|
||||||
|
return Plugin;
|
||||||
|
}();
|
||||||
|
src_js_event = function () {
|
||||||
|
var EventEmitter = events.EventEmitter;
|
||||||
|
var Event = function () {
|
||||||
|
function Event() {
|
||||||
|
_classCallCheck(this, Event);
|
||||||
|
this.eventEmitter = new EventEmitter();
|
||||||
|
}
|
||||||
|
_createClass(Event, [
|
||||||
|
{
|
||||||
|
key: 'on',
|
||||||
|
value: function on(eventName, callback) {
|
||||||
|
this.eventEmitter.on(eventName, callback);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'emit',
|
||||||
|
value: function emit() {
|
||||||
|
var _eventEmitter;
|
||||||
|
(_eventEmitter = this.eventEmitter).emit.apply(_eventEmitter, arguments);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
return Event;
|
||||||
|
}();
|
||||||
|
return new Event();
|
||||||
|
}();
|
||||||
|
src_js_core = function (modules, utils, api, plugin, event) {
|
||||||
|
var Core = function () {
|
||||||
|
function Core(args) {
|
||||||
|
_classCallCheck(this, Core);
|
||||||
|
console.log(event);
|
||||||
|
this.event = event;
|
||||||
|
this.modules = modules;
|
||||||
|
this.beta = true;
|
||||||
|
this.alpha = true;
|
||||||
|
this.plugin = plugin;
|
||||||
|
}
|
||||||
|
_createClass(Core, [
|
||||||
|
{
|
||||||
|
key: 'init',
|
||||||
|
value: function init() {
|
||||||
|
console.log('Initialized');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: '__version',
|
||||||
|
get: function get() {
|
||||||
|
return '2.0.0';
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: '__versionString',
|
||||||
|
get: function get() {
|
||||||
|
return '' + this.__version + (this.alpha ? 'A' : this.beta ? 'B' : '');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
return Core;
|
||||||
|
}();
|
||||||
|
window.$B = function (s) {
|
||||||
|
return $('[data-bd=' + s);
|
||||||
|
};
|
||||||
|
window.BD = new Core();
|
||||||
|
BD.init();
|
||||||
|
}(src_js_modules_modules, src_js_utils, src_js_api, src_js_plugin, src_js_event);
|
||||||
|
|
||||||
|
}());
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"core": {
|
||||||
|
"version": "0.3.0"
|
||||||
|
},
|
||||||
|
"Core": {
|
||||||
|
"Version": "0.3.0"
|
||||||
|
},
|
||||||
|
"cfg": {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,108 @@
|
||||||
|
/* BetterDiscordApp Core
|
||||||
|
* Version: 2:1.0
|
||||||
|
* Author: Jiiks | https://jiiks.net
|
||||||
|
* Date: 31/10/2016
|
||||||
|
* Last Update: 31/10/2016
|
||||||
|
* Github: https://github.com/Jiiks/BetterDiscordApp
|
||||||
|
* Git: https://github.com/Jiiks/BetterDiscordApp.git
|
||||||
|
* License: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
const
|
||||||
|
_fs = require('fs'),
|
||||||
|
_config = require('./config.json'),
|
||||||
|
{ _utils } = require('./utils'),
|
||||||
|
{ _logger } = require('./utils'),
|
||||||
|
{ EOL } = require('os'),
|
||||||
|
_os = require('os');
|
||||||
|
|
||||||
|
const _startDate = new Date();
|
||||||
|
|
||||||
|
var _cfg;
|
||||||
|
|
||||||
|
// Default configs if for some reason we don't receive config params
|
||||||
|
const _defaults = {
|
||||||
|
installPath: (_os.platform() === 'win32' ? process.env.APPDATA : _os.platform() === 'darwin' ? `${process.env.HOME}/Library/Preferences`: `/var/local`) + '/BetterDiscord/lib/',
|
||||||
|
dataPath: (_os.platform() === 'win32' ? process.env.APPDATA : _os.platform() === 'darwin' ? `${process.env.HOME}/Library/Preferences`: `/var/local`) + '/BetterDiscord/data/',
|
||||||
|
emotesEnabled: true
|
||||||
|
};
|
||||||
|
|
||||||
|
const _resources = {
|
||||||
|
"mainjs": {
|
||||||
|
"path": "js",
|
||||||
|
"filename": "main.js",
|
||||||
|
"var": "window.BetterDiscord"
|
||||||
|
},
|
||||||
|
"jQuery": {
|
||||||
|
"path": "vendor",
|
||||||
|
"filename": "jquery-2.2.4.min.js",
|
||||||
|
"var": "window.$ = window.jQuery"
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
var _self;
|
||||||
|
|
||||||
|
class Core {
|
||||||
|
|
||||||
|
constructor(args) {
|
||||||
|
_self = this;
|
||||||
|
this.continue = true;
|
||||||
|
_logger.log(`v${this.__version} Loading - OS: ${_os.platform()}`);
|
||||||
|
this.initConfig(args.cfg);
|
||||||
|
}
|
||||||
|
|
||||||
|
initConfig(args) {
|
||||||
|
_cfg = _config.cfg;
|
||||||
|
_cfg.installPath = args.installPath || _defaults.installPath;
|
||||||
|
_cfg.dataPath = args.dataPath || _defaults.dataPath;
|
||||||
|
_cfg.emotesEnabled = args.emotesEnabled || _defaults.emotesEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
hook(mainWindow) {
|
||||||
|
if(mainWindow === undefined) {
|
||||||
|
this.exit("mainWindow is undefined!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.mainWindow = mainWindow;
|
||||||
|
this.hookEvent('dom-ready', this.domReady);
|
||||||
|
}
|
||||||
|
|
||||||
|
hookEvent(event, callback) {
|
||||||
|
if(!this.continue) return;
|
||||||
|
try {
|
||||||
|
_logger.log(`Hooking ${event}`);
|
||||||
|
this.mainWindow.webContents.on(event, callback);
|
||||||
|
}catch(err) {
|
||||||
|
this.exit(`Failed to hook event ${event}. Reason: ${err}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
domReady() {
|
||||||
|
for(var key in _resources) {
|
||||||
|
var resource = _resources[key];
|
||||||
|
_utils.requireJs(`${_cfg.installPath}/${resource.path}/${resource.filename}`, resource.var, _self.mainWindow);
|
||||||
|
}
|
||||||
|
|
||||||
|
_self.pluginLoader();
|
||||||
|
}
|
||||||
|
|
||||||
|
pluginLoader() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
exit(reason, severity) {
|
||||||
|
this.continue = false;
|
||||||
|
// TODO show an actual error dialog for user
|
||||||
|
_logger.log(`Quitting. Reason: ${reason}`, severity || 2);
|
||||||
|
_logger.save();
|
||||||
|
}
|
||||||
|
|
||||||
|
get __version() {
|
||||||
|
return _config.core.version;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
exports.BetterDiscord = Core;
|
|
@ -0,0 +1 @@
|
||||||
|
module.exports = require('./core');
|
|
@ -0,0 +1,2 @@
|
||||||
|
var BD = require('./main');
|
||||||
|
var _bd = new BD.BetterDiscord({ cfg: { } });
|
|
@ -0,0 +1,105 @@
|
||||||
|
/* BetterDiscordApp Utilities
|
||||||
|
* Version: 2:1.0
|
||||||
|
* Author: Jiiks | https://jiiks.net
|
||||||
|
* Date: 31/10/2016
|
||||||
|
* Last Update: 31/10/2016
|
||||||
|
* Github: https://github.com/Jiiks/BetterDiscordApp
|
||||||
|
* Git: https://github.com/Jiiks/BetterDiscordApp.git
|
||||||
|
* License: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
class Utils {
|
||||||
|
|
||||||
|
//Get the latest commit hash from github
|
||||||
|
getHash(callback) {
|
||||||
|
this.download("api.github.com", "/repos/Jiiks/BetterDiscordApp/commits/master", data => {
|
||||||
|
//TODO use the new soon to be implemented tryparse
|
||||||
|
callback(JSON.parse(data).sha);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
download(host, path, callback) {
|
||||||
|
_logger.log(`Downloading Resource: ${host}${path}`);
|
||||||
|
var options = {
|
||||||
|
host: host,
|
||||||
|
path: path,
|
||||||
|
headers: this.headers
|
||||||
|
};
|
||||||
|
|
||||||
|
_https.get(options, res => {
|
||||||
|
var data = "";
|
||||||
|
res.on('data', chunk => {
|
||||||
|
data += chunk;
|
||||||
|
});
|
||||||
|
res.on('end', () => {
|
||||||
|
callback(data);
|
||||||
|
});
|
||||||
|
}).on('error', () => {
|
||||||
|
//TODO error logging
|
||||||
|
callback(null);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
requireJs(file, varstring, _window) {
|
||||||
|
_logger.log(`Injecting file: ${file}`);
|
||||||
|
_window.webContents.executeJavaScript(`${varstring} = require("${file}");`);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Returns a datestring: [DD/MM/YYYY - HH:MM:SS]
|
||||||
|
get dateString() {
|
||||||
|
var d = new Date();
|
||||||
|
|
||||||
|
return `${("00" + (d.getDate())).slice(-2)}/` +
|
||||||
|
`${("00" + d.getMonth()).slice(-2)}/` +
|
||||||
|
`${d.getFullYear()} - ` +
|
||||||
|
`${("00" + d.getHours()).slice(-2)}:` +
|
||||||
|
`${("00" + d.getMinutes()).slice(-2)}:` +
|
||||||
|
`${("00" + d.getSeconds()).slice(-2)}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
get headers() {
|
||||||
|
return { 'user-agent': 'Mozilla/5.0' };
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class Logger {
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
this.logs = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
log(msg, severity) {
|
||||||
|
var l = `[BD|${this.severity(severity)}][${_utils.dateString}] >>> ${msg}`;
|
||||||
|
console.log(l);
|
||||||
|
this.logs += `${l}${EOL}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
save() {
|
||||||
|
try {
|
||||||
|
_fs.writeFileSync('logs.log', this.logs);
|
||||||
|
}catch(err) {
|
||||||
|
this.log("Failed to save logs! " + err, 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
severity(severity) {
|
||||||
|
return {
|
||||||
|
0: "INF",
|
||||||
|
1: "WRN",
|
||||||
|
2: "ERR"
|
||||||
|
}[severity||0];
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
const _utils = new Utils(),
|
||||||
|
_logger = new Logger(),
|
||||||
|
_fs = require('fs'),
|
||||||
|
{EOL} = require('os'),
|
||||||
|
_https = require('https');
|
||||||
|
|
||||||
|
exports._utils = _utils;
|
||||||
|
exports._logger = _logger;
|
|
@ -0,0 +1,23 @@
|
||||||
|
{
|
||||||
|
"name": "betterdiscord",
|
||||||
|
"description": "Discord enhancement project. v2 preview",
|
||||||
|
"version": "0.3.0",
|
||||||
|
"homepage": "https://github.com/Jiiks/BetterDiscordApp",
|
||||||
|
"license": "MIT",
|
||||||
|
"main": "lib/main.js",
|
||||||
|
"devDependencies": {
|
||||||
|
"grunt": "^0.4.5",
|
||||||
|
"load-grunt-tasks": "^3.5.0",
|
||||||
|
"grunt-requirejs": "^0.4.2",
|
||||||
|
"grunt-amdclean": "^0.1.2",
|
||||||
|
"grunt-babel": "^6.0.0",
|
||||||
|
"babel-preset-es2015": "^6.9.0",
|
||||||
|
"babel-plugin-transform-remove-strict-mode": "^0.0.2",
|
||||||
|
"grunt-contrib-concat": "^1.0.1",
|
||||||
|
"grunt-contrib-sass": "^1.0.0",
|
||||||
|
"grunt-contrib-uglify": "^1.0.1",
|
||||||
|
"grunt-contrib-cssmin": "^1.0.1",
|
||||||
|
"grunt-contrib-clean": "^1.0.0",
|
||||||
|
"grunt-replace": "^1.0.1"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,20 @@
|
||||||
|
/* BetterDiscordApp Client Api
|
||||||
|
* Version: 2:1.0
|
||||||
|
* Author: Jiiks | https://jiiks.net
|
||||||
|
* Date: 31/10/2016
|
||||||
|
* Last Update: 31/10/2016
|
||||||
|
* Github: https://github.com/Jiiks/BetterDiscordApp
|
||||||
|
* Git: https://github.com/Jiiks/BetterDiscordApp.git
|
||||||
|
* License: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
define(() => {
|
||||||
|
|
||||||
|
class Api {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return new Api();
|
||||||
|
|
||||||
|
});
|
|
@ -0,0 +1,50 @@
|
||||||
|
/* BetterDiscordApp Client Core
|
||||||
|
* Version: 2:1.0
|
||||||
|
* Author: Jiiks | https://jiiks.net
|
||||||
|
* Date: 31/10/2016
|
||||||
|
* Last Update: 31/10/2016
|
||||||
|
* Github: https://github.com/Jiiks/BetterDiscordApp
|
||||||
|
* Git: https://github.com/Jiiks/BetterDiscordApp.git
|
||||||
|
* License: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
define([
|
||||||
|
"./modules/modules",
|
||||||
|
"./utils",
|
||||||
|
"./api",
|
||||||
|
"./plugin",
|
||||||
|
"./event"
|
||||||
|
], (modules, utils, api, plugin, event) => {
|
||||||
|
|
||||||
|
class Core {
|
||||||
|
|
||||||
|
constructor(args) {
|
||||||
|
console.log(event);
|
||||||
|
this.event = event;
|
||||||
|
this.modules = modules;
|
||||||
|
this.beta = true;
|
||||||
|
this.alpha = true;
|
||||||
|
this.plugin = plugin;
|
||||||
|
}
|
||||||
|
|
||||||
|
init() {
|
||||||
|
console.log("Initialized");
|
||||||
|
}
|
||||||
|
|
||||||
|
get __version() {
|
||||||
|
return "2.0.0";
|
||||||
|
}
|
||||||
|
|
||||||
|
get __versionString() {
|
||||||
|
return `${this.__version}${this.alpha ? "A" : this.beta ? "B" : ""}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
window.$B = s => { return $(`[data-bd=${s}`); };
|
||||||
|
|
||||||
|
window.BD = new Core();
|
||||||
|
BD.init();
|
||||||
|
|
||||||
|
});
|
|
@ -0,0 +1,33 @@
|
||||||
|
/* BetterDiscordApp Event emitter
|
||||||
|
* Version: 2:1.0
|
||||||
|
* Author: Jiiks | https://jiiks.net
|
||||||
|
* Date: 31/10/2016
|
||||||
|
* Last Update: 31/10/2016
|
||||||
|
* Github: https://github.com/Jiiks/BetterDiscordApp
|
||||||
|
* Git: https://github.com/Jiiks/BetterDiscordApp.git
|
||||||
|
* License: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
define(() => {
|
||||||
|
|
||||||
|
const EventEmitter = new require('events').EventEmitter;
|
||||||
|
|
||||||
|
class Event {
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
this.eventEmitter = new EventEmitter;
|
||||||
|
}
|
||||||
|
|
||||||
|
on(eventName, callback) {
|
||||||
|
this.eventEmitter.on(eventName, callback);
|
||||||
|
}
|
||||||
|
|
||||||
|
emit(...args) {
|
||||||
|
this.eventEmitter.emit(...args);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return new Event();
|
||||||
|
});
|
|
@ -0,0 +1,20 @@
|
||||||
|
/* BetterDiscordApp Client Module Defines
|
||||||
|
* Version: 2:1.0
|
||||||
|
* Author: Jiiks | https://jiiks.net
|
||||||
|
* Date: 31/10/2016
|
||||||
|
* Last Update: 31/10/2016
|
||||||
|
* Github: https://github.com/Jiiks/BetterDiscordApp
|
||||||
|
* Git: https://github.com/Jiiks/BetterDiscordApp.git
|
||||||
|
* License: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
define([
|
||||||
|
"./observermodule"
|
||||||
|
], (observerModule) => {
|
||||||
|
|
||||||
|
const modules = {
|
||||||
|
observerModule: observerModule
|
||||||
|
};
|
||||||
|
|
||||||
|
return modules;
|
||||||
|
});
|
|
@ -0,0 +1,34 @@
|
||||||
|
/* BetterDiscordApp Client Observer
|
||||||
|
* Version: 2:1.0
|
||||||
|
* Author: Jiiks | https://jiiks.net
|
||||||
|
* Date: 31/10/2016
|
||||||
|
* Last Update: 31/10/2016
|
||||||
|
* Github: https://github.com/Jiiks/BetterDiscordApp
|
||||||
|
* Git: https://github.com/Jiiks/BetterDiscordApp.git
|
||||||
|
* License: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
define([], () => {
|
||||||
|
|
||||||
|
class Observer {
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
this.mutationObserver = new MutationObserver(this.observe);
|
||||||
|
this.mutationObserver.observe(document, {
|
||||||
|
childList: true,
|
||||||
|
subtree: true
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
observe(mutations) {
|
||||||
|
|
||||||
|
mutations.forEach(mutation => {
|
||||||
|
BD.event.emit("raw-mutation", mutation);
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return new Observer();
|
||||||
|
});
|
|
@ -0,0 +1,36 @@
|
||||||
|
/* BetterDiscordApp Plugin base class
|
||||||
|
* Version: 2:1.0
|
||||||
|
* Author: Jiiks | https://jiiks.net
|
||||||
|
* Date: 31/10/2016
|
||||||
|
* Last Update: 31/10/2016
|
||||||
|
* Github: https://github.com/Jiiks/BetterDiscordApp
|
||||||
|
* Git: https://github.com/Jiiks/BetterDiscordApp.git
|
||||||
|
* License: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
define(() => {
|
||||||
|
|
||||||
|
class Plugin {
|
||||||
|
|
||||||
|
constructor(args) {
|
||||||
|
this.info = args;
|
||||||
|
}
|
||||||
|
|
||||||
|
get author() {
|
||||||
|
return this.info.author;
|
||||||
|
}
|
||||||
|
|
||||||
|
get name() {
|
||||||
|
return this.info.name;
|
||||||
|
}
|
||||||
|
|
||||||
|
get version() {
|
||||||
|
return this.info.version;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return Plugin;
|
||||||
|
|
||||||
|
});
|
|
@ -0,0 +1,20 @@
|
||||||
|
/* BetterDiscordApp Client Utilities
|
||||||
|
* Version: 2:1.0
|
||||||
|
* Author: Jiiks | https://jiiks.net
|
||||||
|
* Date: 31/10/2016
|
||||||
|
* Last Update: 31/10/2016
|
||||||
|
* Github: https://github.com/Jiiks/BetterDiscordApp
|
||||||
|
* Git: https://github.com/Jiiks/BetterDiscordApp.git
|
||||||
|
* License: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
define(() => {
|
||||||
|
|
||||||
|
class Utils {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return new Utils();
|
||||||
|
|
||||||
|
});
|
Loading…
Reference in New Issue