#!/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))