From 414f3a1f9df1ad2b0a558fcd53c077d72cfc1a9a Mon Sep 17 00:00:00 2001
From: chylex <contact@chylex.com>
Date: Wed, 4 Jul 2018 06:26:41 +0200
Subject: [PATCH] Import shared plugin setup code into individual environment
 files

---
 Plugins/Enums/PluginEnvironment.cs                        | 5 ++---
 Plugins/PluginManager.cs                                  | 3 +--
 .../Scripts/{plugins.js => components/plugins.base.js}    | 8 ++++----
 Resources/Scripts/plugins.browser.js                      | 2 ++
 Resources/Scripts/plugins.notification.js                 | 2 ++
 5 files changed, 11 insertions(+), 9 deletions(-)
 rename Resources/Scripts/{plugins.js => components/plugins.base.js} (98%)

diff --git a/Plugins/Enums/PluginEnvironment.cs b/Plugins/Enums/PluginEnvironment.cs
index bd4fb2c0..60a28ffa 100644
--- a/Plugins/Enums/PluginEnvironment.cs
+++ b/Plugins/Enums/PluginEnvironment.cs
@@ -26,9 +26,8 @@ public static bool IncludesDisabledPlugins(this PluginEnvironment environment){
 
         public static string GetScriptIdentifier(this PluginEnvironment environment){
             switch(environment){
-                case PluginEnvironment.None: return "root:plugins";
-                case PluginEnvironment.Browser: return "root:plugins.browser";
-                case PluginEnvironment.Notification: return "root:plugins.notification";
+                case PluginEnvironment.Browser: return "root:plugins:browser";
+                case PluginEnvironment.Notification: return "root:plugins:notification";
                 default: return null;
             }
         }
diff --git a/Plugins/PluginManager.cs b/Plugins/PluginManager.cs
index 09cde772..bfcd903a 100644
--- a/Plugins/PluginManager.cs
+++ b/Plugins/PluginManager.cs
@@ -14,7 +14,7 @@ namespace TweetDuck.Plugins{
     sealed class PluginManager{
         private static IReadOnlyDictionary<PluginEnvironment, string> LoadSetupScripts(){
             return PluginEnvironmentExtensions.Map(
-                ScriptLoader.LoadResource("plugins.js"),
+                null,
                 ScriptLoader.LoadResource("plugins.browser.js"),
                 ScriptLoader.LoadResource("plugins.notification.js")
             );
@@ -158,7 +158,6 @@ private void ExecutePlugins(IFrame frame, PluginEnvironment environment){
             }
             
             ScriptLoader.ExecuteScript(frame, PluginSetupScripts[environment], environment.GetScriptIdentifier());
-            ScriptLoader.ExecuteScript(frame, PluginSetupScripts[PluginEnvironment.None], PluginEnvironment.None.GetScriptIdentifier());
             
             bool includeDisabled = environment.IncludesDisabledPlugins();
 
diff --git a/Resources/Scripts/plugins.js b/Resources/Scripts/components/plugins.base.js
similarity index 98%
rename from Resources/Scripts/plugins.js
rename to Resources/Scripts/components/plugins.base.js
index f7684832..2f61b6c1 100644
--- a/Resources/Scripts/plugins.js
+++ b/Resources/Scripts/components/plugins.base.js
@@ -5,23 +5,23 @@
   window.TDPF_loadConfigurationFile = function(pluginObject, fileNameUser, fileNameDefault, onSuccess, onFailure){
     var identifier = pluginObject.$id;
     var token = pluginObject.$token;
-
+    
     $TDP.checkFileExists(token, fileNameUser).then(exists => {
       var fileName = exists ? fileNameUser : fileNameDefault;
       
       (exists ? $TDP.readFile(token, fileName, true) : $TDP.readFileRoot(token, fileName)).then(contents => {
         var obj;
-
+        
         try{
           obj = eval("("+contents+")");
         }catch(err){
           if (!(onFailure && onFailure(err))){
             $TD.alert("warning", "Problem loading '"+fileName+"' file for '"+identifier+"' plugin, the JavaScript syntax is invalid: "+err.message);
           }
-
+          
           return;
         }
-
+        
         onSuccess && onSuccess(obj);
       }).catch(err => {
         if (!(onFailure && onFailure(err))){
diff --git a/Resources/Scripts/plugins.browser.js b/Resources/Scripts/plugins.browser.js
index 747a7661..12032ac6 100644
--- a/Resources/Scripts/plugins.browser.js
+++ b/Resources/Scripts/plugins.browser.js
@@ -122,4 +122,6 @@
   window.TDPF_reloadColumns = window.TDGF_reloadColumns;
   window.TDPF_prioritizeNewestEvent = window.TDGF_prioritizeNewestEvent;
   window.TDPF_injectMustache = window.TDGF_injectMustache;
+  
+  #import components/plugins.base.js
 })();
diff --git a/Resources/Scripts/plugins.notification.js b/Resources/Scripts/plugins.notification.js
index 2474b485..f22201a7 100644
--- a/Resources/Scripts/plugins.notification.js
+++ b/Resources/Scripts/plugins.notification.js
@@ -14,3 +14,5 @@ window.TD_PLUGINS = {
     plugin.obj.run();
   }
 };
+
+#import components/plugins.base.js