Skip to content

Commit cd3156c

Browse files
authored
Merge pull request #13 from redmaple1/feature/20200518-renxiaoya
handle room-leave and room-topic
2 parents 9b74c8e + 04348b8 commit cd3156c

File tree

5 files changed

+142
-104
lines changed

5 files changed

+142
-104
lines changed

wechaty-puppet/src/main/kotlin/Puppet.kt

Lines changed: 64 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ val PUPPET_COUNT = AtomicLong()
3131
* puppet
3232
* @author zhengxin
3333
*/
34-
abstract class Puppet: EventEmitter{
34+
abstract class Puppet : EventEmitter {
3535

3636
@Volatile
3737
protected var state = StateEnum.OFF
@@ -52,7 +52,7 @@ abstract class Puppet: EventEmitter{
5252
private var id: String? = null
5353
protected var puppetOptions: PuppetOptions? = null
5454

55-
private val watchDog:WatchDog
55+
private val watchDog: WatchDog
5656

5757
/**
5858
*
@@ -63,10 +63,10 @@ abstract class Puppet: EventEmitter{
6363
count.addAndGet(1)
6464
this.puppetOptions = puppetOptions
6565

66-
val timeOut = puppetOptions.timeout ?:DEFAULT_WATCHDOG_TIMEOUT
67-
watchDog = WatchDog(1000 * timeOut,"puppet")
66+
val timeOut = puppetOptions.timeout ?: DEFAULT_WATCHDOG_TIMEOUT
67+
watchDog = WatchDog(1000 * timeOut, "puppet")
6868

69-
on("heartbeat",object :PuppetHeartbeatListener{
69+
on("heartbeat", object : PuppetHeartbeatListener {
7070
override fun handler(payload: EventHeartbeatPayload) {
7171
log.info("heartbeat -> ${payload.data}")
7272
val watchdogFood = WatchdogFood(1000 * timeOut)
@@ -77,20 +77,20 @@ abstract class Puppet: EventEmitter{
7777

7878

7979

80-
this.watchDog.on("reset",object : WatchdogListener{
80+
this.watchDog.on("reset", object : WatchdogListener {
8181
override fun handler(event: WatchdogFood) {
8282
val payload = EventResetPayload(JsonUtils.write(event))
83-
emit("reset",payload)
83+
emit("reset", payload)
8484
}
8585
})
8686

8787
// 一秒只有一次
8888
val rateLimiter = RateLimiter.create(1.0)
8989

90-
on("reset",object :PuppetResetListener{
90+
on("reset", object : PuppetResetListener {
9191
override fun handler(payload: EventResetPayload) {
9292
log.info("get a reset message")
93-
if(rateLimiter.tryAcquire()){
93+
if (rateLimiter.tryAcquire()) {
9494
reset(payload.data)
9595
}
9696
}
@@ -115,15 +115,15 @@ abstract class Puppet: EventEmitter{
115115
cacheMessagePayload = Caffeine.newBuilder().build()
116116
}
117117

118-
private fun initHeart(){
118+
private fun initHeart() {
119119

120120
executorService.scheduleAtFixedRate({
121-
if(state == StateEnum.ON) {
121+
if (state == StateEnum.ON) {
122122
val incrementAndGet = HEARTBEAT_COUNTER.incrementAndGet()
123123
log.info("HEARTBEAT_COUNTER #{}", incrementAndGet)
124124
ding("`recover CPR #${incrementAndGet}")
125125
}
126-
},HOSTIE_KEEPALIVE_TIMEOUT,HOSTIE_KEEPALIVE_TIMEOUT,TimeUnit.MILLISECONDS)
126+
}, HOSTIE_KEEPALIVE_TIMEOUT, HOSTIE_KEEPALIVE_TIMEOUT, TimeUnit.MILLISECONDS)
127127

128128
// heartbeatTimerId = vertx.setPeriodic(HOSTIE_KEEPALIVE_TIMEOUT) { id ->
129129
// if(state == StateEnum.ON) {
@@ -141,18 +141,18 @@ abstract class Puppet: EventEmitter{
141141

142142
//dong
143143
fun on(event: String, listener: PuppetDongListener) {
144-
super.on(event,object:Listener{
144+
super.on(event, object : Listener {
145145
override fun handler(vararg any: Any) {
146146

147-
log.info("class Type is {}",any[0].javaClass.name)
147+
log.info("class Type is {}", any[0].javaClass.name)
148148

149149
listener.handler(any[0] as EventDongPayload)
150150
}
151151
})
152152
}
153153

154154
fun on(event: String, listener: PuppetFriendshipListener) {
155-
super.on(event,object:Listener{
155+
super.on(event, object : Listener {
156156
override fun handler(vararg any: Any) {
157157
listener.handler(any[0] as EventFriendshipPayload)
158158
}
@@ -161,43 +161,59 @@ abstract class Puppet: EventEmitter{
161161

162162
//dong
163163
fun on(event: String, listener: PuppetLogoutListener) {
164-
super.on(event,object:Listener{
164+
super.on(event, object : Listener {
165165
override fun handler(vararg any: Any) {
166166
listener.handler(any[0] as EventLogoutPayload)
167167
}
168168
})
169169
}
170170

171-
fun on(event: String,listener: PuppetRoomInviteListener){
172-
super.on(event,object:Listener{
171+
fun on(event: String, listener: PuppetRoomInviteListener) {
172+
super.on(event, object : Listener {
173173
override fun handler(vararg any: Any) {
174174
listener.handler(any[0] as EventRoomInvitePayload)
175175
}
176176
})
177177

178178
}
179179

180-
fun on(event: String,listener: PuppetRoomJoinListerner){
181-
super.on(event,object :Listener{
180+
fun on(event: String, listener: PuppetRoomJoinListener) {
181+
super.on(event, object : Listener {
182182
override fun handler(vararg any: Any) {
183183
listener.handler(any[0] as EventRoomJoinPayload)
184184
}
185185
})
186186
}
187187

188-
fun on(event: String,listener: PuppetErrorListener){
189-
super.on(event,object:Listener{
188+
fun on(event: String, listener: PuppetRoomLeaveListener) {
189+
super.on(event, object : Listener {
190+
override fun handler(vararg any: Any) {
191+
listener.handler(any[0] as EventRoomLeavePayload)
192+
}
193+
})
194+
}
195+
196+
fun on(event: String, listener: PuppetRoomTopicListener) {
197+
super.on(event, object : Listener {
198+
override fun handler(vararg any: Any) {
199+
listener.handler(any[0] as EventRoomTopicPayload)
200+
}
201+
})
202+
}
203+
204+
fun on(event: String, listener: PuppetErrorListener) {
205+
super.on(event, object : Listener {
190206
override fun handler(vararg any: Any) {
191207
listener.handler(any[0] as EventErrorPayload)
192208
}
193209
})
194210
}
195211

196212
fun on(event: String, listener: PuppetScanListener) {
197-
super.on(event,object:Listener{
213+
super.on(event, object : Listener {
198214
override fun handler(vararg any: Any) {
199215

200-
log.info("class Type is {}",any[0].javaClass.name)
216+
log.info("class Type is {}", any[0].javaClass.name)
201217

202218
listener.handler(any[0] as EventScanPayload)
203219
}
@@ -206,50 +222,50 @@ abstract class Puppet: EventEmitter{
206222
}
207223

208224
fun on(event: String, listener: PuppetLoginListener) {
209-
super.on(event,object:Listener{
225+
super.on(event, object : Listener {
210226
override fun handler(vararg any: Any) {
211227
listener.handler(any[0] as EventLoginPayload)
212228
}
213229
})
214230
}
215231

216232
fun on(event: String, listener: PuppetReadyListener) {
217-
super.on(event,object:Listener{
233+
super.on(event, object : Listener {
218234
override fun handler(vararg any: Any) {
219235
listener.handler(any[0] as EventReadyPayload)
220236
}
221237
})
222238
}
223239

224240
fun on(event: String, listener: PuppetMessageListener) {
225-
super.on(event,object:Listener{
241+
super.on(event, object : Listener {
226242
override fun handler(vararg any: Any) {
227243
listener.handler(any[0] as EventMessagePayload)
228244
}
229245
})
230246
}
231247

232-
fun on(event:String,listener: PuppetHeartbeatListener){
233-
super.on(event,object:Listener{
248+
fun on(event: String, listener: PuppetHeartbeatListener) {
249+
super.on(event, object : Listener {
234250
override fun handler(vararg any: Any) {
235251

236-
log.info("class Type is {}",any[0].javaClass.name)
252+
log.info("class Type is {}", any[0].javaClass.name)
237253

238254
listener.handler(any[0] as EventHeartbeatPayload)
239255
}
240256
})
241257
}
242258

243-
fun on(event:String,listener: PuppetResetListener){
244-
super.on(event,object:Listener{
259+
fun on(event: String, listener: PuppetResetListener) {
260+
super.on(event, object : Listener {
245261
override fun handler(vararg any: Any) {
246262
listener.handler(any[0] as EventResetPayload)
247263
}
248264
})
249265
}
250266

251-
fun on(event: String,listener: WatchdogListener){
252-
super.on(event,object :Listener{
267+
fun on(event: String, listener: WatchdogListener) {
268+
super.on(event, object : Listener {
253269
override fun handler(vararg any: Any) {
254270
listener.handler(any[0] as WatchdogFood)
255271
}
@@ -259,7 +275,7 @@ abstract class Puppet: EventEmitter{
259275

260276
abstract fun start(): Future<Void>
261277
abstract fun stop(): Future<Void>
262-
open fun unref(){
278+
open fun unref() {
263279

264280
}
265281

@@ -352,20 +368,20 @@ abstract class Puppet: EventEmitter{
352368
log.info("contractId is {}", contactId)
353369
val roomList = roomList().get()
354370
val roomPayloadFuture: List<CompletableFuture<RoomPayload>> = roomList
355-
.map { roomId: String ->
356-
roomPayload(
357-
roomId
358-
)
359-
}
360-
.map(FutureUtils::toCompletable)
371+
.map { roomId: String ->
372+
roomPayload(
373+
roomId
374+
)
375+
}
376+
.map(FutureUtils::toCompletable)
361377
val resultRoomIdList =
362-
FutureUtils.sequence(roomPayloadFuture)
378+
FutureUtils.sequence(roomPayloadFuture)
363379
val roomPayloadList = resultRoomIdList.get()
364380
val result =
365-
roomPayloadList.filter { t: RoomPayload ->
366-
val memberIdList = t.memberIdList
367-
contactId in memberIdList
368-
}.map(RoomPayload::id)
381+
roomPayloadList.filter { t: RoomPayload ->
382+
val memberIdList = t.memberIdList
383+
contactId in memberIdList
384+
}.map(RoomPayload::id)
369385
return CompletableFuture.completedFuture(result)
370386
}
371387

@@ -401,7 +417,7 @@ abstract class Puppet: EventEmitter{
401417

402418
val contactPayload = cacheContactPayload.getIfPresent(contactId)
403419

404-
log.info("contactPayload is {} by id {}", contactPayload,contactId)
420+
log.info("contactPayload is {} by id {}", contactPayload, contactId)
405421
return contactPayload
406422
}
407423

@@ -499,7 +515,7 @@ abstract class Puppet: EventEmitter{
499515

500516
abstract fun messageContact(messageId: String): Future<String>
501517
abstract fun messageFile(messageId: String): Future<FileBox>
502-
abstract fun messageImage(messageId: String,imageType:ImageType): Future<FileBox>
518+
abstract fun messageImage(messageId: String, imageType: ImageType): Future<FileBox>
503519
abstract fun messageMiniProgram(messageId: String): Future<MiniProgramPayload>
504520
abstract fun messageUrl(messageId: String): Future<UrlLinkPayload>
505521

wechaty-puppet/src/main/kotlin/io/github/wechaty/listener/Listener.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,15 +61,15 @@ interface PuppetResetListener{
6161
}
6262

6363
@FunctionalInterface
64-
interface PuppetRoomJoinListerner{
64+
interface PuppetRoomJoinListener{
6565
fun handler(payload: EventRoomJoinPayload)
6666
// override fun handler0(vararg any: Any) {
6767
// handler(any[0] as EventRoomJoinPayload)
6868
// }
6969
}
7070

7171
@FunctionalInterface
72-
interface PuppetRoomLeaveListerner{
72+
interface PuppetRoomLeaveListener{
7373
fun handler(payload: EventRoomLeavePayload)
7474
// override fun handler0(vararg any: Any) {
7575
// handler(any[0] as EventRoomLeavePayload)

wechaty/src/main/java/io/github/wechaty/examples/Main.java

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,16 @@
22

33

44
import io.github.wechaty.MessageListener;
5-
import io.github.wechaty.ScanListener;
65
import io.github.wechaty.Wechaty;
76
import io.github.wechaty.filebox.FileBox;
87
import io.github.wechaty.user.Contact;
98
import io.github.wechaty.user.Room;
109
import io.github.wechaty.utils.QrcodeUtils;
11-
import okhttp3.*;
12-
import org.apache.commons.io.FileUtils;
10+
import okhttp3.OkHttpClient;
1311
import org.apache.commons.lang3.StringUtils;
1412

15-
import java.io.File;
1613
import java.io.IOException;
17-
import java.net.URL;
18-
import java.util.List;
1914
import java.util.concurrent.ExecutionException;
20-
import java.util.concurrent.Future;
21-
import java.util.stream.Collectors;
2215

2316

2417
public class Main {
@@ -45,17 +38,10 @@ public static void main(String[] args) throws ExecutionException, InterruptedExc
4538
if (StringUtils.equals(text, "#ding")) {
4639
if (room != null) {
4740
room.say("dong");
48-
} else {
49-
from.say("dong");
5041
}
5142
}
5243
});
5344

54-
bot.on("room-join", (room, inviteeList, inviter, date) -> {
55-
List<String> nameList = inviteeList.stream().map(Contact::name).collect(Collectors.toList());
56-
room.say("欢迎" + nameList + "加入群聊");
57-
58-
});
5945
bot.start(true);
6046
// }
6147

@@ -78,5 +64,4 @@ public static void main(String[] args) throws ExecutionException, InterruptedExc
7864
}
7965

8066

81-
8267
}

0 commit comments

Comments
 (0)