From 1bd21857cc05e7e6150bd2d646215c4186f7a28a Mon Sep 17 00:00:00 2001 From: Mikhalkovich Stanislav Date: Wed, 8 Jan 2025 18:46:51 +0300 Subject: [PATCH] =?UTF-8?q?Teacher=20Control=20Plugin=20-=20=D0=B2=D0=BE?= =?UTF-8?q?=D0=B7=D0=BC=D0=BE=D0=B6=D0=BD=D0=BE=D1=81=D1=82=D1=8C=20=D0=B7?= =?UTF-8?q?=D0=B0=D0=B4=D0=B0=D1=82=D1=8C=20server.dat?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TeacherControlPlugin.cs | 27 +++++++++++++++++-- bin/Lib/PABCSystem.pas | 2 +- bin/Lng/Rus/RegisterAndControlPlugin.dat | 6 +++++ 3 files changed, 32 insertions(+), 3 deletions(-) create mode 100644 bin/Lng/Rus/RegisterAndControlPlugin.dat diff --git a/VisualPlugins/TraningControlPlugin/TeacherControlPlugin.cs b/VisualPlugins/TraningControlPlugin/TeacherControlPlugin.cs index 40cb77d85..263c2c828 100644 --- a/VisualPlugins/TraningControlPlugin/TeacherControlPlugin.cs +++ b/VisualPlugins/TraningControlPlugin/TeacherControlPlugin.cs @@ -12,6 +12,7 @@ namespace VisualPascalABCPlugins private const string LabelEntered = "Авторизация: "; private const string LabelNotEntered = "Авторизация: вход не выполнен"; public static string StringsPrefix = "VPP_REGISTER_AND_CONTROL_PLUGIN_"; + public static string ServerAddress = "https://air.mmcs.sfedu.ru/pascalabc"; IVisualEnvironmentCompiler VisualEnvironmentCompiler; IWorkbench Workbench; @@ -23,7 +24,7 @@ namespace VisualPascalABCPlugins private PluginGUIItem Item; public string Name { get => "Teacher Control Plugin"; } public string Version { get => "0.1"; } - public string Copyright { get => "Copyright © 2021-2024 by Stanislav Mikhalkovich"; } + public string Copyright { get => "Copyright © 2021-2025 by Stanislav Mikhalkovich"; } public string Login = null; public string Password = null; @@ -47,7 +48,9 @@ namespace VisualPascalABCPlugins if (IsLightPTInWorkingDirectory()) { IsMechmath = System.Environment.MachineName.ToLower().StartsWith("mil8a-"); - User.ServAddr = "https://air.mmcs.sfedu.ru/pascalabc"; + // Попытаемся изменить ServerAddress если в папке есть server.dat + TryChangeServerAddress(ref ServerAddress); + User.ServAddr = ServerAddress; loginForm = new LoginForm(this); } // RegisterForm.VisualEnvironmentCompiler = VisualEnvironmentCompiler; // Пока форма регистрации никак не связана с компилятором @@ -91,6 +94,26 @@ namespace VisualPascalABCPlugins return File.Exists(lightptname); } + public bool TryChangeServerAddress(ref string ServerAddress) + { + var WorkingDir = WorkingDirectory(); + var server_dat_name = Path.Combine(WorkingDir, "server.dat"); + if (File.Exists(server_dat_name)) + { + try + { + ServerAddress = System.IO.File.ReadAllText(server_dat_name).Trim(); + return true; + } + catch + { + return false; // не поменяли ServerName + // погасить исключение + } + } + return false; + } + public /*async*/ void TryLogin(string login, string pass) { // Гасим все исключения diff --git a/bin/Lib/PABCSystem.pas b/bin/Lib/PABCSystem.pas index 5e6562049..a544854a4 100644 --- a/bin/Lib/PABCSystem.pas +++ b/bin/Lib/PABCSystem.pas @@ -11587,7 +11587,7 @@ begin end; end; -/// Превращает последовательность в последовательность n-ок соседних элементов +/// Превращает последовательность в последовательность массивов, содержащих n соседних элементов function Nwise(Self: sequence of T; n: integer): sequence of array of T; extensionmethod; begin var chunk := new Queue(n); diff --git a/bin/Lng/Rus/RegisterAndControlPlugin.dat b/bin/Lng/Rus/RegisterAndControlPlugin.dat new file mode 100644 index 000000000..88088af40 --- /dev/null +++ b/bin/Lng/Rus/RegisterAndControlPlugin.dat @@ -0,0 +1,6 @@ +//Register and Control Plugin + +%PREFIX%=VPP_REGISTER_AND_CONTROL_PLUGIN_ +NAME=Авторизация +DESCRIPTION=Авторизация: вход не выполнен +FORMNAME=Авторизация