From 2f35ef2acbb7aa7f8a4861b1b22d05fd62a82d5a Mon Sep 17 00:00:00 2001 From: Ching L Date: Wed, 25 Sep 2024 15:04:14 +0800 Subject: [PATCH] =?UTF-8?q?feat(api):=20=E5=A2=9E=E5=8A=A0=E6=89=AB?= =?UTF-8?q?=E7=A0=81=E5=90=8E=20bark=20=E6=8E=A8=E9=80=81=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/app.py b/app.py index fc76454..19fe458 100644 --- a/app.py +++ b/app.py @@ -37,6 +37,7 @@ GROCY_DEFAULT_BEST_BEFORE_DAYS = os.environ.get("GROCY_DEFAULT_BEST_BEFORE_DAYS" X_RapidAPI_Key = os.environ.get("X_RapidAPI_Key") REDIS_HOST = os.environ.get("REDIS_HOST") REDIS_PORT = os.environ.get("REDIS_PORT") +BARK_DEVICE_KEY = os.environ.get("BARK_DEVICE_KEY") app = Flask(__name__) grocy = Grocy(GROCY_URL, GROCY_API_KEY, GROCY_PORT, verify_ssl=True) @@ -46,6 +47,17 @@ def get_locations(): locations = grocy.get_generic_objects_for_type(EntityType.LOCATIONS) return locations +def bark_push(title, text): + icon = 'https://styles.redditmedia.com/t5_10dd8f/styles/communityIcon_rwl05b14iveb1.png' + data = { + "title": title, + "body": text, + "device_key": BARK_DEVICE_KEY, + "icon": icon, + "group": "Grocy", + "url": "" + } + requests.post('http://bark.tunpok.com/push/', json=data) def add_product(dict_good, location): good_name = "" @@ -373,11 +385,18 @@ def add_to_stream(): data = request.json if not data: return jsonify({"message": "No data provided"}), 400 + if not data.get('data'): + return jsonify({"message": "No barcode data provided"}), 400 # 将数据添加到 Redis Stream 中 # 自动生成 ID ('*' 表示让 Redis 生成唯一 ID) stream_id = r.xadd(STREAM_KEY, data) + if data['data'].isnumeric(): + bark_push('扫码成功', '条形码 %s' % data['data']) + else: + bark_push('扫码成功', '二维码 %s' % data['data']) + return jsonify({"message": "Data added to Redis Stream", "stream_id": stream_id}), 200 except Exception as e: