aboutsummaryrefslogtreecommitdiff
path: root/server.py
diff options
context:
space:
mode:
authorChristian Cleberg <hello@cleberg.net>2025-06-04 13:32:08 -0500
committerChristian Cleberg <hello@cleberg.net>2025-06-04 13:32:08 -0500
commitd4166e03980177c3395fddac85977645ee2a4294 (patch)
treeae9f1d3ddd33b0122606ace471ec6b0fccf860f9 /server.py
parent2c8b05646b4fc2b14c7f026a8bfe08c757498a3c (diff)
downloadcrumb-d4166e03980177c3395fddac85977645ee2a4294.tar.gz
crumb-d4166e03980177c3395fddac85977645ee2a4294.tar.bz2
crumb-d4166e03980177c3395fddac85977645ee2a4294.zip
feat: format python files
Diffstat (limited to 'server.py')
-rw-r--r--server.py44
1 files changed, 35 insertions, 9 deletions
diff --git a/server.py b/server.py
index 31c0d4c..310fdae 100644
--- a/server.py
+++ b/server.py
@@ -1,22 +1,44 @@
-from flask import Flask, request, jsonify, make_response
import os
from datetime import datetime
+from flask import Flask, request
app = Flask(__name__)
LOG_PATH = os.path.expanduser("~/.crumb/history.org")
os.makedirs(os.path.dirname(LOG_PATH), exist_ok=True)
+
@app.after_request
def add_cors_headers(response):
- response.headers['Access-Control-Allow-Origin'] = '*'
- response.headers['Access-Control-Allow-Headers'] = 'Content-Type'
+ """
+ Add CORS headers to the response to allow cross-origin requests.
+
+ Args:
+ response (flask.Response): The response object to modify.
+
+ Returns:
+ flask.Response: The modified response object with CORS headers.
+ """
+ response.headers["Access-Control-Allow-Origin"] = "*"
+ response.headers["Access-Control-Allow-Headers"] = "Content-Type"
return response
-@app.route('/', methods=['POST', 'OPTIONS'])
+
+@app.route("/", methods=["POST", "OPTIONS"])
def log_visit():
- if request.method == 'OPTIONS':
- return '', 204
+ """
+ Handle POST requests to log visit information and OPTIONS requests for CORS preflight.
+
+ For POST requests, parse JSON data from the request, extract visit details,
+ and append them to the log file in org-mode format.
+
+ For OPTIONS requests, return a 204 No Content response.
+
+ Returns:
+ tuple: An empty string and the HTTP status code 204.
+ """
+ if request.method == "OPTIONS":
+ return "", 204
data = request.json
title = data.get("title", "No Title")
@@ -44,7 +66,11 @@ def log_visit():
f.write(f":FAVICON: {favicon}\n")
f.write(":END:\n\n")
- return '', 204
+ return "", 204
+
-if __name__ == '__main__':
- app.run(port=3555) \ No newline at end of file
+if __name__ == "__main__":
+ """
+ Run the Flask application on port 3555 when executed as the main program.
+ """
+ app.run(port=3555)