get method

Implementation

Future<MessageMetaData?> get() async {
  if (student.demo) {
    return null;
  }
  var soup = await student.messages.newMessage();
  if (soup != null) {
    var scripts = extractScripts(soup);
    for (var script in scripts) {
      if(script.text.contains("Autocomplete.registerDataSetUrl")){
        var fetchedContent = await _getUrls(script.text);
        for(var fetchedScript in fetchedContent){
        await _loadScript(fetchedScript);

        }
      }
    }

    List<MetaDataEntry> concatenatedEntries = [
      ...students,
      ...teachers,
      ...groups,
      ...teams
    ];

    for (var favorite in _favorites) {
      List<MetaDataEntry> matches = concatenatedEntries
          .where((element) => element.id == favorite.id)
          .toList();
      if (matches.isNotEmpty) {
        favorites.add(matches[0]);
      }
    }

    return MessageMetaData(favorites, groups, students, teams, teachers);
  }
  return null;
}