diff --git a/modules/cve.py b/modules/cve.py new file mode 100644 index 00000000..1c7f408e --- /dev/null +++ b/modules/cve.py @@ -0,0 +1,29 @@ +import datetime, json +from src import ModuleManager, utils + +URL_CVE = "https://cve.circl.lu/api/cve/%s" + +class Module(ModuleManager.BaseModule): + @utils.hook("received.command.cve", min_args=1) + def cve(self, event): + """ + :help: Get the definition of a provided term from Urban Dictionary + :usage: + """ + page = utils.http.request(URL_CVE % event["args"].upper(), json=True) + + if page and page.data: + cve_id = page.data["id"] + + published = "%sZ" % page.data["Published"].rsplit(".", 1)[0] + published = datetime.datetime.strptime(published, + utils.ISO8601_PARSE) + published = datetime.datetime.strftime(published, "%Y-%m-%d") + + rank = page.data["cvss"] + summary = page.data["summary"] + + event["stdout"].write("%s, %s (%s): %s" % + (cve_id, published, rank, summary)) + else: + raise utils.EventsResultsError()