mirror of
https://github.com/chylex/TweetDuck.git
synced 2025-05-15 14:34:08 +02:00
76 lines
1.6 KiB
JavaScript
76 lines
1.6 KiB
JavaScript
var isReloading = "TD_PLUGINS" in window;
|
|
|
|
if (isReloading){
|
|
window.TD_PLUGINS.installed.forEach(plugin => {
|
|
if (!window.TD_PLUGINS.isDisabled(plugin)){
|
|
plugin.obj.disabled();
|
|
}
|
|
});
|
|
}
|
|
|
|
class PluginBase{
|
|
constructor(pluginSettings){
|
|
this.$pluginSettings = pluginSettings || {};
|
|
}
|
|
|
|
enabled(){}
|
|
ready(){}
|
|
disabled(){}
|
|
}
|
|
|
|
var PLUGINS = {
|
|
installed: [],
|
|
disabled: [],
|
|
waiting: [],
|
|
|
|
isDisabled: plugin => PLUGINS.disabled.includes(plugin.id),
|
|
findObject: identifier => PLUGINS.installed.find(plugin => plugin.id === identifier),
|
|
|
|
load: function(){
|
|
PLUGINS.installed.forEach(plugin => {
|
|
if (!PLUGINS.isDisabled(plugin)){
|
|
plugin.obj.enabled();
|
|
PLUGINS.runWhenReady(plugin);
|
|
}
|
|
});
|
|
},
|
|
|
|
onReady: function(){
|
|
PLUGINS.waiting.forEach(plugin => plugin.obj.ready());
|
|
PLUGINS.waiting = [];
|
|
},
|
|
|
|
runWhenReady: function(plugin){
|
|
if (window.TD_APP_READY){
|
|
plugin.obj.ready();
|
|
}
|
|
else{
|
|
PLUGINS.waiting.push(plugin);
|
|
}
|
|
},
|
|
|
|
setState: function(identifier, enable){
|
|
var plugin = PLUGINS.findObject(identifier);
|
|
|
|
if (enable && PLUGINS.isDisabled(plugin)){
|
|
PLUGINS.disabled.splice(PLUGINS.disabled.indexOf(identifier),1);
|
|
plugin.obj.enabled();
|
|
PLUGINS.runWhenReady(plugin);
|
|
}
|
|
else if (!enable && !PLUGINS.isDisabled(plugin)){
|
|
PLUGINS.disabled.push(identifier);
|
|
plugin.obj.disabled();
|
|
}
|
|
else return;
|
|
|
|
if (plugin.obj.$pluginSettings.requiresPageReload){
|
|
window.location.reload();
|
|
}
|
|
}
|
|
};
|
|
|
|
window.TD_PLUGINS = PLUGINS;
|
|
|
|
if (isReloading){
|
|
window.location.reload();
|
|
} |