Improve error handling and reporting when extracting message data

This commit is contained in:
chylex 2022-06-06 16:59:39 +02:00
parent 8f1c91b2cc
commit 1bead42a0e
No known key found for this signature in database
GPG Key ID: 4DE42C8F19A80548
2 changed files with 20 additions and 5 deletions

View File

@ -110,16 +110,20 @@ class DISCORD {
const messages = []; const messages = [];
for (const ele of this.getMessageElements()) { for (const ele of this.getMessageElements()) {
try {
const props = this.getMessageElementProps(ele); const props = this.getMessageElementProps(ele);
if (props != null) { if (props != null) {
messages.push(props.message); messages.push(props.message);
} }
} catch (e) {
console.error("[DHT] Error extracing message data, skipping it.", e, ele, DOM.tryGetReactProps(ele));
}
} }
return messages; return messages;
} catch (e) { } catch (e) {
console.error(e); console.error("[DHT] Error retrieving messages.", e);
return []; return [];
} }
} }

View File

@ -71,4 +71,15 @@ class DOM {
key = keys.find(key => key.startsWith("__reactProps$")); key = keys.find(key => key.startsWith("__reactProps$"));
return key ? ele[key] : null; return key ? ele[key] : null;
} }
/**
* Returns internal React state object of an element, or null if the retrieval throws.
*/
static tryGetReactProps(ele) {
try {
return this.getReactProps(ele);
} catch (e) {
return null;
}
}
} }