mirror of
https://github.com/f-droid/fdroidserver.git
synced 2025-11-09 08:50:28 +03:00
Merge branch 'random-bag-of-fies' into 'master'
random bag of fixes Closes #719 See merge request fdroid/fdroidserver!710
This commit is contained in:
commit
140bd29c94
13 changed files with 90 additions and 56 deletions
|
|
@ -64,7 +64,7 @@ def check_http(app):
|
|||
if len(urlcode) > 0:
|
||||
logging.debug("...requesting {0}".format(urlcode))
|
||||
req = urllib.request.Request(urlcode, None)
|
||||
resp = urllib.request.urlopen(req, None, 20)
|
||||
resp = urllib.request.urlopen(req, None, 20) # nosec B310 scheme is filtered above
|
||||
page = resp.read().decode('utf-8')
|
||||
|
||||
m = re.search(codeex, page)
|
||||
|
|
@ -77,7 +77,7 @@ def check_http(app):
|
|||
if urlver != '.':
|
||||
logging.debug("...requesting {0}".format(urlver))
|
||||
req = urllib.request.Request(urlver, None)
|
||||
resp = urllib.request.urlopen(req, None, 20)
|
||||
resp = urllib.request.urlopen(req, None, 20) # nosec B310 scheme is filtered above
|
||||
page = resp.read().decode('utf-8')
|
||||
|
||||
m = re.search(verex, page)
|
||||
|
|
@ -295,7 +295,7 @@ def check_gplay(app):
|
|||
headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux i686; rv:18.0) Gecko/20100101 Firefox/18.0'}
|
||||
req = urllib.request.Request(url, None, headers)
|
||||
try:
|
||||
resp = urllib.request.urlopen(req, None, 20)
|
||||
resp = urllib.request.urlopen(req, None, 20) # nosec B310 URL base is hardcoded above
|
||||
page = resp.read().decode()
|
||||
except urllib.error.HTTPError as e:
|
||||
return (None, str(e.code))
|
||||
|
|
@ -358,6 +358,18 @@ def possible_subdirs(app):
|
|||
yield subdir
|
||||
|
||||
|
||||
def _getappname(app):
|
||||
if app.Name:
|
||||
return app.Name
|
||||
if app.AutoName:
|
||||
return app.AutoName
|
||||
return app.id
|
||||
|
||||
|
||||
def _getcvname(app):
|
||||
return '%s (%s)' % (app.CurrentVersion, app.CurrentVersionCode)
|
||||
|
||||
|
||||
def fetch_autoname(app, tag):
|
||||
|
||||
if not app.RepoType or app.UpdateCheckMode in ('None', 'Static') \
|
||||
|
|
@ -393,7 +405,7 @@ def fetch_autoname(app, tag):
|
|||
if new_name != app.AutoName:
|
||||
app.AutoName = new_name
|
||||
if not commitmsg:
|
||||
commitmsg = "Set autoname of {0}".format(common.getappname(app))
|
||||
commitmsg = "Set autoname of {0}".format(_getappname(app))
|
||||
else:
|
||||
logging.debug("...couldn't get autoname")
|
||||
|
||||
|
|
@ -472,8 +484,8 @@ def checkupdates_app(app):
|
|||
commitmsg = fetch_autoname(app, tag)
|
||||
|
||||
if updating:
|
||||
name = common.getappname(app)
|
||||
ver = common.getcvname(app)
|
||||
name = _getappname(app)
|
||||
ver = _getcvname(app)
|
||||
logging.info('...updating to version %s' % ver)
|
||||
commitmsg = 'Update CV of %s to %s' % (name, ver)
|
||||
|
||||
|
|
@ -513,8 +525,8 @@ def checkupdates_app(app):
|
|||
commit = commit.replace('%c', newbuild.versionCode)
|
||||
newbuild.commit = commit
|
||||
app.builds.append(newbuild)
|
||||
name = common.getappname(app)
|
||||
ver = common.getcvname(app)
|
||||
name = _getappname(app)
|
||||
ver = _getcvname(app)
|
||||
commitmsg = "Update %s to %s" % (name, ver)
|
||||
else:
|
||||
logging.warning('Invalid auto update mode "' + mode + '" on ' + app.id)
|
||||
|
|
@ -610,24 +622,24 @@ def main():
|
|||
version, reason = check_gplay(app)
|
||||
if version is None:
|
||||
if reason == '404':
|
||||
logging.info("{0} is not in the Play Store".format(common.getappname(app)))
|
||||
logging.info("{0} is not in the Play Store".format(_getappname(app)))
|
||||
else:
|
||||
logging.info("{0} encountered a problem: {1}".format(common.getappname(app), reason))
|
||||
logging.info("{0} encountered a problem: {1}".format(_getappname(app), reason))
|
||||
if version is not None:
|
||||
stored = app.CurrentVersion
|
||||
if not stored:
|
||||
logging.info("{0} has no Current Version but has version {1} on the Play Store"
|
||||
.format(common.getappname(app), version))
|
||||
.format(_getappname(app), version))
|
||||
elif LooseVersion(stored) < LooseVersion(version):
|
||||
logging.info("{0} has version {1} on the Play Store, which is bigger than {2}"
|
||||
.format(common.getappname(app), version, stored))
|
||||
.format(_getappname(app), version, stored))
|
||||
else:
|
||||
if stored != version:
|
||||
logging.info("{0} has version {1} on the Play Store, which differs from {2}"
|
||||
.format(common.getappname(app), version, stored))
|
||||
.format(_getappname(app), version, stored))
|
||||
else:
|
||||
logging.info("{0} has the same version {1} on the Play Store"
|
||||
.format(common.getappname(app), version))
|
||||
.format(_getappname(app), version))
|
||||
update_wiki(gplaylog, None)
|
||||
return
|
||||
|
||||
|
|
|
|||
|
|
@ -664,18 +664,6 @@ def getsrcname(app, build):
|
|||
return "%s_%s_src.tar.gz" % (app.id, build.versionCode)
|
||||
|
||||
|
||||
def getappname(app):
|
||||
if app.Name:
|
||||
return app.Name
|
||||
if app.AutoName:
|
||||
return app.AutoName
|
||||
return app.id
|
||||
|
||||
|
||||
def getcvname(app):
|
||||
return '%s (%s)' % (app.CurrentVersion, app.CurrentVersionCode)
|
||||
|
||||
|
||||
def get_build_dir(app):
|
||||
'''get the dir that this app will be built in'''
|
||||
|
||||
|
|
|
|||
|
|
@ -40,8 +40,9 @@ SETTINGS_GRADLE = re.compile(r'''include\s+['"]:([^'"]*)['"]''')
|
|||
# when one of these is found it's assumed that's the information we want.
|
||||
# Returns repotype, address, or None, reason
|
||||
def getrepofrompage(url):
|
||||
|
||||
req = urllib.request.urlopen(url)
|
||||
if not url.startswith('http'):
|
||||
return (None, _('{url} does not start with "http"!'.format(url=url)))
|
||||
req = urllib.request.urlopen(url) # nosec B310 non-http URLs are filtered out
|
||||
if req.getcode() != 200:
|
||||
return (None, 'Unable to get ' + url + ' - return code ' + str(req.getcode()))
|
||||
page = req.read().decode(req.headers.get_content_charset())
|
||||
|
|
|
|||
|
|
@ -46,16 +46,26 @@ def main():
|
|||
parser.add_argument("url", nargs='?',
|
||||
help=_('Base URL to mirror, can include the index signing key '
|
||||
+ 'using the query string: ?fingerprint='))
|
||||
parser.add_argument("--all", action='store_true', default=False,
|
||||
help=_("Mirror the full repo and archive, all file types."))
|
||||
parser.add_argument("--archive", action='store_true', default=False,
|
||||
help=_("Also mirror the full archive section"))
|
||||
parser.add_argument("--build-logs", action='store_true', default=False,
|
||||
help=_("Include the build logs in the mirror"))
|
||||
parser.add_argument("--pgp-signatures", action='store_true', default=False,
|
||||
help=_("Include the PGP signature .asc files in the mirror"))
|
||||
parser.add_argument("--src-tarballs", action='store_true', default=False,
|
||||
help=_("Include the source tarballs in the mirror"))
|
||||
parser.add_argument("--output-dir", default=None,
|
||||
help=_("The directory to write the mirror to"))
|
||||
options = parser.parse_args()
|
||||
|
||||
if options.all:
|
||||
options.archive = True
|
||||
options.build_logs = True
|
||||
options.pgp_signatures = True
|
||||
options.src_tarballs = True
|
||||
|
||||
if options.url is None:
|
||||
logging.error(_('A URL is required as an argument!') + '\n')
|
||||
parser.print_help()
|
||||
|
|
@ -152,7 +162,8 @@ def main():
|
|||
if not os.path.exists(f) \
|
||||
or (f.endswith('.apk') and os.path.getsize(f) != package['size']):
|
||||
urls.append(_append_to_url_path(section, f))
|
||||
urls.append(_append_to_url_path(section, f + '.asc'))
|
||||
if options.pgp_signatures:
|
||||
urls.append(_append_to_url_path(section, f + '.asc'))
|
||||
if options.build_logs and f.endswith('.apk'):
|
||||
urls.append(_append_to_url_path(section, f[:-4] + '.log.gz'))
|
||||
|
||||
|
|
|
|||
|
|
@ -714,7 +714,10 @@ def _set_localized_text_entry(app, locale, key, f):
|
|||
with open(f, errors='replace') as fp:
|
||||
text = fp.read()[:limit]
|
||||
if len(text) > 0:
|
||||
localized[key] = text
|
||||
if key in ('name', 'summary', 'video'): # hardcoded as a single line
|
||||
localized[key] = text.strip('\n')
|
||||
else:
|
||||
localized[key] = text
|
||||
|
||||
|
||||
def _set_author_entry(app, key, f):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue