Add config variable for update check

This commit is contained in:
Michael Shamoon 2022-04-01 07:22:55 -07:00
parent bfd11060ec
commit 1019660f6a
4 changed files with 33 additions and 15 deletions

View File

@ -764,3 +764,13 @@ PAPERLESS_OCR_LANGUAGES=<list>
PAPERLESS_OCR_LANGUAGE=tur
Defaults to none, which does not install any additional languages.
PAPERLESS_ENABLE_UPDATE_CHECK=<bool>
Enabling this option enables the check for available updates, which works by
loading the version file of the public repository for this project on Github e.g.
https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/src/paperless/version.py
to determine whether a new version is available. Actual updating of the app must be done manually.
No tracking data is collected by the app in any way.
Defaults to true.

View File

@ -67,6 +67,7 @@
#PAPERLESS_FILENAME_PARSE_TRANSFORMS=[]
#PAPERLESS_THUMBNAIL_FONT_NAME=
#PAPERLESS_IGNORE_DATES=
#PAPERLESS_ENABLE_UPDATE_CHECK=
# Tika settings

View File

@ -674,22 +674,27 @@ class BulkDownloadView(GenericAPIView):
class RemoteVersionView(GenericAPIView):
def get(self, request, format=None):
try:
with urllib.request.urlopen(
"https://raw.githubusercontent.com/paperless-ngx/paperless-ngx"
+ "/main/src/paperless/version.py",
) as response:
remote = response.read().decode("utf-8")
match = re.search("(\\d+, \\d+, \\d+)", remote)
if match:
remote_version = ".".join(match[0].split(", "))
except urllib.error.URLError:
remote_version = "0.0.0"
remote_version = "0.0.0"
is_greater = False
if settings.ENABLE_UPDATE_CHECK:
try:
with urllib.request.urlopen(
"https://raw.githubusercontent.com/paperless-ngx"
+ "/paperless-ngx/main/src/paperless/version.py",
) as response:
remote = response.read().decode("utf-8")
match = re.search("(\\d+, \\d+, \\d+)", remote)
if match:
remote_version = ".".join(match[0].split(", "))
except urllib.error.URLError:
logger.debug("An error occured checking for available updates")
current_version = ".".join([str(_) for _ in version.__version__[:3]])
is_greater = packaging_version.parse(remote_version) > packaging_version.parse(
current_version,
)
current_version = ".".join([str(_) for _ in version.__version__[:3]])
is_greater = packaging_version.parse(
remote_version,
) > packaging_version.parse(
current_version,
)
return Response(
{

View File

@ -566,3 +566,5 @@ if os.getenv("PAPERLESS_IGNORE_DATES", ""):
d = dateparser.parse(s)
if d:
IGNORE_DATES.add(d.date())
ENABLE_UPDATE_CHECK = __get_boolean("PAPERLESS_ENABLE_UPDATE_CHECK", "true")