From f2ea4477c09a744996693c674c3b17237a700cbf Mon Sep 17 00:00:00 2001 From: Krytarik Raido Date: Tue, 11 Oct 2022 03:34:04 +0200 Subject: [PATCH] Bugtracker: More exactly trim CVE information. --- Bugtracker/__init__.py | 2 +- Bugtracker/plugin.py | 2 +- Bugtracker/trackers.py | 9 ++++++--- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/Bugtracker/__init__.py b/Bugtracker/__init__.py index faaa6ac..f399582 100644 --- a/Bugtracker/__init__.py +++ b/Bugtracker/__init__.py @@ -23,7 +23,7 @@ import supybot import supybot.world as world from importlib import reload -__version__ = "5.5.0" +__version__ = "5.6.0" __author__ = supybot.Author("Krytarik Raido", "krytarik", "krytarik@gmail.com") __contributors__ = { supybot.Author("Dennis Kaarsemaker", "Seveas", "dennis@kaarsemaker.net"): ['Original Author'], diff --git a/Bugtracker/plugin.py b/Bugtracker/plugin.py index b527b3b..b6026c0 100644 --- a/Bugtracker/plugin.py +++ b/Bugtracker/plugin.py @@ -495,7 +495,7 @@ class Bugtracker(callbacks.PluginRegexp): else: do_url = False try: - report = trackers.CVE().get_bug(cveid, do_url) + report = trackers.CVE().get_bug(channel or msg.nick, cveid, do_url) except trackers.BugNotFoundError: if self.registryValue('replyWhenNotFound'): irc.error("Could not find CVE %s" % cveid) diff --git a/Bugtracker/trackers.py b/Bugtracker/trackers.py index f64eb62..b69f20a 100644 --- a/Bugtracker/trackers.py +++ b/Bugtracker/trackers.py @@ -72,7 +72,7 @@ cvere = re.compile(r']*>Description.*?]*>\s*(?P.*?)\s*]*>\s*(?P.*?)\s*', re.I | re.DOTALL) # Define CVE tracker class CVE: - def get_bug(self, cveid, do_url=True): + def get_bug(self, channel, cveid, do_url=True): url = "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-%s" % cveid try: cvedata = utils.web.getUrl(url).decode('utf-8') @@ -81,8 +81,11 @@ class CVE: match = cvere.search(cvedata) if match: cve = utils.web.htmlToText(match.group('cve'), tagReplace='') - if len(cve) > 380: - cve = cve[:380] + '...' + desc_max = 450 - len(channel) + if do_url: + desc_max -= len(url) + 3 + if len(cve) > desc_max: + cve = cve[:desc_max-3] + '...' if do_url: cve += ' <%s>' % url return cve