diff --git a/main.py b/main.py
new file mode 100644
index 0000000..b6b9ef6
--- /dev/null
+++ b/main.py
@@ -0,0 +1,45 @@
+import cgi
+import datetime
+
+import pymysql
+
+def application(env, re):
+ if env["REQUEST_METHOD"] == "POST":
+ args = cgi.parse_qs(env['wsgi.input'].readline().decode(), True)
+ elif env["REQUEST_METHOD"] == "GET":
+ args = cgi.parse_qs(env['QUERY_STRING'], True)
+ else:
+ re("405 Method Not Allowed", [])
+ return
+
+ if env["PATH_INFO"] == "/endpoint":
+ try:
+ device = args["device"][0]
+ except:
+ re("400 Bad Request", [])
+ yield "
400 Bad Request
".encode()
+ yield "device is required.".encode()
+
+ try:
+ latitude = float(args["lat"][0].replace(",", "."))
+ longitude = float(args["lon"][0].replace(",", "."))
+ except Exception as e:
+ re("400 Bad Request", [])
+ yield "400 Bad Request
".encode()
+ yield "lat and lon are required.".encode()
+ return
+
+ try:
+ altitude = float(args["alt"][0].replace(",", "."))
+ except:
+ altitude = None
+
+ try:
+ timestamp = datetime.datetime.fromtimestamp(float(args["t"][0]) / 1000)
+ except:
+ timestamp = datetime.datetime.now()
+
+ timestr = timestamp.strftime('%Y-%m-%d %H:%M:%S')
+
+ sql = "INSERT INTO tracker(ts, device, lat, lon, alt) VALUES (\"%s\", \"%s\", %s, %s, %s);" % (timestr, device, str(latitude), str(longitude), str(altitude) or "None")
+