Since the wiki linker code is modularized the redirector can just import it
This commit is contained in:
parent
646b840be4
commit
1b7e3ce08b
@ -9,7 +9,7 @@ import chevron
|
|||||||
import bbcode
|
import bbcode
|
||||||
import html
|
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)
|
logging.basicConfig(level=logging.INFO)
|
||||||
logger = logging.getLogger("ArchiveGenerator")
|
logger = logging.getLogger("ArchiveGenerator")
|
||||||
@ -131,7 +131,7 @@ class ArchiveGenerator():
|
|||||||
raise e
|
raise e
|
||||||
|
|
||||||
for category, pages in categories.items():
|
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)
|
logger.info("Archiving category %s to %s", category, category_out)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
|
from .archive_generator import ArchiveLinker, DEXES
|
||||||
|
|
||||||
from flask import Flask, redirect, request
|
from flask import Flask, redirect, request
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
|
|
||||||
@ -8,29 +10,16 @@ app = Flask(__name__)
|
|||||||
def redirect_wiki (path):
|
def redirect_wiki (path):
|
||||||
return redirect(make_wiki_url(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):
|
def make_wiki_url (path):
|
||||||
url = app.args.wiki_archive
|
url = app.args.wiki_archive
|
||||||
|
|
||||||
|
if path.endswith("/"):
|
||||||
|
path = path[:-1]
|
||||||
|
|
||||||
if not url.endswith("/"):
|
if not url.endswith("/"):
|
||||||
url = url + "/"
|
url = url + "/"
|
||||||
|
|
||||||
return url + escape_wiki_page_name(path) + ".html"
|
return url + app.wiki_linker.translate_page_title(path)
|
||||||
|
|
||||||
## Forum redirector
|
## Forum redirector
|
||||||
@app.route('/forums/<path:path>')
|
@app.route('/forums/<path:path>')
|
||||||
@ -46,4 +35,5 @@ def main ():
|
|||||||
parser.add_argument("--forums-archive", help="URL to forums archive")
|
parser.add_argument("--forums-archive", help="URL to forums archive")
|
||||||
|
|
||||||
app.args = parser.parse_args()
|
app.args = parser.parse_args()
|
||||||
|
app.wiki_linker = ArchiveLinker(directory_names=DEXES)
|
||||||
app.run()
|
app.run()
|
@ -106,9 +106,9 @@ class Renderer():
|
|||||||
if categories:
|
if categories:
|
||||||
rendered.append('<h2>Categories</h2><ul class="categories">')
|
rendered.append('<h2>Categories</h2><ul class="categories">')
|
||||||
for category in 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,
|
base,
|
||||||
reformat_page_title(category),
|
self.linker.translate_page_title(category),
|
||||||
category
|
category
|
||||||
))
|
))
|
||||||
rendered.append("</ul>")
|
rendered.append("</ul>")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user