mirror of
https://github.com/smallevilbeast/ntchat.git
synced 2025-05-23 00:06:06 +08:00
添加README和LICENSE
This commit is contained in:
parent
be10cf4548
commit
f2060aa4c5
21
LICENSE
Normal file
21
LICENSE
Normal file
|
@ -0,0 +1,21 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) 2022 evilbeast
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
190
README.md
Normal file
190
README.md
Normal file
|
@ -0,0 +1,190 @@
|
|||
<h1 align="center">NtChat</h1>
|
||||
<p align="center">
|
||||
<a href="https://github.com/smallevilbeast/ntchat/releases"><img src="https://img.shields.io/badge/release-0.1.0-blue.svg?" alt="release"></a>
|
||||
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-brightgreen.svg?" alt="License"></a>
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
|
||||
## 介绍
|
||||
|
||||
- 基于pc微信的api接口, 类似itchat项目
|
||||
- 支持收发文本、群@、名片、图片、文件、视频、链接卡片等
|
||||
- 支持好友和群管理
|
||||
|
||||
## 支持的微信版本下载
|
||||
- [WeChatSetup3.6.0.18.exe](https://webcdn.m.qq.com/spcmgr/download/WeChat3.6.0.18.exe)
|
||||
|
||||
## 获取
|
||||
|
||||
```bash
|
||||
pip install ntchat
|
||||
```
|
||||
国内源安装
|
||||
```bash
|
||||
pip install -i https://mirrors.huaweicloud.com/repository/pypi/simple ntchat
|
||||
```
|
||||
|
||||
## 简单入门实例
|
||||
|
||||
有了ntchat,如果你想要给文件传输助手发一条信息,只需要这样
|
||||
|
||||
```python
|
||||
# -*- coding: utf-8 -*-
|
||||
import sys
|
||||
import ntchat
|
||||
|
||||
wechat = ntchat.WeChat()
|
||||
|
||||
# 打开pc微信, smart: 是否管理已经登录的微信
|
||||
wechat.open(smart=False)
|
||||
|
||||
# 等待登录
|
||||
wechat.wait_login()
|
||||
|
||||
# 向文件助手发送一条消息
|
||||
wechat.send_text(to_wxid="filehelper", content="hello, filehelper")
|
||||
|
||||
try:
|
||||
while True:
|
||||
pass
|
||||
except KeyboardInterrupt:
|
||||
ntchat.exit_()
|
||||
sys.exit()
|
||||
```
|
||||
|
||||
## 获取联系人和群列表
|
||||
```python
|
||||
# -*- coding: utf-8 -*-
|
||||
import sys
|
||||
import ntchat
|
||||
|
||||
wechat = ntchat.WeChat()
|
||||
|
||||
# 打开pc微信, smart: 是否管理已经登录的微信
|
||||
wechat.open(smart=False)
|
||||
|
||||
# 等待登录
|
||||
wechat.wait_login()
|
||||
|
||||
# 获取联系人列表并输出
|
||||
contacts = wechat.get_contacts()
|
||||
|
||||
print("联系人列表: ")
|
||||
print(contacts)
|
||||
|
||||
rooms = wechat.get_rooms()
|
||||
print("群列表: ")
|
||||
print(rooms)
|
||||
|
||||
|
||||
try:
|
||||
while True:
|
||||
pass
|
||||
except KeyboardInterrupt:
|
||||
ntchat.exit_()
|
||||
sys.exit()
|
||||
```
|
||||
|
||||
## 监听消息并自动回复
|
||||
|
||||
```python
|
||||
# -*- coding: utf-8 -*-
|
||||
import sys
|
||||
import ntchat
|
||||
|
||||
wechat = ntchat.WeChat()
|
||||
|
||||
# 打开pc微信, smart: 是否管理已经登录的微信
|
||||
wechat.open(smart=False)
|
||||
|
||||
|
||||
# 注册消息回调
|
||||
@wechat.msg_register(ntchat.MT_RECV_TEXT_MSG)
|
||||
def on_recv_text_msg(wechat_instance: ntchat.WeChat, message):
|
||||
data = message["data"]
|
||||
from_wxid = data["from_wxid"]
|
||||
self_wxid = wechat_instance.get_login_info()["wxid"]
|
||||
|
||||
# 判断消息不是自己发的,并回复对方
|
||||
if from_wxid != self_wxid:
|
||||
wechat_instance.send_text(to_wxid=from_wxid, content=f"你发送的消息是: {data['msg']}")
|
||||
|
||||
|
||||
try:
|
||||
while True:
|
||||
pass
|
||||
except KeyboardInterrupt:
|
||||
ntchat.exit_()
|
||||
sys.exit()
|
||||
```
|
||||
|
||||
|
||||
## 使用pyxcgui界面库实现的简单例子
|
||||
|
||||

|
||||
|
||||
代码如下:
|
||||
|
||||
```python
|
||||
# -*- coding: utf8 -*-
|
||||
import xcgui
|
||||
import ntchat
|
||||
from xcgui import XApp, XWindow
|
||||
|
||||
|
||||
class NtChatWindow(XWindow):
|
||||
def __init__(self):
|
||||
super(NtChatWindow, self).__init__()
|
||||
self.loadLayout("resources\\send_text_ui.xml")
|
||||
self.setMinimumSize(600, 500)
|
||||
|
||||
btn: xcgui.XButton = self.findObjectByName("btn_open")
|
||||
btn.regEvent(xcgui.XE_BNCLICK, self.on_btn_open_clicked)
|
||||
|
||||
btn: xcgui.XButton = self.findObjectByName("btn_send")
|
||||
btn.regEvent(xcgui.XE_BNCLICK, self.on_btn_send_clicked)
|
||||
|
||||
self.edit_wxid: xcgui.XEdit = self.findObjectByName("edit_wxid")
|
||||
self.edit_content: xcgui.XEdit = self.findObjectByName("edit_content")
|
||||
self.edit_log: xcgui.XEdit = self.findObjectByName("edit_log")
|
||||
self.edit_log.enableAutoWrap(True)
|
||||
|
||||
self.wechat_instance: ntchat.WeChat = None
|
||||
|
||||
def on_btn_open_clicked(self, sender, _):
|
||||
self.wechat_instance = ntchat.WeChat()
|
||||
self.wechat_instance.open()
|
||||
self.wechat_instance.on(ntchat.MT_ALL, self.on_recv_message)
|
||||
|
||||
def on_btn_send_clicked(self, sender, _):
|
||||
if not self.wechat_instance.login_status:
|
||||
svg = xcgui.XSvg.loadFile("resources\\warn.svg")
|
||||
svg.setSize(16, 16)
|
||||
self.notifyMsgWindowPopup(xcgui.position_flag_top, "警告", "请先打开并登录微信",
|
||||
xcgui.XImage.loadSvg(svg), xcgui.notifyMsg_skin_warning)
|
||||
else:
|
||||
self.wechat_instance.send_text(self.edit_wxid.getText(), self.edit_content.getText())
|
||||
|
||||
def on_recv_message(self, wechat, message):
|
||||
text = self.edit_log.getText()
|
||||
text += "\n"
|
||||
text += str(message)
|
||||
self.edit_log.setText(text)
|
||||
self.redraw()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
app = XApp()
|
||||
window = NtChatWindow()
|
||||
window.showWindow()
|
||||
app.run()
|
||||
ntchat.exit_()
|
||||
app.exit()
|
||||
|
||||
```
|
||||
|
||||
帮助&支持
|
||||
-------------------------
|
||||
点击链接加入群聊 [PyXCGUI&NtChat交流群](https://jq.qq.com/?_wv=1027&k=oIXzbTbI)
|
|
@ -10,7 +10,7 @@ wechat.open(smart=False)
|
|||
# 等待登录
|
||||
wechat.wait_login()
|
||||
|
||||
# 获取联系人列表并输出
|
||||
# 获取群列表并输出
|
||||
rooms = wechat.get_rooms()
|
||||
|
||||
print("群列表: ")
|
||||
|
|
BIN
examples/resources/send_text_ui.jpg
Normal file
BIN
examples/resources/send_text_ui.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 19 KiB |
Loading…
Reference in New Issue
Block a user