mirror of
https://github.com/langbot-app/LangBot.git
synced 2025-11-25 19:37:36 +08:00
fix: put the link and content together
This commit is contained in:
@@ -32,6 +32,7 @@ class SlackClient():
|
|||||||
if self.bot_user_id and bot_user_id == self.bot_user_id:
|
if self.bot_user_id and bot_user_id == self.bot_user_id:
|
||||||
return jsonify({'status': 'ok'})
|
return jsonify({'status': 'ok'})
|
||||||
|
|
||||||
|
|
||||||
# 处理私信
|
# 处理私信
|
||||||
if data and data.get("event", {}).get("channel_type") in ["im"]:
|
if data and data.get("event", {}).get("channel_type") in ["im"]:
|
||||||
event = SlackEvent.from_payload(data)
|
event = SlackEvent.from_payload(data)
|
||||||
@@ -44,6 +45,8 @@ class SlackClient():
|
|||||||
event = SlackEvent.from_payload(data)
|
event = SlackEvent.from_payload(data)
|
||||||
await self._handle_message(event)
|
await self._handle_message(event)
|
||||||
return jsonify({'status':'ok'})
|
return jsonify({'status':'ok'})
|
||||||
|
|
||||||
|
return jsonify({'status': 'ok'})
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
raise(e)
|
raise(e)
|
||||||
@@ -68,7 +71,7 @@ class SlackClient():
|
|||||||
return func
|
return func
|
||||||
return decorator
|
return decorator
|
||||||
|
|
||||||
async def send_message_to_channle(self,text:str,channel_id:str):
|
async def send_message_to_channel(self,text:str,channel_id:str):
|
||||||
try:
|
try:
|
||||||
response = await self.client.chat_postMessage(
|
response = await self.client.chat_postMessage(
|
||||||
channel=channel_id,
|
channel=channel_id,
|
||||||
|
|||||||
@@ -11,18 +11,44 @@ class SlackEvent(dict):
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def text(self) -> str:
|
def text(self) -> str:
|
||||||
|
|
||||||
if self.get("event", {}).get("channel_type") == "im":
|
if self.get("event", {}).get("channel_type") == "im":
|
||||||
elements = self["event"]["blocks"][0]["elements"][0]["elements"]
|
blocks = self.get("event", {}).get("blocks", [])
|
||||||
for el in elements:
|
if not blocks:
|
||||||
if el.get("type") == "text":
|
return ""
|
||||||
return el.get("text", "")
|
|
||||||
|
elements = blocks[0].get("elements", [])
|
||||||
|
if not elements:
|
||||||
|
return ""
|
||||||
|
|
||||||
|
elements = elements[0].get("elements", [])
|
||||||
|
text = ""
|
||||||
|
|
||||||
|
for el in elements:
|
||||||
|
if el.get("type") == "text":
|
||||||
|
text += el.get("text", "")
|
||||||
|
elif el.get("type") == "link":
|
||||||
|
text += el.get("url", "")
|
||||||
|
|
||||||
|
return text
|
||||||
|
|
||||||
|
|
||||||
if self.get("event",{}).get("channel_type") == 'channel':
|
if self.get("event",{}).get("channel_type") == 'channel':
|
||||||
|
message_text = ""
|
||||||
message_text = next((el["text"] for block in self.get("event", {}).get("blocks", []) if block.get("type") == "rich_text" for element in block.get("elements", []) if element.get("type") == "rich_text_section" for el in element.get("elements", []) if el.get("type") == "text"), "")
|
for block in self.get("event", {}).get("blocks", []):
|
||||||
|
if block.get("type") == "rich_text":
|
||||||
|
for element in block.get("elements", []):
|
||||||
|
if element.get("type") == "rich_text_section":
|
||||||
|
parts = []
|
||||||
|
for el in element.get("elements", []):
|
||||||
|
if el.get("type") == "text":
|
||||||
|
parts.append(el["text"])
|
||||||
|
elif el.get("type") == "link":
|
||||||
|
parts.append(el["url"])
|
||||||
|
message_text = "".join(parts)
|
||||||
|
|
||||||
return message_text
|
return message_text
|
||||||
|
|
||||||
return ""
|
|
||||||
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
|||||||
@@ -138,7 +138,7 @@ class SlackAdapter(adapter.MessagePlatformAdapter):
|
|||||||
|
|
||||||
for content in content_list:
|
for content in content_list:
|
||||||
if slack_event.type == 'channel':
|
if slack_event.type == 'channel':
|
||||||
await self.bot.send_message_to_channle(
|
await self.bot.send_message_to_channel(
|
||||||
content['content'],slack_event.channel_id
|
content['content'],slack_event.channel_id
|
||||||
)
|
)
|
||||||
if slack_event.type == 'im':
|
if slack_event.type == 'im':
|
||||||
@@ -158,10 +158,7 @@ class SlackAdapter(adapter.MessagePlatformAdapter):
|
|||||||
],
|
],
|
||||||
):
|
):
|
||||||
async def on_message(event:SlackEvent):
|
async def on_message(event:SlackEvent):
|
||||||
if self.bot.bot_user_id:
|
self.bot_account_id = 'SlackBot'
|
||||||
self.bot_account_id = self.bot.bot_user_id
|
|
||||||
else:
|
|
||||||
self.bot_account_id = 'SlackBot'
|
|
||||||
try:
|
try:
|
||||||
return await callback(
|
return await callback(
|
||||||
await self.event_converter.target2yiri(event,self.bot),self
|
await self.event_converter.target2yiri(event,self.bot),self
|
||||||
|
|||||||
Reference in New Issue
Block a user