getScheduleWeekFuture function

Future<List<ScheduleWeek>> getScheduleWeekFuture(
  1. String groupLink
)

Implementation

Future<List<ScheduleWeek>> getScheduleWeekFuture(String groupLink) async {
  List<ScheduleWeek> scheduleWeekList = [];
  List<Schedule> scheduleList = [];
  int multiply = 0;
  final response =
      await http.Client().get(Uri.parse(GlobalVariable.URL_MAIN + groupLink));
  if (response.statusCode == 200) {
    var body = decodeCp1251(response.body);
    var documentFullHtmlCode = parseHtmlDocument(body);
    var documentTableHtmlCode =
        documentFullHtmlCode.querySelectorAll("table.inf").first;
    var documentTableElements = documentTableHtmlCode.querySelectorAll("tr");
    if (documentTableElements[3].querySelector("tr > td.hd")!.getAttribute("rowspan") == "6") {
      multiply = 0;
    } else {
      multiply = 0;
      GlobalVariable.DOUBLE_MEAL = true;
    }
    int count = documentTableElements.length;
    for (int i = 3; i <= count - 1; i += (7+multiply)) {
      if (i + (6 + multiply) <= (100)) {
        for (int j = 0; j <= 5 + multiply; j++) {
          var documentTableSelected = documentTableElements[i + j];
          String firstLesson = "",
              firstCabinet = "",
              firstTeacher = "",
              dayParams = "";

          String secondLesson = "", secondTeacher = "", secondCabinet = "";

          int countDouble =
              documentTableSelected.querySelectorAll("tr > td").length;

          if (documentTableSelected.querySelector("tr > td.hd") != null)
            dayParams =
                documentTableSelected.querySelector("tr > td.hd")!.text!;
          if (documentTableSelected.querySelector("tr > td.ur > a.z1") != null)
            firstLesson =
                documentTableSelected.querySelector("tr > td.ur > a.z1")!.text!;
          if (documentTableSelected.querySelector("tr > td.ur > a.z2") != null)
            firstCabinet =
                documentTableSelected.querySelector("tr > td.ur > a.z2")!.text!;
          if (documentTableSelected.querySelector("tr > td.ur > a.z3") != null)
            firstTeacher =
                documentTableSelected.querySelector("tr > td.ur > a.z3")!.text!;

          if (isFirstElement(dayParams)) {

            if (countDouble == 4) {
              if (documentTableSelected
                      .querySelector("tr > td.ur:last-child > a.z1") !=
                  null)
                secondLesson = documentTableSelected
                    .querySelector("tr > td.ur:last-child > a.z1")!
                    .text!;
              if (documentTableSelected
                      .querySelector("tr > td.ur:last-child > a.z2") !=
                  null)
                secondCabinet = documentTableSelected
                    .querySelector("tr > td.ur:last-child > a.z2")!
                    .text!;
              if (documentTableSelected
                      .querySelector("tr > td.ur:last-child > a.z3") !=
                  null)
                secondTeacher = documentTableSelected
                    .querySelector("tr > td.ur:last-child > a.z3")!
                    .text!;
            }

            scheduleList.add(new Schedule(
                dayParams,
                firstLesson,
                firstCabinet,
                firstTeacher,
                "",
                true,
                countDouble == 4,
                false,
                "1",
                secondLesson,
                secondTeacher,
                secondCabinet));
          } else {
            if (countDouble == 3) {
              if (documentTableSelected
                  .querySelector("tr > td.ur:last-child > a.z1") !=
                  null)
                secondLesson = documentTableSelected
                    .querySelector("tr > td.ur:last-child > a.z1")!
                    .text!;
              if (documentTableSelected
                  .querySelector("tr > td.ur:last-child > a.z2") !=
                  null)
                secondCabinet = documentTableSelected
                    .querySelector("tr > td.ur:last-child > a.z2")!
                    .text!;
              if (documentTableSelected
                  .querySelector("tr > td.ur:last-child > a.z3") !=
                  null)
                secondTeacher = documentTableSelected
                    .querySelector("tr > td.ur:last-child > a.z3")!
                    .text!;
            }

            if (j == 1) {
              scheduleList.add(new Schedule(
                  dayParams,
                  firstLesson,
                  firstCabinet,
                  firstTeacher,
                  "",
                  false,
                  countDouble == 3,
                  false,
                  dayParams,
                  secondLesson,
                  secondTeacher,
                  secondCabinet));
              scheduleList.add(new Schedule(
                  dayParams,
                  "Обеденный перерыв",
                  "гулйяте",
                  "желудок",
                  "",
                  false,
                  false,
                  true,
                  dayParams,
                  secondLesson,
                  secondTeacher,
                  secondCabinet));
            } else {
              scheduleList.add(new Schedule(
                  dayParams,
                  firstLesson,
                  firstCabinet,
                  firstTeacher,
                  "",
                  false,
                  countDouble == 3,
                  false,
                  dayParams,
                  secondLesson,
                  secondTeacher,
                  secondCabinet));
            }
            if (j == 4 && multiply == 1) {
              scheduleList.add(new Schedule(
                  dayParams,
                  firstLesson,
                  firstCabinet,
                  firstTeacher,
                  "",
                  false,
                  countDouble == 3,
                  false,
                  dayParams,
                  secondLesson,
                  secondTeacher,
                  secondCabinet));
              scheduleList.add(new Schedule(
                  dayParams,
                  "Обеденный перерыв",
                  "гулйяте",
                  "желудок",
                  "",
                  false,
                  false,
                  true,
                  dayParams,
                  secondLesson,
                  secondTeacher,
                  secondCabinet));
            }
          }
        }
        scheduleWeekList.add(ScheduleWeek(scheduleList));
        scheduleList = [];
      }
    }
  }
  return scheduleWeekList;
}