protected override void OnOpen(UvArgs args) { if (args.Successful) { if (_read.Status == FileStatus.Open) { _read.Read(); } else if (_read.Status == FileStatus.Closed) { this.Close(); } } else { _error = args; if (_read.Status == FileStatus.Open) { _read.Close(); } } }
private void GenerateLang() { string s = "", st = "", we = "", FolderName = ""; InfMessageLangBox.Text = ""; ResourceManager rm = new ResourceManager("LangpackSuite.myRes", typeof(MainForm).Assembly); string LocaleText = rm.GetString("GenText", culture); if (VIURLTextBox.Text.Contains(":\\")) { vitype = true; } else { vitype = false; } InfMessageLangBox.Text = LocaleText + "\r\n"; FolderName = Directory.GetParent(Directory.GetParent(exepath).ToString()).ToString() + "\\" + LangpacksComboBox.Text; if (!outfile) { if (LangpackNameEdit.Text.Contains(":\\") || LangpackNameEdit.Text.Contains(".\\")) { output = LangpackNameEdit.Text; } else { output = FolderName + "\\" + LangpackNameEdit.Text + ".txt"; } } if (File.Exists(output)) { File.Delete(output); } if (File.Exists(FolderName + "\\=HEAD=.txt")) { File.Copy(FolderName + "\\=HEAD=.txt", output); } else { LocaleText = rm.GetString("WrongSelect", culture); InfMessageLangBox.Text = InfMessageLangBox.Text + LocaleText + "\r\n"; LocaleText = rm.GetString("HeadNotFound", culture); InfMessageLangBox.Text = InfMessageLangBox.Text + LocaleText + "\r\n"; LocaleText = rm.GetString("GenStop", culture); InfMessageLangBox.Text = InfMessageLangBox.Text + LocaleText; return; } StreamWriter LangPack = new StreamWriter(output, true); StreamReader ReadFile; if (GetVICheckBox.Checked && VIURLTextBox.Text != "" && !vitype) { string FullURL = VIURLTextBox.Text.ToUpper(); if (!FullURL.StartsWith("HTTP")) { FullURL = "HTTP://" + FullURL; } WebClient wc = new WebClient(); byte[] data = wc.DownloadData(FullURL.ToLower()); byte[] allfile = new byte[data.Length + 3]; allfile[0] = 239; allfile[1] = 187; allfile[2] = 191; data.CopyTo(allfile, 3); HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); string str = Encoding.UTF8.GetString(allfile); doc.LoadHtml(str); str = doc.DocumentNode.SelectSingleNode("//body").InnerText.Trim(); FileStream _FileStream = new System.IO.FileStream("VersionInfo.txt", System.IO.FileMode.Create, System.IO.FileAccess.Write); allfile = Encoding.UTF8.GetBytes(str); _FileStream.Write(allfile, 0, allfile.Length); _FileStream.Close(); } string vipath = ""; if (vitype) { vipath = VIURLTextBox.Text; } else { vipath = Directory.GetCurrentDirectory() + "\\VersionInfo.txt"; } if (File.Exists(vipath)) { LocaleText = rm.GetString("VIGen", culture); InfMessageLangBox.Text = InfMessageLangBox.Text + LocaleText + "\r\n"; LangPack.WriteLine(""); string InclPlug = "Plugins-included: "; byte[] buffer = new byte[3]; byte[] bom = { 239, 187, 191 }; FileStream rf = new FileStream(vipath, FileMode.Open, FileAccess.Read); rf.Read(buffer, 0, 3); rf.Close(); if (buffer[0] == bom[0] && buffer[1] == bom[1] && buffer[2] == bom[2]) { ReadFile = new StreamReader(vipath); } else { ReadFile = new StreamReader(vipath, Encoding.Default); } while ((s = ReadFile.ReadLine()) != null) { if (s.StartsWith("Active Plugins")) { s = ReadFile.ReadLine().Trim(); while (s != "") { if (s.StartsWith(" ") || s.Contains(".dll")) { int l = s.IndexOf("."); if (s.StartsWith(" ")) { s = s.Substring(2, l - 2); } else { s = s.Substring(0, l); } if (InclPlug == "Plugins-included: ") { InclPlug = InclPlug + s; } else { InclPlug = InclPlug + ", " + s; } } s = ReadFile.ReadLine().Trim(); } } if (s.StartsWith("Unloadable Plugins")) { s = ReadFile.ReadLine().Trim(); while (s != "") { if (s.StartsWith(" ") || s.Contains("DbChecker.dll")) { int l = s.IndexOf("."); if (s.StartsWith(" ")) { s = s.Substring(2, l - 2); } else { s = s.Substring(0, l); } if (InclPlug == "Plugins-included: ") { InclPlug = InclPlug + s; } else { InclPlug = InclPlug + ", " + s; } } s = ReadFile.ReadLine().Trim(); } break; } } LangPack.WriteLine(InclPlug); ReadFile.Close(); if (OwnFileCheckBox.Checked && OwnFileEdit.Text != "") { if (File.Exists(OwnFileEdit.Text)) { LangPack.WriteLine(""); ReadFile = new StreamReader(OwnFileEdit.Text); while ((s = ReadFile.ReadLine()) != null) { LangPack.WriteLine(s); } ReadFile.Close(); } else { int f = OwnFileEdit.Text.LastIndexOf('\\'); string file = OwnFileEdit.Text.Substring(f + 1); LocaleText = rm.GetString("FileText", culture); string LocaleText2 = rm.GetString("FileNotFound", culture); InfMessageLangBox.Text = InfMessageLangBox.Text + LocaleText + file + LocaleText2 + "\r\n"; } } LangPack.WriteLine(""); if (File.Exists(FolderName + "\\=CORE=.txt")) { ReadFile = new StreamReader(FolderName + "\\=CORE=.txt"); while ((s = ReadFile.ReadLine()) != null) { LangPack.WriteLine(s); } ReadFile.Close(); } else { LocaleText = rm.GetString("CoreNotFound", culture); InfMessageLangBox.Text = InfMessageLangBox.Text + LocaleText + "\r\n"; LocaleText = rm.GetString("GenStop", culture); InfMessageLangBox.Text = InfMessageLangBox.Text + LocaleText; LangPack.Close(); ReadFile.Close(); return; } rf = new FileStream(vipath, FileMode.Open, FileAccess.Read); rf.Read(buffer, 0, 3); rf.Close(); if (buffer[0] == bom[0] && buffer[1] == bom[1] && buffer[2] == bom[2]) { ReadFile = new StreamReader(vipath); } else { ReadFile = new StreamReader(vipath, Encoding.Default); } while ((s = ReadFile.ReadLine()) != null) { if (s.StartsWith("Active Plugins")) { s = ReadFile.ReadLine().Trim(); while (s != "") { StreamReader plug_in; if (s.StartsWith(" ") || s.Contains(".dll")) { string back_s = s; int l = s.IndexOf("."); if (s.StartsWith(" ")) { s = s.Substring(2, l - 2); } else { s = s.Substring(0, l); } string stmp = s.ToUpper(); if (stmp == "IMPORT_SA") { s = "Import"; } if (stmp == "WEATHER") { LangPack.WriteLine(""); if (File.Exists(FolderName + "\\plugins\\" + s + ".txt")) { plug_in = new StreamReader(FolderName + "\\plugins\\" + s + ".txt"); while ((st = plug_in.ReadLine()) != null) { LangPack.WriteLine(st); } plug_in.Close(); } else { LocaleText = rm.GetString("FileText", culture); string LocaleText2 = rm.GetString("File2NotFound", culture); InfMessageLangBox.Text = InfMessageLangBox.Text + LocaleText + s + LocaleText2 + "\r\n"; } plug_in = new StreamReader(vipath); while ((st = plug_in.ReadLine()) != null) { if (st.StartsWith("Weather ini files:")) { st = plug_in.ReadLine(); st = plug_in.ReadLine(); if (st != "" && st != null) { st = st.Trim(); } while (st != "" && st != null) { int w = st.IndexOf("."); st = st.Substring(0, w); LangPack.WriteLine(""); if (File.Exists(FolderName + "\\weather\\" + st + ".txt")) { StreamReader weather = new StreamReader(FolderName + "\\weather\\" + st + ".txt"); while ((we = weather.ReadLine()) != null) { LangPack.WriteLine(we); } weather.Close(); } else { LocaleText = rm.GetString("FileText", culture); string LocaleText2 = rm.GetString("File2NotFound", culture); InfMessageLangBox.Text = InfMessageLangBox.Text + LocaleText + st + LocaleText2 + "\r\n"; } st = plug_in.ReadLine(); } } } plug_in.Close(); continue; } LangPack.WriteLine(""); if (File.Exists(FolderName + "\\plugins\\" + s + ".txt")) { plug_in = new StreamReader(FolderName + "\\plugins\\" + s + ".txt"); while ((st = plug_in.ReadLine()) != null) { LangPack.WriteLine(st); } plug_in.Close(); } else { LocaleText = rm.GetString("FileText", culture); string LocaleText2 = rm.GetString("File2NotFound", culture); InfMessageLangBox.Text = InfMessageLangBox.Text + LocaleText + s + LocaleText2 + "\r\n"; } } s = ReadFile.ReadLine().Trim(); } } if (s.StartsWith("Unloadable Plugins")) { s = ReadFile.ReadLine().Trim(); while (s != "") { StreamReader plug_in; if (s.StartsWith(" ") || s.Contains(".dll")) { string back_s = s; int l = s.IndexOf("."); if (s.StartsWith(" ")) { s = s.Substring(2, l - 2); } else { s = s.Substring(0, l); } LangPack.WriteLine(""); if (File.Exists(FolderName + "\\plugins\\" + s + ".txt")) { plug_in = new StreamReader(FolderName + "\\plugins\\" + s + ".txt"); while ((st = plug_in.ReadLine()) != null) { LangPack.WriteLine(st); } plug_in.Close(); } else { LocaleText = rm.GetString("FileText", culture); string LocaleText2 = rm.GetString("File2NotFound", culture); InfMessageLangBox.Text = InfMessageLangBox.Text + LocaleText + s + LocaleText2 + "\r\n"; } } s = ReadFile.ReadLine().Trim(); } break; } } ReadFile.Close(); LangPack.Close(); } else { LocaleText = rm.GetString("WOVIGen", culture); InfMessageLangBox.Text = InfMessageLangBox.Text + LocaleText + "\r\n"; LangPack.WriteLine(""); if (File.Exists(FolderName + "\\=VERSION=.txt")) { ReadFile = new StreamReader(FolderName + "\\=VERSION=.txt"); while ((s = ReadFile.ReadLine()) != null) { LangPack.WriteLine(s); } ReadFile.Close(); } else { LocaleText = rm.GetString("VersionNotFound", culture); InfMessageLangBox.Text = InfMessageLangBox.Text + LocaleText + "\r\n"; } if (OwnFileCheckBox.Checked && OwnFileEdit.Text != "") { if (File.Exists(OwnFileEdit.Text)) { LangPack.WriteLine(""); ReadFile = new StreamReader(OwnFileEdit.Text); while ((s = ReadFile.ReadLine()) != null) { LangPack.WriteLine(s); } ReadFile.Close(); } else { int f = OwnFileEdit.Text.LastIndexOf('\\'); string file = OwnFileEdit.Text.Substring(f + 1); LocaleText = rm.GetString("FileText", culture); string LocaleText2 = rm.GetString("FileNotFound", culture); InfMessageLangBox.Text = InfMessageLangBox.Text + LocaleText + file + LocaleText2 + "\r\n"; } } LangPack.WriteLine(""); if (File.Exists(FolderName + "\\=CORE=.txt")) { ReadFile = new StreamReader(FolderName + "\\=CORE=.txt"); while ((s = ReadFile.ReadLine()) != null) { LangPack.WriteLine(s); } ReadFile.Close(); } else { LocaleText = rm.GetString("CoreNotFound", culture); InfMessageLangBox.Text = InfMessageLangBox.Text + LocaleText + "\r\n"; LocaleText = rm.GetString("GenStop", culture); InfMessageLangBox.Text = InfMessageLangBox.Text + LocaleText; LangPack.Close(); return; } DirectoryInfo PluginsDir = new DirectoryInfo(FolderName + "\\Plugins"); foreach (FileInfo fi in PluginsDir.GetFiles()) { string stmp = fi.Name.ToUpper(); if (stmp == "WEATHER.TXT") { LangPack.WriteLine(""); ReadFile = new StreamReader(fi.FullName); while ((s = ReadFile.ReadLine()) != null) { LangPack.WriteLine(s); } ReadFile.Close(); DirectoryInfo WeatherDir = new DirectoryInfo(FolderName + "\\Weather"); if (Directory.Exists(WeatherDir.ToString())) { foreach (FileInfo wi in WeatherDir.GetFiles()) { LangPack.WriteLine(""); ReadFile = new StreamReader(wi.FullName); while ((s = ReadFile.ReadLine()) != null) { LangPack.WriteLine(s); } ReadFile.Close(); } } else { LocaleText = rm.GetString("WeatherLinkNotFound", culture); InfMessageLangBox.Text = InfMessageLangBox.Text + LocaleText + "\r\n"; } continue; } LangPack.WriteLine(""); ReadFile = new StreamReader(fi.FullName); while ((s = ReadFile.ReadLine()) != null) { LangPack.WriteLine(s); } ReadFile.Close(); } LangPack.Close(); } if (!quiet) { LocaleText = rm.GetString("Done", culture); InfMessageLangBox.Text = InfMessageLangBox.Text + LocaleText; string LocaleText3 = rm.GetString("Inf", culture); MessageBox.Show(LocaleText, LocaleText3, MessageBoxButtons.OK, MessageBoxIcon.Information); } }