From 63a5e3f8c9fbc3f961198e4bfa55f6321870be39 Mon Sep 17 00:00:00 2001 From: SoniEx2 Date: Sun, 28 Apr 2019 18:50:52 -0300 Subject: [PATCH] Add protocol handler --- ganarchy.py | 3 +-- index.js | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 index.js diff --git a/ganarchy.py b/ganarchy.py index d698f7e..3889d0b 100755 --- a/ganarchy.py +++ b/ganarchy.py @@ -60,8 +60,7 @@ TEMPLATE = """

Powered by GAnarchy. AGPLv3-licensed. Source Code.

Main page. - - + Register web+ganarchy: URI handler.

diff --git a/index.js b/index.js new file mode 100644 index 0000000..c47b7f6 --- /dev/null +++ b/index.js @@ -0,0 +1,29 @@ +// GAnarchy - project homepage generator +// Copyright (C) 2019 Soni L. +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +(function() { + var url = new URL(document.location.href); + var target = url.searchParams.get("url"); + if (target !== null) { + var project = target.match(/^web\+ganarchy\:([a-fA-F0-9]+)$/); + if (project !== null) { + // some browsers don't like it when you set this directly + url.search = ""; + url.pathname = "/project/" + project[1]; + document.location = url.href; + } + } +})();