mirror of
https://github.com/chylex/TweetDuck.git
synced 2025-05-09 05:34:05 +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;
|
||||
|
||||
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){
|
||||
StringBuilder build = new StringBuilder(2*pluginIdentifier.Length+pluginContents.Length+165);
|
||||
|
||||
build.Append("(function(").Append(environment.GetScriptVariables()).Append("){");
|
||||
|
||||
build.Append("let tmp={");
|
||||
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();
|
||||
return PluginGen
|
||||
.Replace("%params", environment.GetScriptVariables())
|
||||
.Replace("%id", pluginIdentifier)
|
||||
.Replace("%token", pluginToken.ToString(CultureInfo.InvariantCulture))
|
||||
.Replace("%contents", pluginContents);
|
||||
}
|
||||
|
||||
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