Skip to content

Commit afb737d

Browse files
committed
Do not fire start/stop log events from broadcast settings as it may not be true (streamer can just change the stream settings)
1 parent 0b5bf95 commit afb737d

2 files changed

Lines changed: 15 additions & 11 deletions

File tree

miner/src/main/java/fr/rakambda/channelpointsminer/miner/handler/StreamStartEndHandler.java

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,14 @@ public class StreamStartEndHandler extends PubSubMessageHandlerAdapter{
3232
public void onStreamUp(@NotNull Topic topic, @NotNull StreamUp message){
3333
var streamerId = topic.getTarget();
3434
var streamer = miner.getStreamerById(streamerId);
35-
streamUp(streamerId, streamer.orElse(null), streamer.map(Streamer::getUsername).orElse(null), message.getServerTime());
35+
streamUp(streamerId, streamer.orElse(null), streamer.map(Streamer::getUsername).orElse(null), message.getServerTime(), true);
3636
}
3737

3838
@Override
3939
public void onStreamDown(@NotNull Topic topic, @NotNull StreamDown message){
4040
var streamerId = topic.getTarget();
4141
var streamer = miner.getStreamerById(streamerId);
42-
streamDown(streamerId, streamer.orElse(null), streamer.map(Streamer::getUsername).orElse(null), message.getServerTime());
42+
streamDown(streamerId, streamer.orElse(null), streamer.map(Streamer::getUsername).orElse(null), message.getServerTime(), true);
4343
}
4444

4545
@Override
@@ -48,28 +48,32 @@ public void onBroadcastSettingsUpdate(@NotNull Topic topic, @NotNull BroadcastSe
4848
var streamer = miner.getStreamerById(streamerId);
4949

5050
if(streamer.map(Streamer::isStreaming).orElse(true)){
51-
streamDown(streamerId, streamer.orElse(null), streamer.map(Streamer::getUsername).orElse(null), TimeFactory.now());
51+
streamDown(streamerId, streamer.orElse(null), streamer.map(Streamer::getUsername).orElse(null), TimeFactory.now(), false);
5252
}
5353
else{
54-
streamUp(streamerId, streamer.orElse(null), streamer.map(Streamer::getUsername).orElse(null), TimeFactory.now());
54+
streamUp(streamerId, streamer.orElse(null), streamer.map(Streamer::getUsername).orElse(null), TimeFactory.now(), false);
5555
}
5656
}
5757

58-
private void streamUp(@NotNull String streamerId, @Nullable Streamer streamer, @Nullable String username, @NotNull Instant serverTime){
58+
private void streamUp(@NotNull String streamerId, @Nullable Streamer streamer, @Nullable String username, @NotNull Instant serverTime, boolean fireEvent){
5959
updateStream(streamerId, streamer);
6060
Optional.ofNullable(streamer)
6161
.filter(s -> s.getSettings().isJoinIrc())
6262
.map(Streamer::getUsername)
6363
.ifPresent(miner.getChatClient()::join);
64-
eventManager.onEvent(new StreamUpEvent(streamerId, username, streamer, serverTime));
64+
if(fireEvent){
65+
eventManager.onEvent(new StreamUpEvent(streamerId, username, streamer, serverTime));
66+
}
6567
}
6668

67-
private void streamDown(@NotNull String streamerId, @Nullable Streamer streamer, @Nullable String username, @NotNull Instant serverTime){
69+
private void streamDown(@NotNull String streamerId, @Nullable Streamer streamer, @Nullable String username, @NotNull Instant serverTime, boolean fireEvent){
6870
updateStream(streamerId, streamer);
6971
Optional.ofNullable(streamer)
7072
.map(Streamer::getUsername)
7173
.ifPresent(miner.getChatClient()::leave);
72-
eventManager.onEvent(new StreamDownEvent(streamerId, username, streamer, serverTime));
74+
if(fireEvent){
75+
eventManager.onEvent(new StreamDownEvent(streamerId, username, streamer, serverTime));
76+
}
7377
}
7478

7579
private void updateStream(@Nullable String streamerId, @Nullable Streamer streamer){

miner/src/test/java/fr/rakambda/channelpointsminer/miner/handler/StreamStartEndHandlerTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ void broadcastSettingsUpdateAndNotStreaming(){
162162
assertDoesNotThrow(() -> tested.handle(topic, broadcastSettingsUpdateMessage));
163163

164164
verify(miner).updateStreamerInfos(streamer);
165-
verify(eventManager).onEvent(new StreamUpEvent(STREAMER_ID, STREAMER_NAME, streamer, NOW));
165+
verify(eventManager, never()).onEvent(any());
166166
verify(chatClient, never()).join(any());
167167
}
168168
}
@@ -184,7 +184,7 @@ void broadcastSettingsUpdateAndStreaming(){
184184
assertDoesNotThrow(() -> tested.handle(topic, broadcastSettingsUpdateMessage));
185185

186186
verify(miner).updateStreamerInfos(streamer);
187-
verify(eventManager).onEvent(new StreamDownEvent(STREAMER_ID, STREAMER_NAME, streamer, NOW));
187+
verify(eventManager, never()).onEvent(any());
188188
verify(chatClient).leave(STREAMER_NAME);
189189
}
190190
}
@@ -199,7 +199,7 @@ void broadcastSettingsUpdateAndUnknown(){
199199
assertDoesNotThrow(() -> tested.handle(topic, broadcastSettingsUpdateMessage));
200200

201201
verify(miner, never()).schedule(any(Runnable.class), anyLong(), any());
202-
verify(eventManager).onEvent(new StreamDownEvent(STREAMER_ID, null, null, NOW));
202+
verify(eventManager, never()).onEvent(any());
203203
verify(chatClient, never()).leave(STREAMER_NAME);
204204
}
205205
}

0 commit comments

Comments
 (0)