private void OpenTranslationDownloadGithub(object sender, EventArgs e)
{
string list = string.Empty;
LoadingBarGUI loadingBarGui = new LoadingBarGUI(
Translation.GetTranslation("LOADING"),
Translation.GetTranslation("TL_LIST_LOADING"),
true,
g =>
{
HttpWebRequest webRequest =
(HttpWebRequest)
WebRequest.Create($"{MaidFiddler.RESOURCE_URL}/Resources/Translations/translation_list.txt");
g.Timer.Start();
Debugger.WriteLine(LogLevel.Info, "Getting translation list...");
webRequest.BeginGetResponse(
ar =>
{
try
{
HttpWebResponse response = (HttpWebResponse) webRequest.EndGetResponse(ar);
Debugger.WriteLine(LogLevel.Info, "Got response!");
Debugger.WriteLine(LogLevel.Info, $"Response: {response.StatusCode}");
if (response.StatusCode == HttpStatusCode.NotFound)
{
MessageBox.Show(
"Failed to retreive translation list: List not found.",
"Boop!",
MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
Stream s = response.GetResponseStream();
Debugger.WriteLine(LogLevel.Info, "Reading response");
StringBuilder sb = new StringBuilder();
byte[] responseBuffer = new byte[1024];
int read;
do
{
read = s.Read(responseBuffer, 0, responseBuffer.Length);
sb.Append(Encoding.UTF8.GetString(responseBuffer, 0, read));
} while (read > 0);
list = sb.ToString();
g.DialogResult = DialogResult.OK;
}
catch (WebException we)
{
MessageBox.Show(
$"Failed to retreive translation list.\nResponse: {we.Message}",
"Boop!",
MessageBoxButtons.OK,
MessageBoxIcon.Error);
g.DialogResult = DialogResult.Abort;
}
catch (Exception ex)
{
MessageBox.Show(
$"Unknown error occurred.\nInfo: {ex.ToString()}",
"Boop!",
MessageBoxButtons.OK,
MessageBoxIcon.Error);
g.DialogResult = DialogResult.Abort;
}
finally
{
g.Timer.Stop();
g.Close();
}
},
null);
});
DialogResult result = loadingBarGui.ShowDialog(this);
loadingBarGui.Dispose();
if (result != DialogResult.OK)
return;
GithubTranslationsGUI tlGui = new GithubTranslationsGUI(list.Remove(0, 1));
tlGui.ShowDialog(this);
tlGui.Dispose();
LoadTranslations(Translation.CurrentTranslationFile);
}