private void LoadPlugins()
{
if (!Directory.Exists("plugin")) Directory.CreateDirectory("plugin");
var fls = Directory.GetFiles("plugin/", "*.py");
foreach (var f in fls)
{
try
{
ScriptScope sc = IronPythonEngine.CreateScope();
var ss = IronPythonEngine.CreateScriptSourceFromFile(f);
ss.Execute(sc);
var t = IronPythonEngine.Execute(System.IO.Path.GetFileNameWithoutExtension(f) + "()", sc);
if (t is IKbtterOnTweet) TweetPlugins.Add(t);
if (t is IKbtterOnFavorite) FavoritePlugins.Add(t);
if (t is IKbtterOnUnfavorite) UnfavoritePlugins.Add(t);
if (t is IKbtterOnRetweet) RetweetPlugins.Add(t);
if (t is IKbtterOnInitialize) InitializePlugins.Add(t);
if (t is IKbtterCallable) WindowPlugins.Add(t);
}
catch (Exception ex)
{
MessageBox.Show(MessagePluginLoadingErrorText + "\n" + ex.Message, MessagePluginLoadingErrorCaption);
Application.Current.Dispatcher.BeginInvoke(new Action(() =>
{
Application.Current.Shutdown();
}));
}
}
}