#!/usr/bin/env python3 # Copyright (c) 2021 Julian Müller (ChaoticByte) import asyncio from lib.args import argparser from lib.graph import pyvis_graph_from_linkmap from lib.linkmap_from_sitelinks import LinkMapFromSitelinksGenerator async def main(args): nm = LinkMapFromSitelinksGenerator() nm.site_request_max_len = args.http_download_limit nm.enable_log = args.log starturl = args.url if not (starturl.startswith("https://") or starturl.startswith("http://")): starturl = "https://" + starturl await nm.generate( starturl, max_depth=args.max_depth, max_links_per_site=args.max_links_per_site ) if args.dump: print( "\n".join(str(c) for c in nm.get_linkmap().link_connections) ) else: pyvis_network_graph = pyvis_graph_from_linkmap(nm.get_linkmap(), heading=starturl) pyvis_network_graph.show("output.html") if __name__ == "__main__": args = argparser.parse_args() asyncio.run(main(args))