#!/usr/bin/python3 import sys from urllib.parse import unquote import flask app = flask.Flask(__name__) app.debug = True enwiki = "en.wikipedia.org/wiki/" @app.route("/") def start() -> str: """Start form.""" return flask.render_template("wikipedia_url.html") @app.route("/flickr") def flickr_search() -> str: """Search flickr.""" wikipedia_url = flask.request.args["wikipedia"] start = wikipedia_url.find(enwiki) + len(enwiki) name = unquote(wikipedia_url[start:]).replace("_", " ") return flask.render_template( "flickr_search.html", name=name, wikipedia_url=wikipedia_url ) @app.route("/message") def show_message() -> str: """Show message.""" flickr_url = flask.request.args["flickr"] wikipedia_url = flask.request.args["wikipedia"] start = wikipedia_url.find(enwiki) + len(enwiki) wiki_part1 = wikipedia_url[:start] if len(sys.argv) > 4: name = sys.argv[4] else: wiki_part2 = unquote(wikipedia_url[start:]) name = wiki_part2 if "_(" in name: name = name[: name.find("_(")] name = name.replace("_", " ") if "/in/" in flickr_url: flickr_url = flickr_url[: flickr_url.find("/in/")] msg = flask.render_template( "message.jinja", flickr_url=flickr_url, wikipedia_url=wikipedia_url, name=name, wiki_part1=wiki_part1, wiki_part2=wiki_part2, ) subject = f"Request to use your photo of {name} on Wikipedia" lines = msg.split("\n\n") return flask.render_template("show_message.html", subject=subject, lines=lines) if __name__ == "__main__": app.run(host="0.0.0.0")