diff --git a/GUT.Schedule/GUTSchedule.Droid/Activities/MainActivity.cs b/GUT.Schedule/GUTSchedule.Droid/Activities/MainActivity.cs
index a2d409c..e4dcbc3 100644
--- a/GUT.Schedule/GUTSchedule.Droid/Activities/MainActivity.cs
+++ b/GUT.Schedule/GUTSchedule.Droid/Activities/MainActivity.cs
@@ -61,7 +61,7 @@ namespace GUTSchedule.Droid.Activities
AssignVariables();
- /*faculty.SetList(this, Faculties.Select(i => i.name));
+ faculty.SetList(this, Faculties.Select(i => i.name));
int s = Faculties.FindIndex(i => i.id == prefs.GetString("Faculty", "-123"));
faculty.SetSelection(s == -1 ? 0 : s);
@@ -70,7 +70,7 @@ namespace GUTSchedule.Droid.Activities
// P.S. Fuck Android
await Task.Delay(100);
- UpdateGroupsList(); */ // TODO: Temp
+ UpdateGroupsList();
AddEvents();
@@ -85,14 +85,14 @@ namespace GUTSchedule.Droid.Activities
reminder.SetSelection(prefs.GetInt("Reminder", 0));
calendar.SetList(this, Calendar.Calendars.Select(i => i.Name));
- int s = Calendar.Calendars.FindIndex(i => i.Id == prefs.GetString("Calendar", "-123"));
+ s = Calendar.Calendars.FindIndex(i => i.Id == prefs.GetString("Calendar", "-123"));
calendar.SetSelection(s == -1 ? 0 : s);
end.Text = endDate.ToShortDateString();
start.Text = startDate.ToShortDateString();
groupTitle.Checked = prefs.GetBoolean("AddGroupToHeader", false);
- authorize.Checked = true;// prefs.GetBoolean("Authorize", true); // TODO: Temp
+ authorize.Checked = prefs.GetBoolean("Authorize", true);
email.Text = prefs.GetString("email", "");
password.Text = prefs.GetString("password", "");
diff --git a/GUT.Schedule/GUTSchedule.Droid/Activities/StartActivity.cs b/GUT.Schedule/GUTSchedule.Droid/Activities/StartActivity.cs
index fde0d79..a3f9d22 100644
--- a/GUT.Schedule/GUTSchedule.Droid/Activities/StartActivity.cs
+++ b/GUT.Schedule/GUTSchedule.Droid/Activities/StartActivity.cs
@@ -59,7 +59,7 @@ namespace GUT.Schedule.Droid.Activities
}
status.Text = Resources.GetText(Resource.String.facultiesLoadingStatus);
- //MainActivity.Faculties = await Parser.GetFaculties(); // TODO: Temp
+ MainActivity.Faculties = await Parser.GetFaculties();
}
catch (HttpRequestException e)
{
diff --git a/GUT.Schedule/GUTSchedule.Droid/Resources/Resource.designer.cs b/GUT.Schedule/GUTSchedule.Droid/Resources/Resource.designer.cs
index b9567eb..e87a6a6 100644
--- a/GUT.Schedule/GUTSchedule.Droid/Resources/Resource.designer.cs
+++ b/GUT.Schedule/GUTSchedule.Droid/Resources/Resource.designer.cs
@@ -14,7 +14,7 @@ namespace GUTSchedule.Droid
{
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "1.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "12.0.99.19")]
public partial class Resource
{
diff --git a/GUT.Schedule/GUTSchedule.Droid/Resources/layout/Main.xml b/GUT.Schedule/GUTSchedule.Droid/Resources/layout/Main.xml
index 1285c02..f7c9630 100644
--- a/GUT.Schedule/GUTSchedule.Droid/Resources/layout/Main.xml
+++ b/GUT.Schedule/GUTSchedule.Droid/Resources/layout/Main.xml
@@ -32,7 +32,6 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:checked="true"
- android:enabled="false"
android:text="@string/authorizeCheckbox"/>
-
+
diff --git a/GUT.Schedule/GUTSchedule.UWP/Pages/MainPage.xaml.cs b/GUT.Schedule/GUTSchedule.UWP/Pages/MainPage.xaml.cs
index ad57083..0c93398 100644
--- a/GUT.Schedule/GUTSchedule.UWP/Pages/MainPage.xaml.cs
+++ b/GUT.Schedule/GUTSchedule.UWP/Pages/MainPage.xaml.cs
@@ -45,7 +45,7 @@ namespace GUTSchedule.UWP.Pages
PackageVersion ver = Package.Current.Id.Version;
version.Text = $"v{ver.Major}.{ver.Minor}.{ver.Build}.{ver.Revision}";
- authorize.IsChecked = true;//(bool?)settings.Values["Authorize"] ?? true; // TODO: Temp
+ authorize.IsChecked = (bool?)settings.Values["Authorize"] ?? true;
if (vault.RetrieveAll() is IReadOnlyList credentials && credentials.Count > 0)
{
email.Text = credentials.First().UserName;
@@ -54,7 +54,7 @@ namespace GUTSchedule.UWP.Pages
}
rememberCredential.IsChecked = (bool?)settings.Values["RememberCredential"] ?? true;
- /*faculty.ItemsSource = (await Parser.GetFaculties()).Select(i => new ComboBoxItem // TODO: Temp
+ faculty.ItemsSource = (await Parser.GetFaculties()).Select(i => new ComboBoxItem
{
Content = i.name,
Tag = i.id,
@@ -63,7 +63,7 @@ namespace GUTSchedule.UWP.Pages
faculty.SelectedIndex = (faculty.ItemsSource as List).FindIndex(i => i.IsSelected);
if (faculty.SelectedIndex < 0)
faculty.SelectedIndex = 0;
- course.SelectedIndex = (int?)settings.Values["Course"] ?? 0;*/
+ course.SelectedIndex = (int?)settings.Values["Course"] ?? 0;
startDate.Date = DateTime.Today;
endDate.Date = startDate.Date.Value.AddDays(6);
diff --git a/GUT.Schedule/GUTSchedule/Parser.cs b/GUT.Schedule/GUTSchedule/Parser.cs
index 3e2badd..35f2c36 100644
--- a/GUT.Schedule/GUTSchedule/Parser.cs
+++ b/GUT.Schedule/GUTSchedule/Parser.cs
@@ -15,6 +15,11 @@ namespace GUTSchedule
{
public static class Parser
{
+ private static readonly HttpClient client = new HttpClient(new HttpClientHandler
+ {
+ ServerCertificateCustomValidationCallback = (sender, cert, chain, sslPolicyErrors) => true
+ });
+
public static async Task VaildateAuthorization(string email, string password)
{
if (string.IsNullOrWhiteSpace(email))
@@ -22,8 +27,6 @@ namespace GUTSchedule
if (string.IsNullOrWhiteSpace(password))
throw new ArgumentNullException(nameof(password));
- HttpClient client = new HttpClient();
-
await client.GetAsync("https://lk.sut.ru/cabinet/");
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://lk.sut.ru/cabinet/lib/autentificationok.php");
@@ -67,7 +70,7 @@ namespace GUTSchedule
}
else if (exportParameters is DefaultExportParameters args)
{
- DateTime startDate = new DateTime(long.Parse(await new HttpClient().GetStringAsync("https://xfox111.net/API/GUTSchedule/SemesterOffsetDay")));
+ DateTime startDate = new DateTime(2021, 8, 30);
IHtmlDocument[] rawSchedule = await GetRawSchedule(args.FacultyId, args.Course, args.GroupId);
if(rawSchedule[0] != null)
schedule.AddRange(ParseRegularSchedule(startDate, rawSchedule[0]));
@@ -131,20 +134,17 @@ namespace GUTSchedule
private static async Task> GetList(params (string key, string value)[] parameters)
{
List<(string id, string name)> list = new List<(string, string)>();
- using (HttpClient client = new HttpClient())
- {
- HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://cabinet.sut.ru/raspisanie_all_new.php");
- request.SetContent(parameters);
- request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded");
+ HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://cabinet.sut.ru/raspisanie_all_new.php");
+ request.SetContent(parameters);
+ request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded");
- HttpResponseMessage response = await client.SendAsync(request);
- string responseBody = await response.Content.ReadAsStringAsync();
- if (string.IsNullOrWhiteSpace(responseBody))
- return list;
+ HttpResponseMessage response = await client.SendAsync(request);
+ string responseBody = await response.Content.ReadAsStringAsync();
+ if (string.IsNullOrWhiteSpace(responseBody))
+ return list;
- foreach (string s in responseBody.Remove(responseBody.Length - 1).Split(';'))
- list.Add((s.Split(',')[0], s.Split(',')[1]));
- }
+ foreach (string s in responseBody.Remove(responseBody.Length - 1).Split(';'))
+ list.Add((s.Split(',')[0], s.Split(',')[1]));
return list;
}
@@ -185,29 +185,28 @@ namespace GUTSchedule
throw new ArgumentNullException(nameof(groupId));
IHtmlDocument[] docs = new IHtmlDocument[2];
- using (HttpClient client = new HttpClient())
- for(int k = 1; k < 3; k++)
- {
- HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://cabinet.sut.ru/raspisanie_all_new");
- request.SetContent(
- ("group_el", "0"),
- ("kurs", course),
- ("type_z", k.ToString()),
- ("faculty", facultyId),
- ("group", groupId),
- ("ok", "Показать"),
- ("schet", GetCurrentSemester()));
+ for (int k = 1; k < 3; k++)
+ {
+ HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://cabinet.sut.ru/raspisanie_all_new");
+ request.SetContent(
+ ("group_el", "0"),
+ ("kurs", course),
+ ("type_z", k.ToString()),
+ ("faculty", facultyId),
+ ("group", groupId),
+ ("ok", "Показать"),
+ ("schet", GetCurrentSemester()));
- request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded");
+ request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded");
- HttpResponseMessage response = await client.SendAsync(request);
- string responseContent = await response.Content.ReadAsStringAsync();
- if (string.IsNullOrWhiteSpace(responseContent))
- docs[k - 1] = null;
+ HttpResponseMessage response = await client.SendAsync(request);
+ string responseContent = await response.Content.ReadAsStringAsync();
+ if (string.IsNullOrWhiteSpace(responseContent))
+ docs[k - 1] = null;
- try { docs[k - 1] = new HtmlParser().ParseDocument(responseContent); }
- catch (ArgumentException) { }
- }
+ try { docs[k - 1] = new HtmlParser().ParseDocument(responseContent); }
+ catch (ArgumentException) { }
+ }
return docs;
}
diff --git a/changelogs/android/en-IN/changelogs/android-changelog.txt b/changelogs/android/en-IN/changelogs/android-changelog.txt
index 240468f..993fdcb 100644
--- a/changelogs/android/en-IN/changelogs/android-changelog.txt
+++ b/changelogs/android/en-IN/changelogs/android-changelog.txt
@@ -1,3 +1,2 @@
-- Anonymous schedule export is temporarly disabled
-- Fixed export failing
-- Remote lessons are now appropriately marked
\ No newline at end of file
+- Fixed SSL error
+- Turned back on anonymous schedule export
\ No newline at end of file
diff --git a/changelogs/android/ru-RU/changelogs/android-changelog.txt b/changelogs/android/ru-RU/changelogs/android-changelog.txt
index 79c0f5c..4bc87fc 100644
--- a/changelogs/android/ru-RU/changelogs/android-changelog.txt
+++ b/changelogs/android/ru-RU/changelogs/android-changelog.txt
@@ -1,3 +1,2 @@
-- Анонимный экспорт расписания временно отключен
-- Исправлена проблема с экспортом расписания
-- Теперь дистанционные пары отмечаются как "ДОТ"
\ No newline at end of file
+- Исправлена проблема с SSL сетрификатами
+- Анонимный экспорт расписания снова работает
\ No newline at end of file
diff --git a/changelogs/windows/en/baseListing/releaseNotes.txt b/changelogs/windows/en/baseListing/releaseNotes.txt
index 240468f..be6e7dd 100644
--- a/changelogs/windows/en/baseListing/releaseNotes.txt
+++ b/changelogs/windows/en/baseListing/releaseNotes.txt
@@ -1,3 +1 @@
-- Anonymous schedule export is temporarly disabled
-- Fixed export failing
-- Remote lessons are now appropriately marked
\ No newline at end of file
+- Turned back on anonymous schedule export
\ No newline at end of file
diff --git a/changelogs/windows/ru/baseListing/releaseNotes.txt b/changelogs/windows/ru/baseListing/releaseNotes.txt
index 79c0f5c..ea19c3b 100644
--- a/changelogs/windows/ru/baseListing/releaseNotes.txt
+++ b/changelogs/windows/ru/baseListing/releaseNotes.txt
@@ -1,3 +1 @@
-- Анонимный экспорт расписания временно отключен
-- Исправлена проблема с экспортом расписания
-- Теперь дистанционные пары отмечаются как "ДОТ"
\ No newline at end of file
+- Анонимный экспорт расписания снова работает
\ No newline at end of file