""" Message sending channel abstract class """ from bridge.bridge import Bridge from bridge.context import Context from bridge.reply import * class Channel(object): NOT_SUPPORT_REPLYTYPE = [ReplyType.VOICE, ReplyType.IMAGE] def startup(self): """ init channel """ raise NotImplementedError def handle_text(self, msg): """ process received msg :param msg: message object """ raise NotImplementedError # 统一的发送函数,每个Channel自行实现,根据reply的type字段发送不同类型的消息 def send(self, reply: Reply, context: Context): """ send message to user :param msg: message content :param receiver: receiver channel account :return: """ raise NotImplementedError def build_reply_content(self, query, context : Context=None) -> Reply: return Bridge().fetch_reply_content(query, context) def build_voice_to_text(self, voice_file) -> Reply: return Bridge().fetch_voice_to_text(voice_file) def build_text_to_voice(self, text) -> Reply: return Bridge().fetch_text_to_voice(text)