Simpler code, removed a loop, code style
This commit is contained in:
parent
06994305ac
commit
82d3e3d018
@ -17,25 +17,22 @@ Future<String> fetchRemoteSitemap() async {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Parse the list of elements and detect pages from this list
|
// Parse the list of elements and detect pages from this list
|
||||||
Map<String, String> detectPages(List<dom.Element> sitemap, [String prefix]) {
|
Map<String, String> detectPages(List<dom.Element> t_sitemap,
|
||||||
|
[String t_prefix]) {
|
||||||
|
final sitemap = t_sitemap.where((e) => !excluded_keywords.contains(e));
|
||||||
final links = <String, String>{};
|
final links = <String, String>{};
|
||||||
for (var elem in sitemap) {
|
for (var elem in sitemap) {
|
||||||
for (var keyword in excluded_keywords) {
|
|
||||||
if (elem.outerHtml.contains(keyword)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (elem.innerHtml.startsWith('<a')) {
|
if (elem.innerHtml.startsWith('<a')) {
|
||||||
elem = elem.firstChild;
|
elem = elem.firstChild;
|
||||||
final url = elem.attributes['href'];
|
final url = elem.attributes['href'];
|
||||||
final text = elem.firstChild.text;
|
final text = elem.firstChild.text;
|
||||||
links[url] = (prefix == null) ? text : '$text ($prefix)';
|
links[url] = (t_prefix == null) ? text : '$text ($t_prefix)';
|
||||||
} else {
|
} else {
|
||||||
prefix = (prefix == null)
|
t_prefix = (t_prefix == null)
|
||||||
? elem.firstChild.text.replaceAll('\n', '')
|
? elem.firstChild.text.replaceAll('\n', '')
|
||||||
: '$prefix / ${elem.firstChild.text}';
|
: '$t_prefix / ${elem.firstChild.text}';
|
||||||
final ul = elem.children[0].children;
|
final ul = elem.children[0].children;
|
||||||
links.addAll(detectPages(ul, prefix));
|
links.addAll(detectPages(ul, t_prefix));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return links;
|
return links;
|
||||||
|
Reference in New Issue
Block a user