import json import lark_oapi as lark from classes.im import LarkMessage from classes.secret import Secret from scheduler.block import BaseBlock class SendLarkGroupMessage(BaseBlock): def __init__( self, lark_app_id: str, lark_app_secret: Secret, chat_id: str, msg_type: LarkMessage, ): self.lark_client = ( lark.Client.builder() .app_id(lark_app_id) .app_secret(lark_app_secret) .build() ) self.chat_id = chat_id self.msg_type = msg_type def __call__(self, **kwargs) -> bool: body = ( lark.api.im.v1.model.CreateMessageRequestBodyBuilder() .receive_id(kwargs.get("chat_id", self.chat_id)) .msg_type(self.msg_type.msg_type()) .content(self.msg_type.content(**kwargs)) .build() ) r = ( lark.api.im.v1.model.CreateMessageRequestBuilder() .receive_id_type("chat_id") .request_body(body) .build() ) resp = json.loads(lark.JSON.marshal(self.lark_client.im.v1.message.create(r))) return resp.get("code") == 0