You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
87 lines
2.4 KiB
Python
87 lines
2.4 KiB
Python
from flask import Flask, request, render_template
|
|
import subprocess
|
|
import glob
|
|
|
|
app = Flask(__name__)
|
|
|
|
|
|
index_html = """
|
|
<a href="/ascii">/ascii</a>
|
|
<a href="/figlet/xpub">/figlet<word></a>
|
|
<a href="/words">/words</a>
|
|
<a href="/find/value">/find/(word)</a>
|
|
<a href="/transformations">/transformations</a>
|
|
"""
|
|
|
|
@app.route("/")
|
|
def index():
|
|
return index_html
|
|
|
|
html_template = """
|
|
<h1>ascii code points</h1>
|
|
<form action="/ascii" method="get">
|
|
<input type="text" name="search">
|
|
<br><br>
|
|
<input type="submit" value="code points">
|
|
</form>
|
|
"""
|
|
|
|
@app.route("/ascii")
|
|
def ascii():
|
|
# print("request.args.get('search'):", request.args.get("search"))
|
|
if request.args.get("search") == None:
|
|
return html_template
|
|
else:
|
|
search = request.args.get("search")
|
|
result_list = []
|
|
for character in search:
|
|
unicode_point = format(ord(character))
|
|
result_list.append(character + " " + unicode_point)
|
|
|
|
result_string = "<br>\n".join(result_list)
|
|
return html_template + f"<pre>{ result_string }</pre>"
|
|
|
|
|
|
|
|
@app.route("/figlet/<word>")
|
|
def figlet(word):
|
|
# os.system()
|
|
msg = subprocess.run(["figlet", word], capture_output=True).stdout.decode()
|
|
# print(msg)
|
|
return f"<pre>{ msg }</pre>"
|
|
|
|
|
|
|
|
@app.route("/words/")
|
|
def words():
|
|
texts = glob.glob("./texts/*.txt")
|
|
print(texts)
|
|
for document in texts:
|
|
with open(document, "r") as d:
|
|
text = d.read()
|
|
words = text.split()
|
|
return render_template('words.html', words=words)
|
|
|
|
@app.route("/find/<word>")
|
|
def find(word):
|
|
texts = glob.glob("./texts/*.txt")
|
|
results = []
|
|
for document in texts:
|
|
with open(document, "r") as d:
|
|
lines = d.readlines()
|
|
for line in lines:
|
|
if word.lower() in line.lower():
|
|
line = line.replace(word, f"<strong>{word}</strong>")
|
|
results.append(line)
|
|
return render_template('find.html', results=results)
|
|
|
|
@app.route("/transformations", methods=["GET", "POST"])
|
|
def transformations():
|
|
print(request.method)
|
|
if request.method == "GET":
|
|
return render_template("transformations.html")
|
|
if request.method == "POST":
|
|
text = request.form["text"]
|
|
transformed_text = text.replace("value", "<strong style='font-size: 64px;'>value</strong>")
|
|
return render_template("transformations.html", transformed_text=transformed_text)
|
|
|