1
0
mirror of https://gitlab.com/fdroid/fdroidserver.git synced 2024-10-02 09:10:11 +02:00

[checkupdates] Simplify logic in check_http

This commit is contained in:
Jochen Sprickerhof 2021-07-27 22:25:20 +02:00
parent 8f836b3b01
commit 44a0e7e74f

View File

@ -45,9 +45,6 @@ from .exception import VCSException, NoSubmodulesException, FDroidException, Met
# required.
def check_http(app):
ignoreversions = app.UpdateCheckIgnore
ignoresearch = re.compile(ignoreversions).search if ignoreversions else None
if not app.UpdateCheckData:
raise FDroidException('Missing Update Check Data')
@ -60,39 +57,32 @@ def check_http(app):
if not parsed.netloc or not parsed.scheme or parsed.scheme != 'https':
raise FDroidException(_('UpdateCheckData has invalid URL: {url}').format(url=urlcode))
vercode = None
if urlcode:
logging.debug("...requesting {0}".format(urlcode))
req = urllib.request.Request(urlcode, None, headers=net.HEADERS)
logging.debug("...requesting {0}".format(urlcode))
req = urllib.request.Request(urlcode, None, headers=net.HEADERS)
resp = urllib.request.urlopen(req, None, 20) # nosec B310 scheme is filtered above
page = resp.read().decode('utf-8')
m = re.search(codeex, page)
if not m:
raise FDroidException("No RE match for version code")
vercode = m.group(1).strip()
if urlver != '.':
logging.debug("...requesting {0}".format(urlver))
req = urllib.request.Request(urlver, None)
resp = urllib.request.urlopen(req, None, 20) # nosec B310 scheme is filtered above
page = resp.read().decode('utf-8')
m = re.search(codeex, page)
if not m:
raise FDroidException("No RE match for version code")
vercode = m.group(1).strip()
m = re.search(verex, page)
if not m:
raise FDroidException("No RE match for version")
version = m.group(1)
version = "??"
if urlver:
if urlver != '.':
logging.debug("...requesting {0}".format(urlver))
req = urllib.request.Request(urlver, None)
resp = urllib.request.urlopen(req, None, 20) # nosec B310 scheme is filtered above
page = resp.read().decode('utf-8')
if app.UpdateCheckIgnore and re.search(app.UpdateCheckIgnore, version):
logging.info("Version {version} for {appid} is ignored".format(version=version, appid=app.id))
return (None, None)
m = re.search(verex, page)
if not m:
raise FDroidException("No RE match for version")
version = m.group(1)
if ignoresearch and version:
if not ignoresearch(version):
return (version, vercode)
else:
logging.info("Version {version} for {appid} is ignored".format(version=version, appid=app.id))
return (None, None)
else:
return (version, vercode)
return (version, vercode)
def check_tags(app, pattern):