from flask import Flask, request, redirect, render_template_string from datetime import datetime from pathlib import Path import uuid app = Flask(__name__) DATA_FILE = Path("messages.txt") PAGE = """ Phone Message Board

Phone Message Board

Local transfer page for phone ↔ laptop text
Clear all
{% if not messages %}
No messages yet.
{% endif %} {% for msg in messages %}
{{ msg.time }}
{{ msg.text }}
{% endfor %}
""" def load_messages(): if not DATA_FILE.exists(): return [] raw = DATA_FILE.read_text(encoding="utf-8") blocks = raw.split("\n---MESSAGE---\n") messages = [] for block in blocks: if not block.strip(): continue try: time, text = block.split("\n", 1) except ValueError: continue messages.append({ "id": "msg_" + uuid.uuid4().hex, "time": time.strip(), "text": text.strip(), }) return list(reversed(messages)) @app.route("/", methods=["GET", "POST"]) def index(): if request.method == "POST": message = request.form.get("message", "").strip() if message: timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S") with DATA_FILE.open("a", encoding="utf-8") as f: f.write(f"{timestamp}\n{message}\n---MESSAGE---\n") return redirect("/") return render_template_string(PAGE, messages=load_messages()) @app.route("/clear") def clear(): DATA_FILE.write_text("", encoding="utf-8") return redirect("/") if __name__ == "__main__": app.run(host="0.0.0.0", port=8080)