From 4a2fd687d7c9c815419bd6d0897085d05cd50fe0 Mon Sep 17 00:00:00 2001 From: Unrud Date: Wed, 19 Jan 2022 00:59:41 +0100 Subject: Update for Radicale 3.1.1 --- README.md | 14 +++++++---- radicale_infcloud/__init__.py | 52 +++++++++-------------------------------- radicale_infcloud/web/config.js | 4 +--- setup.py | 4 ++-- 4 files changed, 23 insertions(+), 51 deletions(-) diff --git a/README.md b/README.md index 43f6d78..9b2e289 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # InfCloud for Radicale -Integrate [InfCloud](https://www.inf-it.com/open-source/clients/infcloud/) into [Radicale](http://radicale.org/)'s web interface. +Integrate [InfCloud](https://www.inf-it.com/open-source/clients/infcloud/) into +[Radicale](http://radicale.org/)'s web interface. InfCloud allows you to to manage appointments, tasks and contacts in the browser. @@ -10,12 +11,12 @@ for InfCloud to work properly. Otherwise the "Refresh" button is broken. ## Installation ```shell -$ python3 -m pip install --upgrade https://github.com/Unrud/RadicaleInfCloud/archive/master.tar.gz +python3 -m pip install --upgrade https://github.com/Unrud/RadicaleInfCloud/archive/master.tar.gz ``` ## Configuration -Set the configuration option `type` in the `web` section to ``radicale_infcloud``. +Set the configuration option `type` in the `web` section to `radicale_infcloud`. ```ini [web] @@ -24,6 +25,9 @@ type = radicale_infcloud ## License -[AGPL-3.0](https://github.com/Unrud/RadicaleWeb/blob/master/COPYING) because [InfCloud](https://github.com/Unrud/RadicaleInfCloud/blob/master/radicale_infcloud/web/) is included. +[AGPL-3.0](https://github.com/Unrud/RadicaleWeb/blob/master/COPYING) because +[InfCloud](https://github.com/Unrud/RadicaleInfCloud/blob/master/radicale_infcloud/web/) +is included. -[GPL-3.0](https://github.com/Unrud/RadicaleWeb/blob/master/COPYING_GPL) for `radicale_infcloud/__init__.py` +[GPL-3.0](https://github.com/Unrud/RadicaleWeb/blob/master/COPYING_GPL) +for `radicale_infcloud/__init__.py` diff --git a/radicale_infcloud/__init__.py b/radicale_infcloud/__init__.py index 8dc04df..409ef28 100644 --- a/radicale_infcloud/__init__.py +++ b/radicale_infcloud/__init__.py @@ -1,5 +1,5 @@ # RadicaleWeb web interface for Radicale. -# Copyright © 2017-2018, 2020 Unrud +# Copyright © 2017-2018, 2020, 2022 Unrud # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -14,14 +14,9 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -import os -import posixpath -import time from http import client -from radicale import httputils, pathutils -from radicale.log import logger +from radicale import httputils from radicale.web import internal -from radicale.web.internal import MIMETYPES, FALLBACK_MIMETYPE import pkg_resources @@ -34,42 +29,17 @@ class Web(internal.Web): self.infcloud_folder = pkg_resources.resource_filename(__name__, "web") def get(self, environ, base_prefix, path, user): - if not path.startswith("/.web/infcloud/") and path != "/.web/infcloud": - status, headers, answer = super().get(environ, base_prefix, path, - user) - if status == client.OK and path in ("/.web/", "/.web/index.html"): - answer = answer.replace(b"""\ + if path == "/.web/infcloud/" or path.startswith("/.web/infcloud"): + status, headers, answer = httputils.serve_folder( + self.infcloud_folder, base_prefix, path, "/.web/infcloud") + else: + status, headers, answer = super().get( + environ, base_prefix, path, user) + if status == client.OK and path in ("/.web/", "/.web/index.html"): + answer = answer.replace(b"""\