mirror of
https://gitlab.com/fdroid/fdroidserver.git
synced 2024-10-05 18:50:09 +02:00
auto-clean newlines and spaces in repo/archive descriptions
This gives us flexibility in how the blocks of text can be formatted in config.py, but also provides a more useful format for displaying since the client can decide where to wrap the text.
This commit is contained in:
parent
c7962e7c6d
commit
f34c842f55
@ -33,11 +33,12 @@ repo_maxage = 0
|
|||||||
repo_url = "https://MyFirstFDroidRepo.org/fdroid/repo"
|
repo_url = "https://MyFirstFDroidRepo.org/fdroid/repo"
|
||||||
repo_name = "My First FDroid Repo Demo"
|
repo_name = "My First FDroid Repo Demo"
|
||||||
repo_icon = "fdroid-icon.png"
|
repo_icon = "fdroid-icon.png"
|
||||||
repo_description = (
|
repo_description = """
|
||||||
"This is a repository of apps to be used with FDroid. Applications in this "
|
This is a repository of apps to be used with FDroid. Applications in this
|
||||||
+ "repository are either official binaries built by the original application "
|
repository are either official binaries built by the original application
|
||||||
+ "developers, or are binaries built from source by the admin of f-droid.org "
|
developers, or are binaries built from source by the admin of f-droid.org
|
||||||
+ "using the tools on https://gitlab.com/u/fdroid.")
|
using the tools on https://gitlab.com/u/fdroid.
|
||||||
|
"""
|
||||||
|
|
||||||
# As above, but for the archive repo.
|
# As above, but for the archive repo.
|
||||||
# archive_older sets the number of versions kept in the main repo, with all
|
# archive_older sets the number of versions kept in the main repo, with all
|
||||||
@ -47,9 +48,9 @@ archive_older = 3
|
|||||||
archive_url = "https://f-droid.org/archive"
|
archive_url = "https://f-droid.org/archive"
|
||||||
archive_name = "My First FDroid Archive Demo"
|
archive_name = "My First FDroid Archive Demo"
|
||||||
archive_icon = "fdroid-icon.png"
|
archive_icon = "fdroid-icon.png"
|
||||||
archive_description = (
|
archive_description = """
|
||||||
"The repository of older versions of applications from the main demo "
|
The repository of older versions of applications from the main demo repository.
|
||||||
+ "repository.")
|
"""
|
||||||
|
|
||||||
|
|
||||||
# The ID of a GPG key for making detached signatures for apks. Optional.
|
# The ID of a GPG key for making detached signatures for apks. Optional.
|
||||||
|
@ -62,11 +62,12 @@ def get_default_config():
|
|||||||
'repo_url': "https://MyFirstFDroidRepo.org/fdroid/repo",
|
'repo_url': "https://MyFirstFDroidRepo.org/fdroid/repo",
|
||||||
'repo_name': "My First FDroid Repo Demo",
|
'repo_name': "My First FDroid Repo Demo",
|
||||||
'repo_icon': "fdroid-icon.png",
|
'repo_icon': "fdroid-icon.png",
|
||||||
'repo_description': (
|
'repo_description': '''
|
||||||
"This is a repository of apps to be used with FDroid. Applications in this "
|
This is a repository of apps to be used with FDroid. Applications in this
|
||||||
+ "repository are either official binaries built by the original application "
|
repository are either official binaries built by the original application
|
||||||
+ "developers, or are binaries built from source by the admin of f-droid.org "
|
developers, or are binaries built from source by the admin of f-droid.org
|
||||||
+ "using the tools on https://gitlab.com/u/fdroid."),
|
using the tools on https://gitlab.com/u/fdroid.
|
||||||
|
''',
|
||||||
'archive_older': 0,
|
'archive_older': 0,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -163,6 +164,10 @@ def read_config(opts, config_file='config.py'):
|
|||||||
if k in config:
|
if k in config:
|
||||||
write_password_file(k)
|
write_password_file(k)
|
||||||
|
|
||||||
|
for k in ["repo_description", "archive_description"]:
|
||||||
|
if k in config:
|
||||||
|
config[k] = clean_description(config[k])
|
||||||
|
|
||||||
# since this is used with rsync, where trailing slashes have meaning,
|
# since this is used with rsync, where trailing slashes have meaning,
|
||||||
# ensure there is always a trailing slash
|
# ensure there is always a trailing slash
|
||||||
if 'serverwebroot' in config:
|
if 'serverwebroot' in config:
|
||||||
@ -290,6 +295,19 @@ def has_extension(filename, extension):
|
|||||||
apk_regex = None
|
apk_regex = None
|
||||||
|
|
||||||
|
|
||||||
|
def clean_description(description):
|
||||||
|
'Remove unneeded newlines and spaces from a block of description text'
|
||||||
|
returnstring = ''
|
||||||
|
# this is split up by paragraph to make removing the newlines easier
|
||||||
|
for paragraph in re.split(r'\n\n', description):
|
||||||
|
paragraph = re.sub('\r', '', paragraph)
|
||||||
|
paragraph = re.sub('\n', ' ', paragraph)
|
||||||
|
paragraph = re.sub(' {2,}', ' ', paragraph)
|
||||||
|
paragraph = re.sub('^\s*(\w)', r'\1', paragraph)
|
||||||
|
returnstring += paragraph + '\n\n'
|
||||||
|
return returnstring.rstrip('\n')
|
||||||
|
|
||||||
|
|
||||||
def apknameinfo(filename):
|
def apknameinfo(filename):
|
||||||
global apk_regex
|
global apk_regex
|
||||||
filename = os.path.basename(filename)
|
filename = os.path.basename(filename)
|
||||||
|
48
tests/description-parsing.py
Executable file
48
tests/description-parsing.py
Executable file
@ -0,0 +1,48 @@
|
|||||||
|
#!/usr/bin/env python2
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
|
sys.path.insert(1, os.path.join(os.getcwd(), '..', 'fdroidserver'))
|
||||||
|
import common
|
||||||
|
|
||||||
|
config = common.get_default_config()
|
||||||
|
|
||||||
|
testtext = '''
|
||||||
|
This is a block of text that has been wrapped to fit nicely in PEP8 style:
|
||||||
|
|
||||||
|
GnuPrivacyGuard extends the gpgcli command line tool to bring an integrated
|
||||||
|
privacy engine to your Android. It gives you command line access to the entire
|
||||||
|
GnuPG suite of encryption software. It also serves as the test bed for
|
||||||
|
complete Android integration for all of GnuPG's crypto services, including
|
||||||
|
OpenPGP, symmetric encryption, and more.
|
||||||
|
|
||||||
|
GPG is GNU’s tool for end-to-end secure communication and encrypted data
|
||||||
|
storage. This trusted protocol is the free software alternative to PGP. This
|
||||||
|
app is built upon GnuPG 2.1, the new modularized version of GnuPG that now
|
||||||
|
supports S/MIME.
|
||||||
|
|
||||||
|
GPG aims to provide an integrated experience, so clicking on PGP files should
|
||||||
|
"just work". You can also share files to GPG to encrypt them. GPG will also
|
||||||
|
respond when you click on a PGP fingerprint URL (one that starts with
|
||||||
|
openpgp4fpr:).
|
||||||
|
|
||||||
|
Before using GPG, be sure to launch the app and let it finish its installation
|
||||||
|
process. Once it has completed, then you're ready to use it. The easiest way
|
||||||
|
to get started with GPG is to install [[jackpal.androidterm]]. GPG will
|
||||||
|
automatically configure Android Terminal Emulator as long as you have the
|
||||||
|
"Allow PATH extensions" settings enabled.
|
||||||
|
'''
|
||||||
|
|
||||||
|
archive_description = """
|
||||||
|
The repository of older versions of applications from the main demo repository.
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
print('\n\n\n----------------------------------------------------')
|
||||||
|
print(common.clean_description(testtext))
|
||||||
|
print('\n\n\n----------------------------------------------------')
|
||||||
|
print(common.clean_description(archive_description))
|
||||||
|
print('\n\n\n----------------------------------------------------')
|
||||||
|
print(common.clean_description(config['repo_description']))
|
Loading…
Reference in New Issue
Block a user