• 基于python Wechaty的微信群虚拟币报价机器人


    Wechaty Blog:wechaty-bot-of-coins
    本项目基于python-wechaty库,通过几行代码就能实现微信机器人的基础功能。
    项目地址:coins_market_push

    实现功能

    群聊中加密货币的报价

    • 检索群聊中的加密货币币种关键词
    • 币种匹配成功,从网络获取加密货币行情,目前支持三种平台
    • 在群聊中发送加密货币行情信息,并@发送者

    效果展示

    示例

    使用步骤

    1、项目配置

    class Notice:
        EVENT_NAME = 'notice_python'
        TOKEN = '{your IFTTT TOKEN}'
        KEY = '{your notice key}'
    
    class Zengr:
        APP_CODE = '{your app code}}'
    
    class PATH: # fxh币种列表
        PATH_JSON = path_root + '/coin_list.json'
    
    class WECHAT: # wechaty token的配置
        TOKEN = '{your wechaty token}'
    
    class CoinGK: # CoinGeCko的币种列表
        PATH_JSON = path_root + '/conin_list_cgk.json'
    
    • Notice: 通过IFTTT发送通知到手机(仅测试了iphone),这里可以配置IFTTT的token
    • Zengr:加密货币行情提供商,新用户有免费次数,目前收集的币种不多,不推荐
    • CoinGK:提供免费API可以获取行情,但免费版功能受限,能满足基本要求

    本项目默认使用非小号网站数据,不需要token,注意使用时要自律
    目前我们使用的wechaty token是官方的免费版,仅7天试用期。如果要使用长期版本的话,您可以成为wechaty的贡献者,或者花钱购买。
    毕竟钱能解决的事情,都不算事情。
    还有一种方式,就是使用UOS的web协议登陆,参考使用免费Web协议

    2、主要代码

    talk is cheep, show you the code

    wechety.py

    async def on_message(msg: Message):
        text: str = msg.text()
        room: Optional[Room] = msg.room()
        if text.startswith('@Robot'):
            rev_str = text.replace(' ', '')
            symbol = rev_str.split(' ')[-1]
        else:
            symbol = text
        talker = msg.talker()
        if get_conin_seq(symbol) > 0:
            await room.say(get_price(symbol), mention_ids=[talker.contact_id])
    

    这里是消息处理入口,get_price(symbol): symbol为币种,get_price()函数返回币种行情。get_conin_seq函数用于检查是否支持symbol币种。

    def get_price(symbol):
        symbol = symbol.upper()
        idx = get_conin_seq(symbol)
        result = get_coin(idx)
        ret =   '
    ' 
                '【名称】 ' + result['data'][0]['fullname'] + '-' + result['data'][0]['name'] + '
    ' 
                '【USD价格】 ' +'$' + str(result['data'][0]['current_price_usd']) + '
    ' 
                '【CNY价格】 ' +'¥' + str(result['data'][0]['current_price']) + '
    ' 
                '【全球市值】 ' + '$' + str('%.2f' % (result['data'][0]['marketcap']/100000000)) + '亿
    ' 
                '【24H涨幅】 ' + str(result['data'][0]['change_percent']) + '%
    ' 
                '【24H换手】 ' + str(result['data'][0]['turnoverrate']) + '%
    
    ' 
                + str(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) ) + '
    ' 
                '数据来源:非小号'
        return ret
    

    这里是get_price的具体实现,目前支持非小号前500个币种。

    3、运行

    python wechat/wechaty.py
    

    扫码登录后,其他用户在添加了机器人的群中直接发送币种(symbol),例如(btc、eth等),稍后机器人便会发送此币种行情到微信群中,并@发送者查收。

    注意

    要注意一下,对于个人账户来说,币价查询访问不要太频繁,容易被服务器检测。

    作者: 刘小龙,默默无闻的嵌入式工程师

  • 相关阅读:
    几个有趣的在线设计网站搜集
    动物水池png+ico图标:pool
    看看3150亿美元叠起来有多高
    卡巴斯基免费key发布网站:kaspersky
    58个精品壁纸分享网站[精品]
    一套华丽的vista安装包png+ico图标:vistalike
    32个精品国外图文结合photoshop效果教程
    超酷背景笔刷[abr格式]:grunge
    针对MM的在线处理图片网站:Taaz
    如何设计web2.0的图标[两个photoshop web2.0样式asl下载]
  • 原文地址:https://www.cnblogs.com/Hello-words/p/15200878.html
Copyright © 2020-2023  润新知