From 8507d2a7ea4f7a1d730245f6bd0e1adcc0919d86 Mon Sep 17 00:00:00 2001 From: Zhang Muyu Date: Sun, 1 Oct 2023 19:01:02 +0800 Subject: [PATCH] feat: db --- dashboard.db | Bin 0 -> 8192 bytes main/distance.py | 3 ++- main/main.py | 3 ++- main/sa_pa.py | 3 ++- server.py | 43 ++++++++++++++++++++++++++++++++++++++++++- 5 files changed, 48 insertions(+), 4 deletions(-) create mode 100644 dashboard.db diff --git a/dashboard.db b/dashboard.db new file mode 100644 index 0000000000000000000000000000000000000000..2c2a5dc750d2db2451ae33a1456e62a6b2982898 GIT binary patch literal 8192 zcmeI#PfOfD6aetauGUh}EqLg~vco%793?Y}-8QFgZ72)db*oWYWGT^RA+Tm`lY(W* zVMQp&meL-pJ*eQhhk{f;Ph9&g`l9So`}gLdyq6i0yd?AH{cf3mT=pZ6*PAa_-H03P zI@2_Ek8{S@0L~1~UTAoc=6aFd|0@RA)U%tz_?DJ)84d~(AOR8}0TLhq5+DH*AOR8} z0TTE>1=?fU(2dbiZ6hDK%MGtOyNDw*GiMhan>)q(Wt(H-);0b^IHgDU%zomC3+Ynz zH%aGd)#jy&V?VU#cxBe%m4$No;&%^v!biGl=3fCNZ@ z1W14cNPq-LfCNZ@1TI;ik-cK%C)!!1D`QgXle*;cj%6y#lu{L@bUftA&f8>bH|ZRG z+uKauZ?(W*X$B!!OHwFd2(u<2a92IBS`fWn!?P~H59-acgts1n1*S0#aU9n(gGOG4 zzZ6rq`^A!-&)to$r-z@q2gm32mj1k~loDbA&;2lRgB7d{N-2nI?O_euDzxwZR7qOX zM!!;b`^)KWC;8Ax-W(ppJ11)=u>7naHd0pY7 LU>30JS}pz#I7Of_ literal 0 HcmV?d00001 diff --git a/main/distance.py b/main/distance.py index 50a4f99..36f8ece 100644 --- a/main/distance.py +++ b/main/distance.py @@ -3,6 +3,7 @@ import sys import time import argparse import base64 +import random sys.path.append(os.getcwd()) import svgwrite @@ -29,7 +30,7 @@ def gen_distance(data, theme_type): theme_color = THEME_MAP.get(theme_type) or COLOR_GREEN - data_file_name = 'distance_{}'.format(time.strftime('%Y%m%d%H%M%S')) + data_file_name = 'distance_{}_{}'.format(time.strftime('%Y%m%d%H%M%S'), random.randint(0, 9999)) svg_file_path = './output/{}.svg'.format(data_file_name) png_file_path = './output/{}.png'.format(data_file_name) diff --git a/main/main.py b/main/main.py index 87af7a6..821820a 100644 --- a/main/main.py +++ b/main/main.py @@ -3,6 +3,7 @@ import sys import time import argparse import base64 +import random sys.path.append(os.getcwd()) import svgwrite @@ -53,7 +54,7 @@ def gen_common(data, theme_type): bottom_name = 'exit' exit_height = exit_item.height() - data_file_name = '{}_{}'.format(bottom_name, time.strftime('%Y%m%d%H%M%S')) + data_file_name = '{}_{}_{}'.format(bottom_name, time.strftime('%Y%m%d%H%M%S'), random.randint(0, 9999)) svg_file_path = './output/{}.svg'.format(data_file_name) png_file_path = './output/{}.png'.format(data_file_name) diff --git a/main/sa_pa.py b/main/sa_pa.py index 05dc09d..86f6ba2 100644 --- a/main/sa_pa.py +++ b/main/sa_pa.py @@ -3,6 +3,7 @@ import sys import time import argparse import base64 +import random sys.path.append(os.getcwd()) import svgwrite @@ -26,7 +27,7 @@ def gen_service(data): text_size = 40 * SCALE min_width = icon_height * 2 + safe_area_size * 2 - data_file_name = 'sa_pa_{}'.format(time.strftime('%Y%m%d%H%M%S')) + data_file_name = 'sa_pa_{}_{}'.format(time.strftime('%Y%m%d%H%M%S'), random.randint(0, 9999)) svg_file_path = './output/{}.svg'.format(data_file_name) png_file_path = './output/{}.png'.format(data_file_name) diff --git a/server.py b/server.py index 2dd91ef..995cee9 100644 --- a/server.py +++ b/server.py @@ -10,6 +10,8 @@ from settings import * import json import os import logging +import sqlite3 +import time app = Flask(__name__) @@ -22,12 +24,15 @@ app.logger.addHandler(handler) CORS(app) +db_conn = sqlite3.connect('dashboard.db') + @app.route('/api/pov-element/common', methods=["GET"]) def common(): query_data = request.args.get('data') json_data = json.loads(query_data) theme = request.args.get('theme') app.logger.info('[{}] {}'.format(request.remote_addr, parse.unquote(query_data))) + track_request(request.remote_addr, '直行和出口预告', parse.unquote(query_data)) data, path = gen_common(json_data, theme) res = { 'code': 0, @@ -43,6 +48,7 @@ def distance(): json_data = json.loads(query_data) theme = request.args.get('theme') app.logger.info('[{}] {}'.format(request.remote_addr, parse.unquote(query_data))) + track_request(request.remote_addr, '地点距离预告', parse.unquote(query_data)) data, path = gen_distance(json_data, theme) res = { 'code': 0, @@ -57,6 +63,7 @@ def service(): query_data = request.args.get('data') json_data = json.loads(query_data) app.logger.info('[{}] {}'.format(request.remote_addr, parse.unquote(query_data))) + track_request(request.remote_addr, '服务区预告', parse.unquote(query_data)) data, path = gen_service(json_data) res = { 'code': 0, @@ -66,6 +73,40 @@ def service(): AUTO_CLEAN and os.remove(path) return response +def track_request(ip, type, data): + cursor = db_conn.cursor() + sql = """ + INSERT INTO POV(TIME, IP, TYPE, DATA) VALUES(?, ?, ?, ?); + """ + param = (time.strftime('%Y-%m-%d %H:%M:%S'), ip, type, data) + try: + cursor.execute(sql, param) + except sqlite3.OperationalError as e: + app.logger.info(e) + finally: + cursor.close() + db_conn.commit() + +def init_dashboard(): + cursor = db_conn.cursor() + sql = """ + CREATE TABLE IF NOT EXISTS POV( + TIME TEXT, + IP TEXT, + TYPE INTEGER, + DATA TEXT + ); + """ + try: + cursor.execute(sql) + except sqlite3.OperationalError as e: + app.logger.info(e) + finally: + cursor.close() + db_conn.commit() + + if __name__ == '__main__': - server = pywsgi.WSGIServer(('0.0.0.0', 5000), app) + init_dashboard() + server = pywsgi.WSGIServer(('0.0.0.0', 5001), app) server.serve_forever()