41 lines
986 B
Python
Executable File
41 lines
986 B
Python
Executable File
from dingtalkchatbot.chatbot import DingtalkChatbot
|
|
from slack_bolt import App, BoltContext
|
|
from typing import Callable
|
|
import re
|
|
import os
|
|
import logging
|
|
logging.basicConfig(level=logging.DEBUG)
|
|
|
|
|
|
# WebHook地址
|
|
dingtalk_webhook = os.environ["DINGTALK_WEBHOOK"]
|
|
|
|
dingtalkbot = DingtalkChatbot(dingtalk_webhook)
|
|
app = App(
|
|
token=os.environ.get("SLACK_BOT_TOKEN"),
|
|
signing_secret=os.environ.get("SLACK_SIGNING_SECRET")
|
|
)
|
|
|
|
|
|
@app.middleware
|
|
def log_request(logger: logging.Logger, body: dict, next: Callable):
|
|
logger.debug(body)
|
|
return next()
|
|
|
|
|
|
@app.message(re.compile("^Heads Up!.*"))
|
|
def transfer_warn(body: dict, logger: logging.Logger):
|
|
logger.info(body)
|
|
dingtalkbot.send_text(str(body))
|
|
|
|
|
|
@app.event({"type": "message", "subtype": None})
|
|
def transfer_all(body: dict, logger: logging.Logger):
|
|
logger.debug(body)
|
|
dingtalkbot.send_text('测试'+str(body))
|
|
|
|
|
|
# 启动slack监听
|
|
if __name__ == "__main__":
|
|
app.start(int(os.environ.get("PORT", 3000)))
|