Since the wiki linker code is modularized the redirector can just import it

This commit is contained in:
Adrian Kuschelyagi Malacoda 2020-08-27 02:24:24 -05:00
parent 646b840be4
commit 1b7e3ce08b
3 changed files with 11 additions and 21 deletions

View File

@ -9,7 +9,7 @@ import chevron
import bbcode
import html
from .wiki import Template, Renderer, Linker, reformat_page_title, NAMESPACES as WIKI_NAMESPACES
from .wiki import Template, Renderer, Linker, NAMESPACES as WIKI_NAMESPACES
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger("ArchiveGenerator")
@ -131,7 +131,7 @@ class ArchiveGenerator():
raise e
for category, pages in categories.items():
category_out = f"Category:{reformat_page_title(category)}.html"
category_out = f"Category:{linker.translate_page_title(category)}"
logger.info("Archiving category %s to %s", category, category_out)
try:

View File

@ -1,5 +1,7 @@
import argparse
from .archive_generator import ArchiveLinker, DEXES
from flask import Flask, redirect, request
app = Flask(__name__)
@ -8,29 +10,16 @@ app = Flask(__name__)
def redirect_wiki (path):
return redirect(make_wiki_url(path))
def is_wiki_directory_name (name):
return "Dex" in name
def escape_wiki_page_name (page_name):
page_name = page_name[0].upper() + page_name[1:].replace(" ", "_")
if page_name.endswith("/"):
page_name = page_name[:-1]
if "/" in page_name:
(prefix, suffix) = page_name.split("/", 1)
suffix = suffix.replace("/", "%2F")
page_name = prefix + ("/" if is_wiki_directory_name(prefix) else "%2F") + suffix
return page_name
def make_wiki_url (path):
url = app.args.wiki_archive
if path.endswith("/"):
path = path[:-1]
if not url.endswith("/"):
url = url + "/"
return url + escape_wiki_page_name(path) + ".html"
return url + app.wiki_linker.translate_page_title(path)
## Forum redirector
@app.route('/forums/<path:path>')
@ -46,4 +35,5 @@ def main ():
parser.add_argument("--forums-archive", help="URL to forums archive")
app.args = parser.parse_args()
app.wiki_linker = ArchiveLinker(directory_names=DEXES)
app.run()

View File

@ -106,9 +106,9 @@ class Renderer():
if categories:
rendered.append('<h2>Categories</h2><ul class="categories">')
for category in categories:
rendered.append('<li><a href="{}Category:{}.html">{}</a></li>'.format(
rendered.append('<li><a href="{}Category:{}">{}</a></li>'.format(
base,
reformat_page_title(category),
self.linker.translate_page_title(category),
category
))
rendered.append("</ul>")