parse_dom function
Implementation
parse_dom({required String dom, required String app_id, required String url}) {
var matches = Regex.SCRIPT.allMatches(dom);
var dataset = {};
for (var match in matches) {
var matchText = match.group(0);
var key_match;
var value_match;
if (matchText != null) {
key_match = Regex.KEY.allMatches(matchText);
value_match = Regex.VALUE.allMatches(matchText);
}
if (key_match != null && value_match != null) {
try {
var key = key_match.first.group(1);
var value = json.decode(value_match.first.group(1));
dataset[key] = value;
// ignore: empty_catches
} catch (e) {}
}
}
var result = {};
for (var k in ElementSpecs.Detail.keys) {
var spec = ElementSpecs.Detail[k];
var content;
if (spec is List) {
for (ElementSpec sub_spec in spec) {
content = sub_spec.extract_content(dataset);
if (content != null) {
result[k] = content;
break;
}
}
} else {
content = spec.extract_content(dataset);
result[k] = content;
}
}
result["appId"] = app_id;
result["url"] = url;
return result;
}