WXBot — это основанный на Kotlin веб-клиент WeChat, разработанный с использованием WeChat SDK.
import cn.fuser.tool.net.QRPrinter
import java.io.File
fun main(args: Array<String>) {
val auth = AuthValidator({ QRPrinter(it).print(System.err) }).validate()
val bot = WXBot(auth)
bot.heartbeat()
val members = bot.contact().list.filter { it.userName.startsWith("@@") }
members.forEach({
// Отправка текстового сообщения
bot.sendText(it.userName, it.userName)
// Отправка изображения
bot.sendImg(it.userName, File("****"))
})
}
package cn.fuser.vx.wxbot
import cn.fuser.tool.net.Log
import cn.fuser.tool.net.QRPrinter
fun main(args: Array<String>) {
val auth = AuthValidator({ QRPrinter(it).print(System.err) }).validate()
val bot = WXBot(auth)
bot.heartbeat()
// Поиск пользователя по псевдониму
val members = bot.contact().list.find { it.nickName.startsWith("***") }
bot.registerHandler(SimpleMessageHandler {
Log.info("message[%d] %s: %s", it.msgType, it.fromUserName, it.content)
if (it.msgType != 1) return@SimpleMessageHandler
// userName начинается с @@, значит это сообщение из группового чата WeChat
val content = if (it.fromUserName.startsWith("@@")) it.content.substringAfter(":<br/>") else it.content
bot.sendText(members!!.userName, content)
})
}
В WXBot используется инструмент cn.fuser.tool.QRPrinter
, который выводит QR-код в виде ASCII-арта. Этот инструмент реализован на основе Python-версии kdepp/tty_qr.py.
Также можно реализовать (BufferedImage) -> Unit
и передать его в AuthValidator
для выполнения других операций.
Эффект вывода QR-кода на консоль:
author: @Memory_Leak
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )