微信机器人

部署

Bot 快速启动

注意:此Bot只能在Windowns系统上运行!!!无法在Linux上运行安装

首先请克隆代码到本地,使用命令如下,也可以直接Download Zip包都行

git clone https://github.com/ngc660sec/NGCBot.git

下载Python,使用Python 3.8.10版本**(Python版本不得低于3.8.10,不得高于3.13)**

Python3.8.10:https://www.python.org/ftp/python/3.8.10/python-3.8.10-amd64.exe

使用pip安装项目包(不懂就按顺序运行)

pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
python -m pip install --upgrade pip
pip install -r requirements.txt

第三步安装的时候,我出现了wcferry==39.2.4.0匹配不上,应该是被开发这个类库的作者去掉了 ,也可能是镜像地址没有这个了,自己修改requirements.txt文件的版本即可,改为红字里面有的版本就行(推荐wcferry==39.2.3.0

image-20250318231530851

安装完毕后你的 WCF版本应该是 39.4.2.2,请选择对应的微信进行下载

这里我是根据 requirements.txt的版本来下的,也就是第二个

安装完毕后,启动main.py文件

python main.py

出现以下界面,说明启动成功

image

进入微信之后,会自动初始化必备文件

后面的配置和基础使用原作者GitHub都有完整的截图和使用说明。已经比较详细了。我就不赘述了。

然后自己看配置文件配置即可:

https://github.com/ngc660sec/NGCBot#33配置文件快速配置

第一次使用帮助

https://github.com/ngc660sec/NGCBot#-4使用帮助

python实现RSS订阅,机器人自动推送更新

from datetime import datetime
from OutPut.outPut import op
import feedparser

class DongManUpdateApi:
    def __init__(self):
        """
        不要直接调用此类
        动漫更新Api文件
        """
        self.rssUrls = {"我独自升级" : "https://garden.breadio.wiki/feed.xml?filter=%255B%257B%2522search%2522%253A%255B%2522%25E7%258B%25AC%25E8%2587%25AA%25E5%258D%2587%25E7%25BA%25A7%2522%255D%257D%255D",
            "遮天" : "https://garden.breadio.wiki/feed.xml?filter=%255B%257B%2522search%2522%253A%255B%2522%25E9%2581%25AE%25E5%25A4%25A9%2522%255D%257D%255D",
            "少年歌行" : "https://garden.breadio.wiki/feed.xml?filter=%255B%257B%2522search%2522%253A%255B%2522%25E5%25B0%2591%25E5%25B9%25B4%25E6%25AD%258C%25E8%25A1%258C%2522%255D%257D%255D",
            "完美世界" : "https://garden.breadio.wiki/feed.xml?filter=%255B%257B%2522search%2522%253A%255B%2522%25E5%25AE%258C%25E7%25BE%258E%25E4%25B8%2596%25E7%2595%258C%2522%255D%257D%255D",
            "斗破苍穹" : "https://garden.breadio.wiki/feed.xml?filter=%255B%257B%2522search%2522%253A%255B%2522%25E6%2596%2597%25E7%25A0%25B4%25E8%258B%258D%25E7%25A9%25B9%2522%255D%257D%255D",
            "斗罗大陆" : "https://garden.breadio.wiki/feed.xml?filter=%255B%257B%2522search%2522%253A%255B%2522%25E6%2596%2597%25E7%25BD%2597%25E5%25A4%25A7%25E9%2599%2586%2522%255D%257D%255D"
           }

    def getDongManUpdate(self,):
        """
        获取动漫更新,返回发布时间大于今天0点的所有更新的动漫
        todo
        后面集成xpath解析然后我传入 动漫名 然后解析到到Rss订阅连接 然后配置上面格式的url,这样用户可以直接发送名字 配置更新动漫
        :return:
        """
        op(f'[*]: 正在调用更新动漫接口... ...')
        try:
            results = []
            today = datetime.today().replace(hour=0, minute=0, second=0, microsecond=0)
            time_format = "%a, %d %b %Y %H:%M:%S %Z"
            for dm_name, dm_url in self.rssUrls.items():
                contents = feedparser.parse(dm_url).entries
                for content in contents:
                    if dm_name in content.title:
                        published_time = datetime.strptime(content.published, time_format)
                        if published_time > today and dm_name in content.title:
                            formatted_entry = f"{content.title}\n 地址:{content.link}\n 时间:{content.published}"
                            results.append(formatted_entry)
                            break
            return "\n".join(results)
        except Exception as e:
            op(f'[-]: 调用更新的动漫接口出现错误, 错误信息: {e}')
            return ""


if __name__ == '__main__':
    dongManUpdateApi = DongManUpdateApi()
    print(dongManUpdateApi.getDongManUpdate())

上面代码说明,自己测试可以把时间改成<,由于下面加了break 不会出现信息内容过长,这里的其实每天的更新,不会过长,可以去掉break,只是为了自己调试,和防止微信信息不过长,取最新的记录,也没问题

可以这么理解,

自己写方法,DongManUpdateApi

然后再__init__.py里面实例化这个py(我就说类/接口了)
然后在ApiMainServer.py汇封装这个方法
最后这个ApiMainServer.py汇聚了所有的方法我,自动推送服务在PushMainServer.py里面

添加功能项目结构说明

image-20250319194900369

加上自己的定的时间就行,可以自己去取配置文件里面取时间,我这里只做调试

image-20250319195353182

群推送截图:

image-20250319195732029

总结:

很多时候有比较自己想用的项目,比如我,第一时间会寻找.net时候有平替的项目,因为我希望基于原有开源项目来定制化自己的功能。这种其实大部分都是没有的,除非自己重做,之前的AI的项目就是,因为后台不是Net的,我们重做了。

总的来说,如果只是修改的情况下,有一门语言的情况下,这些小工具或者小项目,自己快速入门下新语言的基础,其实很快的。代码接口也都是大同小异,一通百通。然后就是多一门语言,自己新项目的时候,整合解决方案的时候,不止局限一门语言。

项目地址:https://github.com/ngc660sec/NGCBot
背景:

由于最近想接着玩QQ机器人了,但是好像去年玩的协议都不行了,换成了NT,然后我自己写了登录,测试了下,刚测试完登录就显示被风控了。所以不想自己写了。同时发现了微信机器人的一个项目。是python的。

我照着项目文档部署了下了,测试了下,可以,也比较稳定,但是我想加自己的功能,由于我并不会python,所以周末花了2小时把这个B站的20分钟视频,自己过了一遍,敲了python代码。基础的入门应该差不多了,后面准备看看项目结构和AI 注释应该够我加点功能了。

视频地址:

【20分钟学完一遍python基础】 https://www.bilibili.com/video/BV1Sz4y1U77N/?share_source=copy_web&vd_source=c72fe9958ffa27f156322ffb0043526f

作者视频部署教程:https://www.bilibili.com/video/BV1voqwYAEWs/
题外话:

我发现了一个跨平台的微信机器人:https://github.com/HenryXiaoYang/XYBotV2

因为这个NGCBot是基于微信官方客户端来hook的,所以我自己目前来说比较稳,然后我也是正好借助这个项目来入门下python。所以有实际需求的朋友也可以看看这个跨平台的微信机器人项目

文章说明:

本站所提供的网址和资源均来源于互联网公开渠道,未提供资源上传、存储服务,本站为非盈利性,不收取费用。如有侵犯您的权益,请发送相关证明文件至邮箱firstsaofan1@gmail.com及时与我们联系进行屏蔽删除处理!谢谢