mirror of
https://github.com/SlothDpal/Relaunch-Process.git
synced 2026-10-22 06:14:16 +03:00
146 lines
6.3 KiB
C#
146 lines
6.3 KiB
C#
using Process_Auto_Relaunch;
|
|
using RelaunchProcess.Properties;
|
|
using System;
|
|
using System.Windows.Forms;
|
|
|
|
namespace RelaunchProcess
|
|
{
|
|
public partial class WebhookSettings : Form
|
|
{
|
|
private MainWindow parent;
|
|
|
|
private const int dwhBotNameMaxLength = 32;
|
|
|
|
// ссылка должна быть валидной, если она не пустая и имеет правильный формат URL
|
|
private bool LinkIsValid(string url)
|
|
{
|
|
return Uri.TryCreate(url.Trim(), UriKind.Absolute, out var uri) &&
|
|
(uri.Scheme == Uri.UriSchemeHttp || uri.Scheme == Uri.UriSchemeHttps) &&
|
|
!string.IsNullOrWhiteSpace(uri.Host);
|
|
}
|
|
|
|
// ссылка должна быть валидной, если она пустая или имеет правильный формат URL
|
|
private bool LinkIsValidOrNull(string url)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(url))
|
|
{
|
|
return true;
|
|
}
|
|
|
|
return Uri.TryCreate(url.Trim(), UriKind.Absolute, out var uri) &&
|
|
(uri.Scheme == Uri.UriSchemeHttp || uri.Scheme == Uri.UriSchemeHttps) &&
|
|
!string.IsNullOrWhiteSpace(uri.Host);
|
|
}
|
|
|
|
public WebhookSettings(MainWindow _parent)
|
|
{
|
|
InitializeComponent();
|
|
parent = _parent;
|
|
RestoreSettings();
|
|
}
|
|
|
|
private void RestoreSettings()
|
|
{
|
|
if ( (string.IsNullOrWhiteSpace(Settings.Default.dwhBotname) || Settings.Default.dwhBotname.Length > dwhBotNameMaxLength))
|
|
{
|
|
// значение по умолчанию
|
|
Settings.Default.dwhBotname = "Auto Relauncher";
|
|
Settings.Default.Save();
|
|
}
|
|
textDwhBotName.Text = Settings.Default.dwhBotname;
|
|
textDwhAvatarUrl.Text = Settings.Default.dwhAvatarURL;
|
|
textDwhURL.Text = Settings.Default.dwhURL;
|
|
chbxDiscordEnabled.Checked = Settings.Default.dwhEnabled;
|
|
}
|
|
|
|
private void SaveSettings()
|
|
{
|
|
Settings.Default.dwhBotname = textDwhBotName.Text;
|
|
Settings.Default.dwhAvatarURL = textDwhAvatarUrl.Text;
|
|
Settings.Default.dwhURL = textDwhURL.Text;
|
|
Settings.Default.dwhEnabled = chbxDiscordEnabled.Checked;
|
|
Settings.Default.Save();
|
|
}
|
|
|
|
public void UpdateUI()
|
|
{
|
|
// запрещаем изменять настройки, если Discord включен
|
|
// или разрешаем, если выключен
|
|
groupBoxSettingsDiscord.Enabled = !chbxDiscordEnabled.Checked;
|
|
}
|
|
|
|
private void WebhookSettings_FormLoad(object sender, EventArgs e)
|
|
{
|
|
UpdateUI();
|
|
}
|
|
|
|
private void BtnCancel_Click(object sender, EventArgs e)
|
|
{
|
|
DialogResult = DialogResult.Cancel;
|
|
}
|
|
|
|
private void BtnOk_Click(object sender, EventArgs e)
|
|
{
|
|
if ( LinkIsValidOrNull(textDwhURL.Text) && LinkIsValidOrNull(textDwhAvatarUrl.Text) &&
|
|
(!(string.IsNullOrWhiteSpace(textDwhBotName.Text) || textDwhBotName.Text.Length > dwhBotNameMaxLength)))
|
|
{
|
|
if (String.IsNullOrWhiteSpace(textDwhURL.Text))
|
|
{
|
|
chbxDiscordEnabled.Checked = false;
|
|
}
|
|
if (!chbxDiscordEnabled.Checked)
|
|
{
|
|
parent.dwhHook.CancelProcessing();
|
|
}
|
|
SaveSettings();
|
|
DialogResult = DialogResult.OK;
|
|
Close();
|
|
}
|
|
else
|
|
{
|
|
if (!LinkIsValidOrNull(textDwhURL.Text))
|
|
{
|
|
MessageBox.Show("Неверный формат URL вебхука.\rОчистите или исправьте.", "URL", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
}
|
|
if (!LinkIsValidOrNull(textDwhAvatarUrl.Text))
|
|
{
|
|
MessageBox.Show("Неверный формат URL аватара бота.\rОчистите или исправьте.", "URL", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
}
|
|
if (string.IsNullOrWhiteSpace(textDwhBotName.Text) || textDwhBotName.Text.Length > dwhBotNameMaxLength)
|
|
{
|
|
MessageBox.Show($"Имя бота не может быть пустым или длиннее {dwhBotNameMaxLength} символов.", "Запуск невозможен", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void ClearUrl(object sender, EventArgs e)
|
|
{
|
|
if ( (Button)sender == btnClearUrlField ) textDwhURL.Text = "";
|
|
if ( (Button)sender == btnClearAvatarUrlField ) textDwhAvatarUrl.Text = "";
|
|
}
|
|
|
|
private void chbxDiscordEnabled_Click(object sender, EventArgs e)
|
|
{
|
|
if (chbxDiscordEnabled.Checked)
|
|
{
|
|
if ( !LinkIsValid(textDwhURL.Text) )
|
|
{
|
|
chbxDiscordEnabled.Checked = false;
|
|
MessageBox.Show("Неверный формат URL вебхука.\rИ он не может быть пустым для запуска.\rИсправьте его.", "Запуск невозможен", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
}
|
|
if ( !LinkIsValidOrNull(textDwhAvatarUrl.Text) )
|
|
{
|
|
chbxDiscordEnabled.Checked = false;
|
|
MessageBox.Show("Неверный формат URL аватара бота.\rИсправьте или оставьте пустым.", "Запуск невозможен", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
}
|
|
if ( string.IsNullOrWhiteSpace(textDwhBotName.Text) || textDwhBotName.Text.Length > dwhBotNameMaxLength )
|
|
{
|
|
chbxDiscordEnabled.Checked = false;
|
|
MessageBox.Show($"Имя бота не может быть пустым или длиннее {dwhBotNameMaxLength} символов.", "Запуск невозможен", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
}
|
|
}
|
|
UpdateUI();
|
|
}
|
|
}
|
|
}
|