diff --git a/src/main/java/com/tsc/bitbucketbot/scheduler/SchedulerComments.java b/src/main/java/com/tsc/bitbucketbot/scheduler/SchedulerComments.java index 561cf6f..a33c168 100644 --- a/src/main/java/com/tsc/bitbucketbot/scheduler/SchedulerComments.java +++ b/src/main/java/com/tsc/bitbucketbot/scheduler/SchedulerComments.java @@ -36,7 +36,7 @@ public class SchedulerComments { private final BitbucketConfig bitbucketConfig; - @Scheduled(cron = "5 8-18 * * MON-FRI") + @Scheduled(cron = "0 5 8-18 * * MON-FRI") public void test() { long newLastCommentId = commentService.getLastCommentId(); long commentId = newLastCommentId + 1; @@ -57,6 +57,7 @@ public class SchedulerComments { final CommentJson comment = commentJson.get(); notification( comment, + pullRequest.getName(), bitbucketConfig.getUrlPullRequest() .replace("{projectKey}", pullRequest.getProjectKey()) .replace("{repositorySlug}", pullRequest.getRepositorySlug()) @@ -87,7 +88,7 @@ public class SchedulerComments { .replace("{commentId}", String.valueOf(lastCommentId)); } - private void notification(@NonNull CommentJson comment, @NonNull String urlPr) { + private void notification(@NonNull CommentJson comment, @NonNull String namePr, @NonNull String urlPr) { final String message = comment.getText(); Matcher matcher = PATTERN.matcher(message); while (matcher.find()) { @@ -96,7 +97,7 @@ public class SchedulerComments { telegramId -> messageSendService.add( MessageSend.builder() .telegramId(telegramId) - .message(Message.personalNotify(comment, urlPr)) + .message(Message.personalNotify(comment, namePr, urlPr)) .build() ) ); diff --git a/src/main/java/com/tsc/bitbucketbot/utils/Message.java b/src/main/java/com/tsc/bitbucketbot/utils/Message.java index acc7fda..a1843bd 100644 --- a/src/main/java/com/tsc/bitbucketbot/utils/Message.java +++ b/src/main/java/com/tsc/bitbucketbot/utils/Message.java @@ -31,19 +31,19 @@ public class Message { @NonNull public static String newPullRequest(PullRequest pullRequest) { - return Smile.FUN + " *Новый Pull Request*" + Smile.BREAK + + return Smile.FUN + " *Новый Pull Request*" + Smile.BR + link(pullRequest.getName(), pullRequest.getUrl()) + Smile.HR + Smile.AUTHOR + ": " + pullRequest.getAuthor().getLogin() + - Smile.TWO_BREAK; + Smile.TWO_BR; } @NonNull public static String statusPullRequest(String name, String url, PullRequestStatus oldStatus, PullRequestStatus newStatus) { return Smile.PEN + " *Изменился статус вашего ПР*" + Smile.HR + - link(name, url) + Smile.BREAK + + link(name, url) + Smile.BR + oldStatus.name() + " -> " + newStatus.name() + - Smile.TWO_BREAK; + Smile.TWO_BR; } @NonNull @@ -52,25 +52,25 @@ public class Message { final Map> changes = reviewerChanges.stream() .collect(Collectors.groupingBy(ReviewerChange::getType)); if (changes.containsKey(OLD)) { - stringBuilder.append(Smile.BREAK).append("Изменили свое решение:").append(Smile.BREAK); + stringBuilder.append(Smile.BR).append("Изменили свое решение:").append(Smile.BR); changes.get(OLD).forEach( change -> stringBuilder .append(Smile.AUTHOR).append(change.getName()).append(": ") .append(change.getOldStatus().getValue()).append(" -> ") .append(change.getStatus().getValue()) - .append(Smile.BREAK) + .append(Smile.BR) ); } if (changes.containsKey(NEW)) { - stringBuilder.append(Smile.BREAK).append("Новые ревьюверы:").append(Smile.BREAK); + stringBuilder.append(Smile.BR).append("Новые ревьюверы:").append(Smile.BR); changes.get(NEW).forEach( change -> stringBuilder .append(change.getName()).append(" (").append(change.getStatus().getValue()).append(")") - .append(Smile.BREAK) + .append(Smile.BR) ); } if (changes.containsKey(DELETED)) { - stringBuilder.append(Smile.BREAK).append("Не выдержали ревью:").append(Smile.BREAK) + stringBuilder.append(Smile.BR).append("Не выдержали ревью:").append(Smile.BR) .append( changes.get(DELETED).stream() .map(ReviewerChange::getName).collect(Collectors.joining(",")) @@ -82,7 +82,7 @@ public class Message { return Optional.of( Smile.PEN + " *Изменения ревьюверов вашего ПР*" + Smile.HR + - link(pullRequest.getName(), pullRequest.getUrl()) + Smile.BREAK + + link(pullRequest.getName(), pullRequest.getUrl()) + Smile.BR + createMessage ); } @@ -91,41 +91,41 @@ public class Message { @NonNull public static String updatePullRequest(String pullRequestName, String prUrl, String author) { - return Smile.UPDATE + " *Обновление Pull Request*" + Smile.BREAK + + return Smile.UPDATE + " *Обновление Pull Request*" + Smile.BR + link(pullRequestName, prUrl) + Smile.HR + Smile.AUTHOR + ": " + author + - Smile.TWO_BREAK; + Smile.TWO_BR; } @NonNull public static String goodMorningStatistic(List pullRequestsReviews, List pullRequestsNeedWork) { StringBuilder message = new StringBuilder().append(Smile.SUN).append(" Доброе утро ").append(Smile.SUN).append(Smile.HR); if (!pullRequestsReviews.isEmpty()) { - message.append("Сегодня тебя ждет проверка ").append(pullRequestsReviews.size()).append(" ПР!").append(Smile.TWO_BREAK) - .append("Топ старых ПР:").append(Smile.BREAK); + message.append("Сегодня тебя ждет проверка ").append(pullRequestsReviews.size()).append(" ПР!").append(Smile.TWO_BR) + .append("Топ старых ПР:").append(Smile.BR); List oldPr = pullRequestsReviews.stream() .sorted(COMPARATOR) .limit(PR_COUNT) .collect(Collectors.toList()); oldPr.forEach(pullRequest -> message.append(topPr(pullRequest))); - message.append(Smile.BREAK); + message.append(Smile.BR); } else { - message.append("Ты либо самый лучший работник, либо тебе не доверяют проверку ПР ").append(Smile.MEGA_FUN).append(Smile.TWO_BREAK) - .append("Поздравляю, у тебя ни одного ПР на проверку!").append(Smile.BREAK); + message.append("Ты либо самый лучший работник, либо тебе не доверяют проверку ПР ").append(Smile.MEGA_FUN).append(Smile.TWO_BR) + .append("Поздравляю, у тебя ни одного ПР на проверку!").append(Smile.BR); } if (!pullRequestsNeedWork.isEmpty()) { - message.append(Smile.BREAK).append(Smile.DANGEROUS).append(" Так же у тебя на доработке находится ").append(pullRequestsNeedWork.size()).append(" ПР").append(Smile.BREAK); - message.append(needWorkPr(pullRequestsNeedWork)).append(Smile.BREAK); + message.append(Smile.BR).append(Smile.DANGEROUS).append(" Так же у тебя на доработке находится ").append(pullRequestsNeedWork.size()).append(" ПР").append(Smile.BR); + message.append(needWorkPr(pullRequestsNeedWork)).append(Smile.BR); } if (dayX()) { - message.append(Smile.BREAK).append(Smile.FUN).append(" Кстати, поздравляю, сегодня день З/П").append(Smile.BREAK) + message.append(Smile.BR).append(Smile.FUN).append(" Кстати, поздравляю, сегодня день З/П").append(Smile.BR) .append(Smile.DANGEROUS).append("И раз такое дело, то напоминаю, что в виду независящих от разработчика условий, бот работает на платном VDS. Поэтому всячески приветствуются ") - .append(link("донаты на оплату сервера", DONATION_LINK)).append(Smile.BREAK); + .append(link("донаты на оплату сервера", DONATION_LINK)).append(Smile.BR); } message - .append(Smile.BREAK) - .append("Удачного дня ").append(Smile.FLOWER).append(Smile.TWO_BREAK); + .append(Smile.BR) + .append("Удачного дня ").append(Smile.FLOWER).append(Smile.TWO_BR); return message.toString(); } @@ -134,7 +134,7 @@ public class Message { pullRequestsNeedWork.stream() .limit(3) .forEach( - pullRequest -> message.append("-- ").append(link(pullRequest.getName(), pullRequest.getUrl())).append(Smile.BREAK) + pullRequest -> message.append("-- ").append(link(pullRequest.getName(), pullRequest.getUrl())).append(Smile.BR) ); return message.toString(); } @@ -142,7 +142,7 @@ public class Message { private static String topPr(PullRequest pullRequest) { return Smile.statusPr(pullRequest.getUpdateDate()) + " " + link(pullRequest.getName(), pullRequest.getUrl()) + - Smile.BREAK; + Smile.BR; } private static boolean dayX() { @@ -157,13 +157,16 @@ public class Message { @NonNull public static String goodWeekEnd() { - return "Ну вот и все! Веселых выходных " + Smile.MIG + Smile.BREAK + - "До понедельника" + Smile.BUY + Smile.TWO_BREAK; + return "Ну вот и все! Веселых выходных " + Smile.MIG + Smile.BR + + "До понедельника" + Smile.BUY + Smile.TWO_BR; } - public static String personalNotify(@NonNull CommentJson comment, @NonNull String urlPr) { - return Smile.BELL + " Вам " + link("тут", urlPr) + " телеграмма пришла от " + comment.getAuthor().getName() + + public static String personalNotify(@NonNull CommentJson comment, @NonNull String namePr, @NonNull String urlPr) { + return Smile.BELL + " *Новое упоминание*" + Smile.BR + + link(namePr, urlPr) + Smile.HR + - comment.getText().replaceAll("@[\\w]+", ""); + comment.getText().replaceAll("@[\\w]+", "") + + Smile.HR + + Smile.AUTHOR + ": " + comment.getAuthor().getName(); } } diff --git a/src/main/java/com/tsc/bitbucketbot/utils/Smile.java b/src/main/java/com/tsc/bitbucketbot/utils/Smile.java index 3481ba2..20e58fd 100644 --- a/src/main/java/com/tsc/bitbucketbot/utils/Smile.java +++ b/src/main/java/com/tsc/bitbucketbot/utils/Smile.java @@ -9,8 +9,8 @@ import java.time.Period; @AllArgsConstructor public enum Smile { - BREAK("\n"), - TWO_BREAK("\n\n"), + BR("\n"), + TWO_BR("\n\n"), AUTHOR("\uD83D\uDC68\u200D\uD83D\uDCBB️"), PEN("✏️"), FUN("\uD83C\uDF89"),