extractMessage function
Implementation
Message? extractMessage(BeautifulSoup soup, MessageRef ref) {
// extract receivers
List<MetaDataEntry> receivers = [];
Bs4Element? receiverField = soup.find('*',
id: 's_m_Content_Content_MessageThreadCtrl_RecipientsReadMode');
List<Bs4Element>? receiverSpans = receiverField?.findAll('span');
if (receiverSpans != null) {
for (var receiverSpan in receiverSpans) {
String? id = receiverSpan.getAttrValue(lectioContextKey);
String name = receiverSpan.text;
if (id != null) {
receivers.add(MetaDataEntry(id: id, name: name));
}
}
}
// extract threads
List<ThreadEntry> thread = [];
List<Bs4Element> messageThreads = soup.findAll('*', id: 'GridRowMessage');
for (int i = 0; i < messageThreads.length; i++) {
var entry = messageThreads.elementAt(i);
var extractedEntry = extractMessageThread(entry);
if (extractedEntry != null) {
thread.add(extractedEntry);
}
}
return Message(ref.id, thread, receivers, ref);
}