From 3b4d3d6cc69ec6aaf81428c1fdcff5904e146161 Mon Sep 17 00:00:00 2001 From: ginping Date: Tue, 12 Mar 2024 00:24:49 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E2=9C=A8=20feat:=20=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E5=8D=A1=E7=89=87=E5=86=85=E5=AE=B9=E6=97=B6=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E5=85=B6=E5=AE=83=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dingtalk_stream/card_replier.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/dingtalk_stream/card_replier.py b/dingtalk_stream/card_replier.py index afb43da..1800ed7 100644 --- a/dingtalk_stream/card_replier.py +++ b/dingtalk_stream/card_replier.py @@ -66,7 +66,6 @@ def create_and_send_card(self, card_instance_id = self.gen_card_id(self.incoming_message) body = { - # "userId": self.dingtalk_client.credential.client_id, "cardTemplateId": card_template_id, "outTrackId": card_instance_id, "cardData": { @@ -163,12 +162,13 @@ def create_and_send_card(self, self.logger.error('put_card_data.create_and_send_card failed, send card failed, error=%s', e) return "" - def put_card_data(self, card_instance_id: str, card_data: dict): + def put_card_data(self, card_instance_id: str, card_data: dict, **kwargs): """ 更新卡片内容 https://open.dingtalk.com/document/orgapp/interactive-card-update-interface :param card_instance_id: :param card_data: + :param kwargs: 其他参数,如 privateData、cardUpdateOptions、userIdType :return: """ access_token = self.dingtalk_client.get_access_token() @@ -181,7 +181,8 @@ def put_card_data(self, card_instance_id: str, card_data: dict): "outTrackId": card_instance_id, "cardData": { "cardParamMap": card_data - } + }, + **kwargs, } url = DINGTALK_OPENAPI_ENDPOINT + '/v1.0/card/instances' From 38b828fe04afbedc3ab39dd7f64a91a9091f9a2e Mon Sep 17 00:00:00 2001 From: ginping Date: Sun, 31 Mar 2024 23:14:18 +0800 Subject: [PATCH 2/2] =?UTF-8?q?log:=20=E7=BB=9F=E4=B8=80=E9=80=8F=E5=87=BA?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E8=AF=B7=E6=B1=82=E6=8A=A5=E9=94=99=E6=97=B6?= =?UTF-8?q?=E7=9A=84=E8=AF=A6=E7=BB=86=E9=94=99=E8=AF=AF=E5=93=8D=E5=BA=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dingtalk_stream/card_replier.py | 8 ++++---- dingtalk_stream/chatbot.py | 12 ++++++------ dingtalk_stream/stream.py | 8 +++----- dingtalk_stream/version.py | 2 +- 4 files changed, 14 insertions(+), 16 deletions(-) diff --git a/dingtalk_stream/card_replier.py b/dingtalk_stream/card_replier.py index 6ac6c7d..4138374 100644 --- a/dingtalk_stream/card_replier.py +++ b/dingtalk_stream/card_replier.py @@ -104,7 +104,7 @@ def create_and_send_card(self, response.raise_for_status() except Exception as e: - self.logger.error('CardResponder.send_card failed, create card instance failed, error=%s', e) + self.logger.error(f'CardResponder.send_card failed, create card instance failed, error={e}, response.text={response.text}') return "" body = { @@ -165,7 +165,7 @@ def create_and_send_card(self, return card_instance_id except Exception as e: - self.logger.error('put_card_data.create_and_send_card failed, send card failed, error=%s', e) + self.logger.error(f'put_card_data.create_and_send_card failed, send card failed, error={e}, response.text={response.text}') return "" def put_card_data(self, card_instance_id: str, card_data: dict, **kwargs): @@ -199,7 +199,7 @@ def put_card_data(self, card_instance_id: str, card_data: dict, **kwargs): response.raise_for_status() except Exception as e: - self.logger.error('CardReplier.put_card_data failed, update card failed, error=%s', e) + self.logger.error(f'CardReplier.put_card_data failed, update card failed, error={e}, response.text={response.text}') return @@ -293,5 +293,5 @@ def streaming(self, card_instance_id: str, content_key: str, content_value: str, response.raise_for_status() except Exception as e: - self.logger.error('AICardReplier.streaming failed, error=%s', e) + self.logger.error(f'AICardReplier.streaming failed, error={e}, response.text={response.text}') return diff --git a/dingtalk_stream/chatbot.py b/dingtalk_stream/chatbot.py index d730ff1..6c46dd5 100644 --- a/dingtalk_stream/chatbot.py +++ b/dingtalk_stream/chatbot.py @@ -558,7 +558,7 @@ def get_image_download_url(self, download_code: str) -> str: response.raise_for_status() except Exception as e: - self.logger.error('get_image_download_url, error=%s, response=%s', e, response.text) + self.logger.error(f'get_image_download_url, error={e}, response.text={response.text}') return "" return response.json()["downloadUrl"] @@ -607,7 +607,7 @@ def set_off_duty_prompt(self, text: str, title: str = "", logo: str = ""): response.raise_for_status() except Exception as e: - self.logger.error('set_off_duty_prompt, error=%s, response=%s', e, response.text) + self.logger.error(f'set_off_duty_prompt, error={e}, response.text={response.text}') return response.status_code return response.json() @@ -633,7 +633,7 @@ def reply_text(self, data=json.dumps(values)) response.raise_for_status() except Exception as e: - self.logger.error('reply text failed, error=%s', e) + self.logger.error(f'reply text failed, error={e}, response.text={response.text}') return None return response.json() @@ -661,7 +661,7 @@ def reply_markdown(self, data=json.dumps(values)) response.raise_for_status() except Exception as e: - self.logger.error('reply markdown failed, error=%s', e) + self.logger.error(f'reply markdown failed, error={e}, response.text={response.text}') return None return response.json() @@ -742,7 +742,7 @@ def reply_card(self, return card_biz_id except Exception as e: - self.logger.error('reply card failed, error=%s', e) + self.logger.error(f'reply card failed, error={e}, response.text={response.text}') return "" def update_card(self, card_biz_id: str, card_data: dict): @@ -778,7 +778,7 @@ def update_card(self, card_biz_id: str, card_data: dict): data=json.dumps(values)) response.raise_for_status() except Exception as e: - self.logger.error('update card failed, error=%s, response=%s', e, response.text) + self.logger.error(f'update card failed, error={e}, response.text={response.text}') return response.status_code return response.json() diff --git a/dingtalk_stream/stream.py b/dingtalk_stream/stream.py index e601f42..bb0c971 100644 --- a/dingtalk_stream/stream.py +++ b/dingtalk_stream/stream.py @@ -151,15 +151,13 @@ def open_connection(self): 'localIp': self.get_host_ip() }).encode('utf-8') - http_body = None try: response = requests.post(DingTalkStreamClient.OPEN_CONNECTION_API, headers=request_headers, data=request_body) - http_body = response.json() response.raise_for_status() except Exception as e: - self.logger.error("open connection failed, error=%s, response.body=%s", e, http_body) + self.logger.error(f'open connection failed, error={e}, response.text={response.text}') return None return response.json() @@ -200,7 +198,7 @@ def get_access_token(self): data=json.dumps(values)) response.raise_for_status() except Exception as e: - self.logger.error('get dingtalk access token failed, error=%s', e) + self.logger.error(f'get dingtalk access token failed, error={e}, response.text={response.text}') return None result = response.json() @@ -227,7 +225,7 @@ def upload_to_dingtalk(self, image_content, filetype='image', filename='image.pn self.reset_access_token() response.raise_for_status() except Exception as e: - self.logger.error('upload to dingtalk failed, error=%s', e) + self.logger.error(f'upload to dingtalk failed, error={e}, response.text={response.text}') return None if 'media_id' not in response.json(): self.logger.error('upload to dingtalk failed, error resonse is %s', response.json()) diff --git a/dingtalk_stream/version.py b/dingtalk_stream/version.py index 42d96c9..38ef52d 100644 --- a/dingtalk_stream/version.py +++ b/dingtalk_stream/version.py @@ -1 +1 @@ -VERSION_STRING = '0.17.2' +VERSION_STRING = '0.17.3'