mirror of
https://github.com/chylex/TweetDuck.git
synced 2025-05-29 02:34:06 +02:00
Make $id and $token properties in plugin objects unmodifiable
This commit is contained in:
parent
64d32dcb75
commit
91d572235e
@ -1,4 +1,4 @@
|
|||||||
using System.Text;
|
using System.Globalization;
|
||||||
using TweetDuck.Plugins.Enums;
|
using TweetDuck.Plugins.Enums;
|
||||||
|
|
||||||
namespace TweetDuck.Plugins{
|
namespace TweetDuck.Plugins{
|
||||||
@ -8,22 +8,29 @@ public static string GenerateConfig(PluginConfig config){
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static string GeneratePlugin(string pluginIdentifier, string pluginContents, int pluginToken, PluginEnvironment environment){
|
public static string GeneratePlugin(string pluginIdentifier, string pluginContents, int pluginToken, PluginEnvironment environment){
|
||||||
StringBuilder build = new StringBuilder(2*pluginIdentifier.Length+pluginContents.Length+165);
|
return PluginGen
|
||||||
|
.Replace("%params", environment.GetScriptVariables())
|
||||||
build.Append("(function(").Append(environment.GetScriptVariables()).Append("){");
|
.Replace("%id", pluginIdentifier)
|
||||||
|
.Replace("%token", pluginToken.ToString(CultureInfo.InvariantCulture))
|
||||||
build.Append("let tmp={");
|
.Replace("%contents", pluginContents);
|
||||||
build.Append("id:\"").Append(pluginIdentifier).Append("\",");
|
|
||||||
build.Append("obj:new class extends PluginBase{").Append(pluginContents).Append("}");
|
|
||||||
build.Append("};");
|
|
||||||
|
|
||||||
build.Append("tmp.obj.$id=\"").Append(pluginIdentifier).Append("\";");
|
|
||||||
build.Append("tmp.obj.$token=").Append(pluginToken).Append(";");
|
|
||||||
build.Append("window.TD_PLUGINS.install(tmp);");
|
|
||||||
|
|
||||||
build.Append("})(").Append(environment.GetScriptVariables()).Append(");");
|
|
||||||
|
|
||||||
return build.ToString();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private const string PluginGen = "(function(%params,$d){let tmp={id:'%id',obj:new class extends PluginBase{%contents}};$d(tmp.obj,'$id',{value:'%id'});$d(tmp.obj,'$token',{value:%token});window.TD_PLUGINS.install(tmp);})(%params,Object.defineProperty);";
|
||||||
|
|
||||||
|
/* PluginGen
|
||||||
|
|
||||||
|
(function(%params, $i, $d){
|
||||||
|
let tmp = {
|
||||||
|
id: '%id',
|
||||||
|
obj: new class extends PluginBase{%contents}
|
||||||
|
};
|
||||||
|
|
||||||
|
$d(tmp.obj, '$id', { value: '%id' });
|
||||||
|
$d(tmp.obj, '$token', { value: %token });
|
||||||
|
|
||||||
|
window.TD_PLUGINS.install(tmp);
|
||||||
|
})(%params, Object.defineProperty);
|
||||||
|
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user