python微信聊天机器人,自动翻译

使用itchat,itchat是一个开源的微信个人号接口,使用python调用微信从未如此简单。
聊天机器人调用的是图灵机器人接口。
在http://www.tuling123.com/ 注册账号有自己的appkey
翻译调用的是百度的翻译接口。
在百度翻译http://api.fanyi.baidu.com/api/trans/product/index 注册账号就可以有自己的appid 和secretKey

实现功能:
1,消息前有#为翻译,可中英互译
2,聊天对话

以下代码在2018年10月23日 python3下运行通过

#-*- coding:utf-8 -*-
import itchat
from itchat.content import *
import requests
import json
import hashlib
import random


def is_chinese(uchar):
    if '\u4e00' <= uchar <= '\u9fff':
        return True
    else:
        return False


@itchat.msg_register(TEXT)
def reply_text(msg):
    from_text = msg['Text']
    # 消息带有 ‘#’ 前缀为翻译
    if from_text[0] == '#':
        if is_chinese(from_text[1:]):
            fromLang = 'zh'
            toLang = 'en'
        else:
            fromLang = 'en'
            toLang = 'zh'
        to_text = baidu_trans_api(from_text[1:], fromLang, toLang)
        itchat.send(to_text, msg['FromUserName'])
    else:
        to_text = tuling(from_text)
        itchat.send(to_text, msg['FromUserName'])


def tuling(info):
    appkey = "e5ccc9c7c8834ec3b08940e290ff1559"
    url = "http://www.tuling123.com/openapi/api?key=%s&info=%s" % (appkey, info)
    req = requests.get(url)
    content = req.text
    data = json.loads(content)
    answer = data['text']
    return answer

def baidu_trans_api(info, fromLang, toLang):
    appid = '20181022000223013'  # 你的appid
    secretKey = '9gQCAqD08KIRxUpPR1ra'  # 你的密钥
    myurl = 'http://api.fanyi.baidu.com/api/trans/vip/translate'
    salt = random.randint(32768, 65536)

    def md5(str):
        str = str.encode('utf-8')  # python2 不需要此行代码
        m = hashlib.md5()
        m.update(str)
        return m.hexdigest()

    sign = appid + info + str(salt) + secretKey
    sign = md5(sign)

    myurl = myurl + '?appid=' + appid + '&q=' + info + '&from=' + fromLang + '&to=' + toLang + '&salt=' + str(
        salt) + '&sign=' + sign
    response = requests.get(myurl)
    try:
        return response.json()["trans_result"][0]["dst"]
    except:
        return response.json()["error_msg"]


if __name__ == '__main__':
    itchat.auto_login(hotReload=True)
    itchat.run()

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/lhh08hasee/article/details/83302932