Skip to content

Commit

Permalink
Merge pull request #28 from syspro86/dev
Browse files Browse the repository at this point in the history
  • Loading branch information
syspro86 committed Jun 5, 2024
2 parents e5acb7e + f8e1800 commit 549dc36
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,7 @@ public void saveRun(int season, int period, BestRun run) {
}

var savedRecord = recordRepo.findById(idString);
var updatedProperties = new HashMap<String, String>();
if (savedRecord.isPresent()) {
var dbRecord = savedRecord.get();
var dbPlayers = dbRecord.getPlayers();
Expand All @@ -194,8 +195,16 @@ public void saveRun(int season, int period, BestRun run) {
});

var recordChanged = false;
recordChanged |= dbPlayers.size() > record.getPlayers().size();
recordChanged |= Math.abs(dbRecord.getMythicRating() - record.getMythicRating()) >= 0.1f;
if (dbPlayers.size() > record.getPlayers().size()) {
updatedProperties.put("member count",
String.format("%d -> %d", record.getPlayers().size(), dbPlayers.size()));
recordChanged |= dbPlayers.size() > record.getPlayers().size();
}
if (Math.abs(dbRecord.getMythicRating() - record.getMythicRating()) >= 0.1f) {
updatedProperties.put("mythic rating",
String.format("%f -> %f", record.getMythicRating(), dbRecord.getMythicRating()));
recordChanged |= Math.abs(dbRecord.getMythicRating() - record.getMythicRating()) >= 0.1f;
}

if (!recordChanged) {
idCache.add(idString);
Expand All @@ -207,6 +216,6 @@ public void saveRun(int season, int period, BestRun run) {
log.info("{} new record!", record.getRecordId());
idCache.add(idString);

publisher.publishEvent(new RecordSaveEvent(record));
publisher.publishEvent(new RecordSaveEvent(record).updated(updatedProperties));
}
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,27 @@
package net.zsoo.mythic.mythicweb.crawler;

import lombok.AllArgsConstructor;
import java.util.HashMap;
import java.util.Map;

import lombok.Getter;
import lombok.RequiredArgsConstructor;
import net.zsoo.mythic.mythicweb.dto.MythicRecord;

@Getter
@AllArgsConstructor
@RequiredArgsConstructor
public class RecordSaveEvent {
MythicRecord record;
private final MythicRecord record;

boolean update;
Map<String, String> updatedProperties;

public RecordSaveEvent updated(Map<String, String> updatedProperties) {
if (updatedProperties == null) {
return this;
}
update = true;
this.updatedProperties = new HashMap<>(updatedProperties);
return this;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,11 @@ public void recordSaved(RecordSaveEvent event) throws InterruptedException {
}

String message = recordToMessage(record);
if (event.isUpdate()) {
message += "\n";
message += event.getUpdatedProperties().entrySet().stream().map(kv -> kv.getKey() + ": " + kv.getValue())
.collect(Collectors.joining(", "));
}
try {
for (String chatId : chatIds) {
telegramBot.execute(new SendMessage(chatId, message));
Expand Down

0 comments on commit 549dc36

Please sign in to comment.