public bool Import(ExportFileFlags flags) { try{ HashSet <string> missingPlugins = new HashSet <string>(); using (CombinedFileStream stream = new CombinedFileStream(new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.None))){ CombinedFileStream.Entry entry; while ((entry = stream.ReadFile()) != null) { switch (entry.KeyName) { case "config": if (flags.HasFlag(ExportFileFlags.Config)) { entry.WriteToFile(Program.ConfigFilePath); } break; case "plugin.config": if (flags.HasFlag(ExportFileFlags.PluginData)) { entry.WriteToFile(Program.PluginConfigFilePath); } break; case "plugin.data": if (flags.HasFlag(ExportFileFlags.PluginData)) { string[] value = entry.KeyValue; entry.WriteToFile(Path.Combine(Program.PluginDataPath, value[0], value[1]), true); if (!plugins.IsPluginInstalled(value[0])) { missingPlugins.Add(value[0]); } } break; case "cookies": if (flags.HasFlag(ExportFileFlags.Session)) { entry.WriteToFile(Path.Combine(Program.StoragePath, TempCookiesPath)); IsRestarting = true; } break; } } } if (missingPlugins.Count > 0) { MessageBox.Show("Detected missing plugins when importing plugin data:" + Environment.NewLine + string.Join(Environment.NewLine, missingPlugins), "Importing " + Program.BrandName + " Profile", MessageBoxButtons.OK, MessageBoxIcon.Information); } if (IsRestarting) { Program.Restart(new string[] { Arguments.ArgImportCookies }); } else { Program.ReloadConfig(); } return(true); }catch (Exception e) { LastException = e; return(false); } }
public bool Import(ExportFileFlags flags) { try{ HashSet <string> missingPlugins = new HashSet <string>(); using (CombinedFileStream stream = new CombinedFileStream(new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.None))){ CombinedFileStream.Entry entry; while ((entry = stream.ReadFile()) != null) { switch (entry.KeyName) { case "config": if (flags.HasFlag(ExportFileFlags.UserConfig)) { entry.WriteToFile(Program.UserConfigFilePath); } break; case "system": if (flags.HasFlag(ExportFileFlags.SystemConfig)) { entry.WriteToFile(Program.SystemConfigFilePath); IsRestarting = true; } break; case "plugin.config": if (flags.HasFlag(ExportFileFlags.PluginData)) { entry.WriteToFile(Program.PluginConfigFilePath); } break; case "plugin.data": if (flags.HasFlag(ExportFileFlags.PluginData)) { string[] value = entry.KeyValue; entry.WriteToFile(Path.Combine(Program.PluginDataPath, value[0], value[1]), true); if (!plugins.IsPluginInstalled(value[0])) { missingPlugins.Add(value[0]); } } break; case "cookies": if (flags.HasFlag(ExportFileFlags.Session)) { entry.WriteToFile(Path.Combine(Program.StoragePath, TempCookiesPath)); IsRestarting = true; } break; } } } if (missingPlugins.Count > 0) { FormMessage.Information("Importing TweetDuck Profile", "Detected missing plugins when importing plugin data:\n" + string.Join("\n", missingPlugins), FormMessage.OK); } return(true); }catch (Exception e) { LastException = e; return(false); } }