Sebuah alat kecil yang memungkinkan WeChat mengirim pesan secara teratur dalam satu lingkaran (menggunakan tugas ekspresi cron bisa akurat hingga saat ini) dan mengirim pesan dalam batch. Ini juga menyediakan antarmuka yang sederhana dan intuitif yang dapat diterapkan ke platform apa pun.
✅Pesan grup: Kirim pesan berbeda ke beberapa teman sekaligus
✅Kirim pesan secara otomatis: Secara otomatis memeriksa waktu dan mengirim pesan pada saat yang sesuai? (Berdasarkan ekspresi cron, akurat hingga menitnya)
✅Kirim pesan dalam satu lingkaran: ekspresi cron dapat mengatur pekerjaan loop apa pun
✅Periksa catatan obrolan secara teratur dan diingatkan berdasarkan hasil tes?
✅Jaminan keandalan: Pencatatan log dan deteksi kesalahan otomatis dapat memastikan bahwa tugas yang dijadwalkan dijalankan tanpa henti?
✅Perlindungan otentikasi login: Perlindungan login untuk memastikan keamanan data
✅ Dukungan platform penuh, mudah diterapkan di server, server diterapkan pada platform win untuk menerima permintaan klien, dan klien dapat diterapkan ke platform apa pun?
Proyek ini dibagi menjadi 2 bagian, server dan klien:
Servernya adalah server ringan, diinstal pada win bersama dengan WeChat
Server sepenuhnya terpisah dari klien dan menerima permintaan http untuk mengotomatiskan operasi WeChat. Anda juga dapat menulis klien sendiri untuk memanggil antarmuka server.
wechat/ping
: Periksa apakah server berjalan normal, kembalikan 'status': 'pong'
wechat/send_message
: Mengirim pesan, menerima name
data dan text
dalam format json, dan melakukan operasi otomatis di WeChatwechat/check_wechat_status
: Periksa apakah WeChat berjalan normalwechat/get_dialogs
: Dapatkan riwayat obrolanwechat/get_dialogs_by_time_blocks
: Dapatkan catatan obrolan berdasarkan jangka waktu dan kembalikan daftar bersarangwechat/send_file
: mengirim fileServer memiliki antrian pesan dan kunci mutex. Anda hanya perlu mengirim pesan ke server, dan server akan secara otomatis memproses antrian pesan untuk memastikan bahwa pesan dikirim secara berurutan, sehingga Anda juga dapat menyebarkan beberapa klien untuk mengirim pesan ke server yang sama.
Klien adalah front-end ringan yang dapat berjalan di platform apa pun dan mengirim pesan ke server melalui permintaan jaringan.
首页
: Ikhtisar Fitur日志
: Periksa log panggilan fungsi klien untuk memfasilitasi debugging dan deteksi kesalahan. Kegagalan tidak akan gagal menunjukkan bahwa ada masalah dengan panggilan fungsi. Mungkin ada pesan yang terlewat, pesan yang salah, dan kegagalan penyimpanan data ., perlu diperhatikan错误检测
: Mendeteksi apakah berbagai fungsi klien normal dan apakah tugas terjadwal hilang发送消息管理
: mengirim pesan secara berkelompok定时任务管理
: mengirim pesan pada waktu yang dijadwalkan邮箱报警
: Secara otomatis mendeteksi kesalahan dan mengirimkan informasi kesalahan ke alamat email yang ditunjuk数据管理界面
: mengelola konten database, mengedit dan mengirim pesan Untuk menyederhanakan konfigurasi server, silakan instal WeChat di C:/Program Files/Tencent/WeChat/WeChat.exe
.
Jika WeChat Anda diinstal di tempat lain, silakan gunakan penerapan kode sumber, lalu jalankan server:
Kunjungi
http://127.0.0.1:8000/admin/wechat_app/wechatconfig/1/change/
, nama pengguna adalahadmin
, kata sandinya adalahtykWyr-bepqu6-fafvym
, dan ubah lokasi instalasi WeChat secara manual
Perhatikan bahwa pemisah jalur di windows adalah
, tetapi di python
merupakan karakter escape, sehingga perlu diganti dengan
/
, misalnya
Windows资源管理器复制出来文件路径是:`C:Program FilesTencentWeChatWeChat.exe`
但是在后台中需要写成:`C:/Program Files/Tencent/WeChat/WeChat.exe
Setelah menyimpan, Anda dapat menjalankan
pyinstaller YuYuWechatV2_Server.spec
untuk mengkompilasi ulang server ke EXE, dan kemudian menyebarkannya ke server
Temukan versi terbaru pada antarmuka rilis dan unduh YuYuWechatV2_Server.exe
dan YuYuWechatV2_Server_run.bat
Tempatkan kedua file dalam direktori yang sama, klik dua kali YuYuWechatV2_Server_run.bat
untuk menjalankan (port default adalah 8000, jika ada konflik, silakan ubah file bat untuk menentukan port)
cd ke direktori YuYuWechatV2_Server
Instal dependensi pip install -r requirements.txt
Jalankan python manage.py runserver 0.0.0.0:8000
Setelah menginstal dan menjalankan server pada langkah sebelumnya, Anda dapat menggunakan perintah sederhana untuk menguji apakah server berhasil dijalankan.
Buka terminal (powershell):
curl http://127.0.0.1:8000/wechat/ping
Biasanya itu akan kembali
StatusCode : 200
StatusDescription : OK
Content : { " status " : " pong " }
RawContent : HTTP/1.1 200 OK
Vary: origin
X-Frame-Options: DENY
X-Content-Type-Options: nosniff
Referrer-Policy: same-origin
Cross-Origin-Opener-Policy: same-origin
Content-Length: 18
Content-Type: applicat...
Forms : {}
Headers : {[Vary, origin], [X-Frame-Options, DENY], [X-Content-Type-Options, nosniff], [Referrer-Policy, same
-o rigin]...}
Images : {}
InputFields : {}
Links : {}
Links : {} ParsedHtml : System.__ComObject RawContentLength : 18
$jsonData = ' {"name": "文件传输助手", "text": "hi"} '
Invoke-WebRequest -Uri http://127.0.0.1:8000/wechat/send_message/ -Method Post -Headers @{ " Content-Type " = " application/json " } -Body $jsonData -ContentType " application/json; charset=utf-8 "
Perintah ini akan mengirimkan pesan hi
ke File Transfer Assistant
Buka terminal:
curl -X GET http://替换成服务器的ip地址:8000/wechat/ping/
curl -X POST http://替换成服务器的ip地址:8000/wechat/send_message/ -H " Content-Type: application/json " -d ' {"name": "文件传输助手", "text": "hi"} '
YuYuWechatV2_Server memerlukan antarmuka GUI, jadi Anda perlu memastikan bahwa Windows tidak mengunci layar.
win+r运行命令
gpedit.msc
Saya telah mengkompilasi gambar buruh pelabuhan untuk x86 dan arm. Arsitektur x86 dan arm Windows/mac/Linux dapat dijalankan.
docker-compose.yml
postgres_data
di direktori yang sama untuk memasang file databasedocker-compose up
dijalankan docker-compose.yml
- CSRF_TRUSTED_ORIGINS=https://localhost,https://yourdomain.com # 定义CSRF信任域
, jika tidak, masalah CSRF akan terjadi
File buruh pelabuhan ini akan menarik tiga gambar,
`mona233/yuyuwechatv2_client:latest`
`redis:latest`,因为定时任务的celery需要一个消息队列,我默认使用redis,端口为6379
`postgres:latest`,因为客户端需要一个数据库,我默认使用postgres,端口为5432
yuyuwechatv2_client.tar.gz
di antarmuka rilis. Ini adalah image docker yang telah dikompilasi. Cukup impor ke docker lokal Anda. Jika Anda ingin menyesuaikan struktur database dan menambahkan fungsionalitas, Anda dapat menjalankannya dari kode sumber
tykWyr-bepqu6-fafvym
.YuYuWechatV2_Client
pip install -r requirements.txt
python manage.py runserver 127.0.0.1:7500 --insecure
YuYuWechatV2_Client/YuYuWechatV2_Client/settings.py
CSRF_TRUSTED_ORIGINS = os.environ.get('CSRF_TRUSTED_ORIGINS', 'https://localhost').split(',')
, jika tidak maka akan terjadi masalah csrf
127.0.0.1:7500
di browser lokal untuk membuka beranda front-end Yang pertama adalah antarmuka login. Anda perlu membuat pengguna super secara manual dan membuka terminal baru:
Masuk ke wadah buruh pelabuhan
docker exec -it yuyuwechatv2_client bash
Pasang direktori
cd /app
Buat pengguna super (silakan atur sendiri pengguna dan kata sandinya)
python manage.py createsuperuser
Kemudian masukkan nama pengguna dan kata sandi Anda pada antarmuka login untuk login.
192.168.50.1:8000
, lalu klik untuk menguji apakah server terhubung. Setelah terhubung, klik Simpan IP Server untuk menyimpannya secara persisten ke database. Tidak perlu mengkonfigurasi IP server lain kali.启动定时任务
untuk memulai tugas pengiriman terjadwal dan fungsi alarm email.Untuk fungsi lainnya, klik pada sidebar untuk melompat ke antarmuka yang sesuai. Halaman web front-end hanya melibatkan operasi melihat dan mengirim pada database. Menambah, menghapus, dan mengubah pengguna dan konten pesan perlu dilakukan di antarmuka manajemen latar belakang , yang menjamin keamanan Data
127.0.0.1:7500/admin
di browser lokal Anda untuk masuk ke antarmuka manajemen latar belakang. Di client_app adalah data klien, Anda dapat melihat tabel data berikut
Messages
: Tabel data untuk manajemen pengiriman pesanScheduled messages
: Tabel data untuk manajemen tugas terjadwalServer configs
: konfigurasi serverWechat users
: Tabel data pengguna WeChatEmail settingss
: Pengaturan emailLogs
: tabel data logError logs
: tabel data deteksi kesalahan Username
: Nama teman WeChat atau nama komentarnya, harus menempati peringkat pertama hasil pencarian ( wajib )Wechatid
: ID Wechat ( opsional )Date added
: tanggal teman ditambahkan ( tidak wajib )Group:
: Grup teman. Halaman web front-end dapat memfilter teman menurut grup untuk memfasilitasi pengelolaan grup ( opsional ) Is active
: Apakah pesan ini diaktifkan atau tidak. Pesan ini akan dikirim secara teratur setelah aktivasi.User
: Pilih pengguna WeChat yang ditambahkan pada langkah sebelumnya ( wajib )Text
: Isi pesan yang dikirim ( wajib diisi )Cron expression
: ekspresi cron, waktu pengiriman secara teratur, formatnya * * * * *
, masing-masing mewakili分时日月周
( wajib diisi )Execution count:
Berapa kali pesan dieksekusi, 0 berarti tidak ada eksekusi, dan akan dikurangi satu setelah setiap eksekusi hingga menjadi 0, sehingga berapa kali pesan dikirim dapat dikontrol ( jumlah yang dibutuhkan untuk diatur secara manual )Execution skip
: Jumlah pesan yang dilewati, defaultnya adalah 0. Jika disetel ke 1, tugas tidak akan dijalankan di lain waktu, tetapi hanya di waktu berikutnya. Jika disetel ke 2, tugas akan dilewati dua kali, dan seterusnya . Melalui cron表达式
dan消息的执行次数
serta消息的跳过次数
, pesan dapat dimulai dan diakhiri kapan saja, pesan dapat dikirim kapan saja, dan pesan dapat dikirim dalam satu lingkaran .
Mengenai cron表达式
, program ini adalah ekspresi cron 5-segmen, akurat hingga saat ini. Harap jangan bingung dengan ekspresi cron 7-segmen. Ada generator online di Internet atau ChatGPT.
* * * * *:每分钟执行一次
0 * * * *:每小时执行一次
0 0 * * *:每天执行一次
0 0 * * 1:每周一执行一次
*/10 * * * * # 每10分钟执行一次
0 0 */2 * * # 每隔一天午夜12点执行
0 0 * * 1 # 每周一午夜12点执行
0 0 1 * * # 每月1日午夜12点执行
Dengan menggunakan fungsi alarm email, ketika terjadi kesalahan, email dapat dikirim secara otomatis ke kotak surat yang ditunjuk untuk memfasilitasi penanganan kesalahan tepat waktu.
Klik Konfigurasi Email di beranda dan itu akan melompat ke backend.
Disarankan untuk menggunakan kotak surat 163 di sini. Berikut ini adalah detail konfigurasi kotak surat (jika Anda menggunakan kotak surat 163, tiga item pertama tidak perlu diubah)
Email host
: alamat smtpEmail port
: port smtpEmail security
: Pilih metode enkripsiEmail host user
: Akun emailEmail host password
: Kata sandi email (biasanya berupa kode otorisasi, silakan terapkan sendiri)Default from email:
Alamat email untuk mengirim email, umumnya sama dengan Email host user
Recipient list:
Alamat email untuk menerima email. Anda dapat mengisi beberapa item, dipisahkan dengan koma. Setelah menulis ScheduledMessage, terkadang Anda perlu membuat MessageCheck secara bersamaan. Ini adalah skenario yang sangat umum, jadi saya menulis migrator untuk memfasilitasi pembuatan MessageCheck dari scheduleMessage.
YuYuWechatV2_Client
python manage.py generate_message_checks
di terminalSecara default, migrator ini akan membuat ScheduledMessage dan MessageCheck sesuai dengan aturan berikut
is_active=scheduled_message.is_active, # 保持与 ScheduledMessage 一致的激活状态
user=scheduled_message.user, # 关联的用户与 ScheduledMessage 相同
keyword="", # keyword 留空
cron_expression=cron_expression_day_after, # 设置为第二天 15:00 的 cron 表达式
message_count=1, # 默认仅检查一条消息
report_on_found=False # 默认不报告找到的关键词
Jika Anda ingin menyesuaikan aturan pembuatan, Anda dapat memodifikasi fungsi YuYuWechatV2_Client/client_app/management/commands/generate_message_checks.py
Pesan yang dikirim melalui WeChat biasanya sangat penting. Untuk memastikan tidak ada masalah dalam pengiriman pesan, YuYuWechat menggunakan berbagai cara untuk memastikan keandalan sistem, tetapi kesalahan masih mungkin terjadi selamat datang untuk mengangkat masalah.
Kesalahan secara teoritis tidak dapat dihindari, sehingga deteksi kesalahan sangatlah penting
Pengujian merupakan sarana penting untuk memverifikasi apakah kode berjalan sesuai yang diharapkan. YuYuWechat melakukan pengujian otomatis melalui tindakan GitHub. Untuk sampel pengujian terperinci, silakan merujuk ke folder .github
Inti dari easyChat YuYuWechatV2_Server adalah easyChat, mohon dukungnya
Pemeliharaan perangkat lunak memerlukan biaya tertentu. Jika menurut Anda perangkat lunak ini bermanfaat bagi Anda, Anda dapat memberi tip kepada penulis secangkir kopi☕️
YuYuWechat sepenuhnya gratis, donasi hanya untuk mendukung penulis untuk terus mengembangkan dan memelihara perangkat lunak, dan tidak wajib
Kode ini hanya digunakan untuk komunikasi dan pembelajaran tentang teknologi UIAutomation. Dilarang digunakan dalam proyek produksi sebenarnya. Jika timbul perselisihan hukum sebagai akibatnya, penulis tidak ada hubungannya dengan itu!