Date: Mon, 21 May 2018 18:57:34 +0000 (UTC) From: Sofian Brabez <sbz@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r470568 - head/Tools/scripts Message-ID: <201805211857.w4LIvY5P041251@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: sbz Date: Mon May 21 18:57:34 2018 New Revision: 470568 URL: https://svnweb.freebsd.org/changeset/ports/470568 Log: - Do not download obsolete attachments Submitted by: gonzo Approved by: myself Differential Revision: https://reviews.freebsd.org/D14550 Modified: head/Tools/scripts/getpatch Modified: head/Tools/scripts/getpatch ============================================================================== --- head/Tools/scripts/getpatch Mon May 21 18:00:07 2018 (r470567) +++ head/Tools/scripts/getpatch Mon May 21 18:57:34 2018 (r470568) @@ -134,6 +134,8 @@ class BzGetPatch(GetPatch): URL_BASE = 'https://bugs.freebsd.org/bugzilla/' URL_SHOW = '{}/show_bug.cgi?id='.format(URL_BASE) + REGEX_ATTACHMENTS_TABLE = r'<table id="attachment_table">(.*?)</table>' + REGEX_ATTACHMENT_TR = r'(<tr id="a\d+"[^<]+>.*?</tr>)' REGEX_URL = r'<a href="([^<]+)">Details</a>' REGEX = r'<div class="details">([^ ]+) \(text/plain(?:; charset=[-\w]+)?\)' @@ -147,8 +149,7 @@ class BzGetPatch(GetPatch): return None return match.group(1) - def _get_patch_urls(self, data): - patch_urls = {} + def _get_patch_url(self, data): for url in re.findall(self.REGEX_URL, str(data)): url = '{}{}'.format(self.URL_BASE, url) file_name = self._get_patch_name(url) @@ -158,7 +159,20 @@ class BzGetPatch(GetPatch): self.out(msg.format(url)) continue download_url = url[:url.find('&')] + return download_url, file_name + + def _get_patch_urls(self, data): + patch_urls = {} + match = re.search(self.REGEX_ATTACHMENTS_TABLE, str(data), re.DOTALL) + if match is None: + return patch_urls + table = match.group(1) + for tr in re.findall(self.REGEX_ATTACHMENT_TR, str(data), re.DOTALL): + if (tr.find('bz_tr_obsolete') >= 0): + continue + download_url, file_name = self._get_patch_url(tr) patch_urls[download_url] = file_name + return patch_urls def fetch(self, *largs, **kwargs):
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201805211857.w4LIvY5P041251>