Ein kleines Tool, das es WeChat ermöglicht, regelmäßig Nachrichten in einer Schleife zu senden (mithilfe von Cron-Ausdrücken können Aufgaben auf die Minute genau sein) und Nachrichten in Stapeln senden. Es bietet außerdem eine einfache und intuitive Schnittstelle, die auf jeder Plattform bereitgestellt werden kann.
✅Gruppennachrichten: Senden Sie verschiedene Nachrichten gleichzeitig an mehrere Freunde
✅Nachrichten automatisch senden: Die Uhrzeit automatisch überprüfen und im entsprechenden Moment Nachrichten senden? (Basierend auf Cron-Ausdruck, minutengenau)
✅Nachrichten in einer Schleife senden: Cron-Ausdruck kann jeden Schleifenjob festlegen
✅Chat-Aufzeichnungen regelmäßig überprüfen und anhand der Testergebnisse erinnert werden?
✅Zuverlässigkeitsgarantie: Durch Protokollierung und automatische Fehlererkennung kann sichergestellt werden, dass geplante Aufgaben fehlerfrei ausgeführt werden?
✅Login-Authentifizierungsschutz: Login-Schutz zur Gewährleistung der Datensicherheit
✅ Vollständige Plattformunterstützung, einfache Bereitstellung auf dem Server, der Server wird auf der Win-Plattform bereitgestellt, um Client-Anfragen zu akzeptieren, und der Client kann auf jeder Plattform bereitgestellt werden?
Dieses Projekt ist in zwei Teile unterteilt, Server und Client:
Der Server ist ein Lightweight-Server, der zusammen mit WeChat auf Win installiert wird
Der Server ist vollständig vom Client entkoppelt und akzeptiert HTTP-Anfragen zur Automatisierung von WeChat-Vorgängen. Sie können auch selbst einen Client schreiben, um die Serverschnittstelle aufzurufen.
wechat/ping
: Überprüfen Sie, ob der Server normal läuft, geben Sie 'status': 'pong'
wechat/send_message
: Senden Sie Nachrichten, akzeptieren Sie name
und text
im JSON-Format und führen Sie automatisierte Vorgänge auf WeChat auswechat/check_wechat_status
: Überprüfen Sie, ob WeChat normal läuftwechat/get_dialogs
: Chatverlauf abrufenwechat/get_dialogs_by_time_blocks
: Chat-Datensätze basierend auf dem Zeitraum abrufen und eine verschachtelte Liste zurückgebenwechat/send_file
: Datei sendenDer Server verfügt über eine Nachrichtenwarteschlange und eine Mutex-Sperre. Sie müssen nur Nachrichten an den Server senden, und der Server verarbeitet die Nachrichtenwarteschlange automatisch, um sicherzustellen, dass Nachrichten nacheinander gesendet werden, sodass Sie auch mehrere Clients zum Senden von Nachrichten bereitstellen können derselbe Server.
Der Client ist ein leichtgewichtiges Frontend, das auf jeder Plattform ausgeführt werden kann und über Netzwerkanfragen Nachrichten an den Server sendet.
首页
: Funktionsübersicht日志
: Überprüfen Sie das Protokoll des Client-Funktionsaufrufs, um das Debuggen und die Fehlererkennung zu erleichtern. Ein Fehler weist darauf hin, dass beim Funktionsaufruf ein Problem vorliegt . , müssen darauf achten错误检测
: Erkennen Sie, ob verschiedene Funktionen des Clients normal sind und ob geplante Aufgaben fehlen发送消息管理
: Nachrichten stapelweise senden定时任务管理
: Senden von Nachrichten zu geplanten Zeiten邮箱报警
: Fehler automatisch erkennen und Fehlerinformationen an die angegebene E-Mail-Adresse senden数据管理界面
: Datenbankinhalte verwalten, Nachrichten bearbeiten und senden Um die Serverkonfiguration zu vereinfachen, installieren Sie WeChat bitte unter C:/Program Files/Tencent/WeChat/WeChat.exe
. Dieser Speicherort ist der Standardinstallationsort von WeChat.
Wenn Ihr WeChat an anderer Stelle installiert ist, verwenden Sie bitte die Quellcode-Bereitstellung und führen Sie dann den Server aus:
Besuchen Sie
http://127.0.0.1:8000/admin/wechat_app/wechatconfig/1/change/
, der Benutzername istadmin
, das Passwort isttykWyr-bepqu6-fafvym
und ändern Sie den Installationsort von WeChat manuell
Beachten Sie, dass das Pfadtrennzeichen in Windows
ist, in Python jedoch
ein Escape-Zeichen ist und daher beispielsweise durch
/
ersetzt werden muss
Windows资源管理器复制出来文件路径是:`C:Program FilesTencentWeChatWeChat.exe`
但是在后台中需要写成:`C:/Program Files/Tencent/WeChat/WeChat.exe
Nach dem Speichern können Sie
pyinstaller YuYuWechatV2_Server.spec
ausführen, um den Server in EXE neu zu kompilieren, und ihn dann auf dem Server bereitstellen
Suchen Sie die neueste Version auf der Release-Schnittstelle und laden Sie YuYuWechatV2_Server.exe
und YuYuWechatV2_Server_run.bat
herunter
Legen Sie die beiden Dateien im selben Verzeichnis ab und doppelklicken Sie zum Ausführen auf YuYuWechatV2_Server_run.bat
(der Standardport ist 8000. Wenn ein Konflikt vorliegt, ändern Sie bitte die Bat-Datei, um den Port anzugeben.)
cd in das YuYuWechatV2_Server
-Verzeichnis
Installieren Sie Abhängigkeiten pip install -r requirements.txt
Führen Sie python manage.py runserver 0.0.0.0:8000
aus
Nachdem Sie den Server im vorherigen Schritt installiert und ausgeführt haben, können Sie mit einem einfachen Befehl testen, ob der Server erfolgreich ausgeführt wird.
Terminal öffnen (Powershell):
curl http://127.0.0.1:8000/wechat/ping
Normalerweise kommt es zurück
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 "
Dieser Befehl sendet eine hi
an den Dateiübertragungsassistenten
Terminal öffnen:
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 erfordert eine GUI-Schnittstelle, daher müssen Sie sicherstellen, dass Windows den Bildschirm nicht sperrt.
win+r运行命令
gpedit.msc
Ich habe die Docker-Images für x86 und arm kompiliert. Sowohl x86- als auch arm-Architekturen von Windows/Mac/Linux können ausgeführt werden.
docker-compose.yml
herunterpostgres_data
, um die Datenbankdatei bereitzustellendocker-compose up
aus docker-compose.yml
ändern - CSRF_TRUSTED_ORIGINS=https://localhost,https://yourdomain.com # 定义CSRF信任域
, andernfalls treten CSRF-Probleme auf
Diese Docker-Datei ruft drei Bilder ab:
`mona233/yuyuwechatv2_client:latest`
`redis:latest`,因为定时任务的celery需要一个消息队列,我默认使用redis,端口为6379
`postgres:latest`,因为客户端需要一个数据库,我默认使用postgres,端口为5432
yuyuwechatv2_client.tar.gz
in der Release-Schnittstelle. Dies ist das kompilierte Docker-Image. Importieren Sie es einfach in den lokalen Docker. Wenn Sie die Datenbankstruktur anpassen und Funktionen hinzufügen möchten, können Sie sie über den Quellcode ausführen
tykWyr-bepqu6-fafvym
. Sie können es auch manuell in den Django-Einstellungen ändern.YuYuWechatV2_Client
-Verzeichnispip install -r requirements.txt
python manage.py runserver 127.0.0.1:7500 --insecure
aus YuYuWechatV2_Client/YuYuWechatV2_Client/settings.py
ändern CSRF_TRUSTED_ORIGINS = os.environ.get('CSRF_TRUSTED_ORIGINS', 'https://localhost').split(',')
, sonst treten CSRF-Probleme auf
127.0.0.1:7500
in Ihren lokalen Browser ein, um die Front-End-Homepage zu öffnen Die erste ist die Anmeldeschnittstelle. Sie müssen manuell einen Superuser erstellen und ein neues Terminal öffnen:
Betreten Sie den Docker-Container
docker exec -it yuyuwechatv2_client bash
Mount-Verzeichnis
cd /app
Erstellen Sie einen Superuser (Benutzer und Passwort legen Sie bitte selbst fest)
python manage.py createsuperuser
Geben Sie dann Ihren Benutzernamen und Ihr Passwort auf der Anmeldeoberfläche ein, um sich anzumelden.
192.168.50.1:8000
, und klicken Sie dann auf „Testen“, ob der Server verbunden ist. Klicken Sie nach dem Herstellen der Verbindung auf „Server-IP speichern“, um sie dauerhaft in der Datenbank zu speichern. Beim nächsten Mal muss die Server-IP nicht konfiguriert werden.启动定时任务
, um die geplante Sendeaufgabe und die E-Mail-Alarmfunktion zu starten.Für andere Funktionen klicken Sie auf die Seitenleiste, um zur entsprechenden Oberfläche zu springen. Auf der Front-End-Webseite müssen nur Vorgänge für die Datenbank angezeigt, gelöscht und geändert werden , was die Datensicherheit gewährleistet
127.0.0.1:7500/admin
in Ihrem lokalen Browser ein, um die Hintergrundverwaltungsoberfläche aufzurufen. In client_app befinden sich die Kundendaten. Sie können die folgende Datentabelle sehen
Messages
: Datentabelle zum Senden von NachrichtenverwaltungScheduled messages
: Datentabelle für die Verwaltung geplanter AufgabenServer configs
: ServerkonfigurationWechat users
: WeChat-BenutzerdatentabelleEmail settingss
: E-Mail-EinstellungenLogs
: ProtokolldatentabelleError logs
: Fehlererkennungsdatentabelle Username
: Name oder Bemerkungsname eines WeChat-Freundes, muss in den Suchergebnissen an erster Stelle stehen ( erforderlich )Wechatid
: WeChat-ID ( optional )Date added
: Datum, an dem der Freund hinzugefügt wurde ( nicht erforderlich )Group:
Gruppe von Freunden: Die Frontend-Webseite kann Freunde nach Gruppe filtern, um die Gruppenverwaltung zu erleichtern ( optional ). Is active
: Ob diese Nachricht aktiviert ist oder nicht. Sie wird regelmäßig nach der Aktivierung gesendet.User
: Wählen Sie den im vorherigen Schritt hinzugefügten WeChat-Benutzer aus ( erforderlich ).Text
: Inhalt der gesendeten Nachricht ( erforderlich )Cron expression
: Cron-Ausdruck, Zeit zum regelmäßigen Senden, das Format ist * * * * *
und stellt jeweils分时日月周
dar ( erforderlich )Execution count:
Die Häufigkeit, mit der die Nachricht ausgeführt wird. 0 bedeutet keine Ausführung. Nach jeder Ausführung wird sie um eins reduziert, bis sie 0 ist, sodass die Häufigkeit, mit der die Nachricht gesendet wird, gesteuert werden kann ( die Anzahl muss berücksichtigt werden). manuell einzustellen )Execution skip
: Die Anzahl der übersprungenen Nachrichten, der Standardwert ist 0. Bei der Einstellung 1 wird die Aufgabe beim nächsten Mal nicht ausgeführt, sondern nur beim nächsten Mal. Bei der Einstellung 2 wird die Aufgabe zweimal übersprungen usw. Dies kann den Beginn des geplanten Nachrichtenversands steuern. Durch cron表达式
und消息的执行次数
sowie消息的跳过次数
kann die Nachricht jederzeit gestartet und beendet werden, die Nachricht kann jederzeit gesendet werden und die Nachricht kann in einer Schleife gesendet werden.
Bezüglich cron表达式
handelt es sich bei diesem Programm um einen 5-Segment-Cron-Ausdruck, der auf die Minute genau ist. Es gibt Online-Generatoren im Internet oder bei ChatGPT.
* * * * *:每分钟执行一次
0 * * * *:每小时执行一次
0 0 * * *:每天执行一次
0 0 * * 1:每周一执行一次
*/10 * * * * # 每10分钟执行一次
0 0 */2 * * # 每隔一天午夜12点执行
0 0 * * 1 # 每周一午夜12点执行
0 0 1 * * # 每月1日午夜12点执行
Mithilfe der E-Mail-Alarmfunktion kann bei Auftreten eines Fehlers automatisch eine E-Mail an das angegebene Postfach gesendet werden, um eine rechtzeitige Fehlerbehandlung zu ermöglichen.
Klicken Sie auf der Startseite auf E-Mail-Konfiguration und Sie gelangen zum Backend.
Es wird empfohlen, hier das Postfach 163 zu verwenden. Im Folgenden finden Sie die detaillierte Konfiguration des Postfachs (wenn Sie das Postfach 163 verwenden, müssen die ersten drei Elemente nicht geändert werden).
Email host
: SMTP-AdresseEmail port
: SMTP-PortEmail security
: Wählen Sie die Verschlüsselungsmethode ausEmail host user
: E-Mail-KontoEmail host password
: E-Mail-Passwort (dies ist normalerweise ein Autorisierungscode, bitte beantragen Sie ihn selbst)Default from email:
Die E-Mail-Adresse zum Senden von E-Mails, im Allgemeinen dieselbe wie Email host user
Recipient list:
Die E-Mail-Adresse zum Empfangen von E-Mails. Sie können mehrere Elemente durch Kommas getrennt ausfüllen. Nach dem Schreiben von ScheduledMessage muss manchmal gleichzeitig MessageCheck generiert werden. Dies ist ein sehr häufiges Szenario. Daher habe ich einen Migrator geschrieben, um das Generieren von MessageCheck aus ScheduledMessage zu erleichtern.
YuYuWechatV2_Client
python manage.py generate_message_checks
im Terminal ausStandardmäßig erstellt dieser Migrator eine ScheduledMessage und einen MessageCheck gemäß den folgenden Regeln
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 # 默认不报告找到的关键词
Wenn Sie die Generierungsregeln anpassen möchten, können Sie die Funktion YuYuWechatV2_Client/client_app/management/commands/generate_message_checks.py
ändern
Von WeChat gesendete Nachrichten sind in der Regel sehr wichtig, um sicherzustellen, dass es beim Senden von Nachrichten keine Probleme gibt Gerne können Sie ein Problem ansprechen.
Fehler sind theoretisch unvermeidlich, daher ist die Fehlererkennung von entscheidender Bedeutung
Tests sind ein wichtiges Mittel, um zu überprüfen, ob YuYuWechat automatisierte Tests über GitHub-Aktionen durchführt. Detaillierte Testbeispiele finden Sie im .github
Ordner
Der Kern von easyChat YuYuWechatV2_Server ist easyChat, bitte unterstützen Sie es
Wenn Sie der Meinung sind, dass die Software für Sie hilfreich ist, können Sie dem Autor gerne ein Trinkgeld geben☕️
YuYuWechat ist völlig kostenlos. Spenden dienen lediglich der Unterstützung des Autors bei der weiteren Entwicklung und Wartung der Software und sind nicht obligatorisch
Der Code wird nur zur Kommunikation und zum Erlernen der UIAutomation-Technologie verwendet. Die Verwendung in tatsächlichen Produktionsprojekten ist verboten. Sollte es dadurch zu Rechtsstreitigkeiten kommen, hat der Autor damit nichts zu tun!