extractExamEntries function

List<ExamEntry> extractExamEntries(
  1. BeautifulSoup soup
)

Implementation

List<ExamEntry> extractExamEntries(BeautifulSoup soup) {
  List<ExamEntry> entries = [];
  var diplomaDiv = soup.find('*', id: 'printareaDiplomaLines');
  var table = diplomaDiv?.find('tbody')?.children;
  if (table != null) {
    // start at index 2 because of double header
    for (int i = 2; i < table.length; i++) {
      var children = table[i].children;
      var subject = children.elementAtOrNull(0)?.text;
      var yearGrade = children.length >= 4
          ? extractExamGrade(children.sublist(1, 4))
          : null;
      var examGrade = children.length >= 7
          ? extractExamGrade(children.sublist(4, 7))
          : null;
      if (subject != null && subject.isNotEmpty) {
        entries.add(ExamEntry(
            team: subject, yearGrade: yearGrade, examGrade: examGrade));
      }
    }
  }
  return entries;
}