From f49d430c61f37bbe23f1ada87816fed7705d20ef Mon Sep 17 00:00:00 2001 From: Firas RG Date: Thu, 4 Jul 2024 17:30:42 +0100 Subject: [PATCH 01/12] prevent chatgpt autopost when attachment is available (#1121) (#1133) --- .../tjbot/features/help/HelpThreadCreatedListener.java | 2 +- .../tjbot/features/utils/MessageUtils.java | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/application/src/main/java/org/togetherjava/tjbot/features/help/HelpThreadCreatedListener.java b/application/src/main/java/org/togetherjava/tjbot/features/help/HelpThreadCreatedListener.java index e01a879e82..12ee788fa1 100644 --- a/application/src/main/java/org/togetherjava/tjbot/features/help/HelpThreadCreatedListener.java +++ b/application/src/main/java/org/togetherjava/tjbot/features/help/HelpThreadCreatedListener.java @@ -104,7 +104,7 @@ private RestAction createAIResponse(ThreadChannel threadChannel, Messag } private static boolean isContextSufficient(Message message) { - return !MessageUtils.containsImage(message) + return !MessageUtils.containsAttachments(message) && !LinkDetection.containsLink(message.getContentRaw()); } diff --git a/application/src/main/java/org/togetherjava/tjbot/features/utils/MessageUtils.java b/application/src/main/java/org/togetherjava/tjbot/features/utils/MessageUtils.java index cb04c9e634..615e379a3c 100644 --- a/application/src/main/java/org/togetherjava/tjbot/features/utils/MessageUtils.java +++ b/application/src/main/java/org/togetherjava/tjbot/features/utils/MessageUtils.java @@ -221,16 +221,16 @@ public static Optional extractCode(String fullMessage) { } /** - * Checks if a given message contains any image attachments. - * + * Checks if a given message contains any attachments. + * * @param message the message to be checked - * @return {@code true} if the message contains at least one image attachment + * @return {@code true} if the message contains at least one attachment * * @see Message * @see Message.Attachment */ - public static boolean containsImage(Message message) { - return message.getAttachments().stream().anyMatch(Message.Attachment::isImage); + public static boolean containsAttachments(Message message) { + return !message.getAttachments().isEmpty(); } } From 068b379f9d7732f4455b21caf8fdeca3e43fedb1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 27 Sep 2024 10:44:29 +0000 Subject: [PATCH 02/12] Bump org.flywaydb:flyway-core from 10.13.0 to 10.17.2 (#1156) Bumps [org.flywaydb:flyway-core](https://github.com/flyway/flyway) from 10.13.0 to 10.17.2. - [Release notes](https://github.com/flyway/flyway/releases) - [Commits](https://github.com/flyway/flyway/compare/flyway-10.13.0...flyway-10.17.2) --- updated-dependencies: - dependency-name: org.flywaydb:flyway-core dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- database/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/database/build.gradle b/database/build.gradle index f9e56dfb72..a34c2e3a01 100644 --- a/database/build.gradle +++ b/database/build.gradle @@ -7,7 +7,7 @@ var sqliteVersion = "3.45.0.0" dependencies { implementation 'com.google.code.findbugs:jsr305:3.0.2' implementation "org.xerial:sqlite-jdbc:${sqliteVersion}" - implementation 'org.flywaydb:flyway-core:10.13.0' + implementation 'org.flywaydb:flyway-core:10.17.2' implementation "org.jooq:jooq:$jooqVersion" implementation project(':utils') From b964de290ec35850d1fc7b94cebb7b3d4ee3f96f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 27 Sep 2024 10:46:02 +0000 Subject: [PATCH 03/12] Bump org.sonarqube from 5.0.0.4638 to 5.1.0.4882 (#1138) Bumps org.sonarqube from 5.0.0.4638 to 5.1.0.4882. --- updated-dependencies: - dependency-name: org.sonarqube dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 3f6d5863ff..3afbde256d 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,7 @@ plugins { id 'java' id "com.diffplug.spotless" version "6.25.0" - id "org.sonarqube" version "5.0.0.4638" + id "org.sonarqube" version "5.1.0.4882" id "name.remal.sonarlint" version "4.2.2" } From 39750cdde0e5c45e7b2867fc3e5badc861179bcf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 27 Sep 2024 10:46:08 +0000 Subject: [PATCH 04/12] Bump org.jsoup:jsoup from 1.17.1 to 1.18.1 (#1139) Bumps [org.jsoup:jsoup](https://github.com/jhy/jsoup) from 1.17.1 to 1.18.1. - [Release notes](https://github.com/jhy/jsoup/releases) - [Changelog](https://github.com/jhy/jsoup/blob/master/CHANGES.md) - [Commits](https://github.com/jhy/jsoup/compare/jsoup-1.17.1...jsoup-1.18.1) --- updated-dependencies: - dependency-name: org.jsoup:jsoup dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- application/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/build.gradle b/application/build.gradle index 320ccc6f19..e69cca4387 100644 --- a/application/build.gradle +++ b/application/build.gradle @@ -57,7 +57,7 @@ dependencies { implementation 'io.mikael:urlbuilder:2.0.9' - implementation 'org.jsoup:jsoup:1.17.1' + implementation 'org.jsoup:jsoup:1.18.1' implementation 'org.scilab.forge:jlatexmath:1.0.7' implementation 'org.scilab.forge:jlatexmath-font-greek:1.0.7' From 178549c0e09c9356fe29c8c5000b3363de3ab955 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 27 Sep 2024 10:46:21 +0000 Subject: [PATCH 05/12] Bump com.apptasticsoftware:rssreader from 3.6.0 to 3.8.1 (#1148) Bumps [com.apptasticsoftware:rssreader](https://github.com/w3stling/rssreader) from 3.6.0 to 3.8.1. - [Release notes](https://github.com/w3stling/rssreader/releases) - [Commits](https://github.com/w3stling/rssreader/compare/v3.6.0...v3.8.1) --- updated-dependencies: - dependency-name: com.apptasticsoftware:rssreader dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- application/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/build.gradle b/application/build.gradle index e69cca4387..5c335adbdb 100644 --- a/application/build.gradle +++ b/application/build.gradle @@ -78,7 +78,7 @@ dependencies { implementation 'org.kohsuke:github-api:1.321' implementation 'org.apache.commons:commons-text:1.12.0' - implementation 'com.apptasticsoftware:rssreader:3.6.0' + implementation 'com.apptasticsoftware:rssreader:3.8.1' testImplementation 'org.mockito:mockito-core:5.12.0' testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.0' From 4e94f90258d35e67a8e46761a8d2d0d4120a1474 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 27 Sep 2024 10:46:33 +0000 Subject: [PATCH 06/12] Bump org.junit.jupiter:junit-jupiter-params from 5.10.0 to 5.11.0 (#1150) Bumps [org.junit.jupiter:junit-jupiter-params](https://github.com/junit-team/junit5) from 5.10.0 to 5.11.0. - [Release notes](https://github.com/junit-team/junit5/releases) - [Commits](https://github.com/junit-team/junit5/compare/r5.10.0...r5.11.0) --- updated-dependencies: - dependency-name: org.junit.jupiter:junit-jupiter-params dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- application/build.gradle | 2 +- formatter/build.gradle | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/application/build.gradle b/application/build.gradle index 5c335adbdb..069d60db98 100644 --- a/application/build.gradle +++ b/application/build.gradle @@ -82,7 +82,7 @@ dependencies { testImplementation 'org.mockito:mockito-core:5.12.0' testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.0' - testImplementation 'org.junit.jupiter:junit-jupiter-params:5.10.0' + testImplementation 'org.junit.jupiter:junit-jupiter-params:5.11.0' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.10.0' diff --git a/formatter/build.gradle b/formatter/build.gradle index d86473ff90..b7e56d0d50 100644 --- a/formatter/build.gradle +++ b/formatter/build.gradle @@ -7,7 +7,7 @@ dependencies { implementation project(':utils') testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.0' - testImplementation 'org.junit.jupiter:junit-jupiter-params:5.10.0' + testImplementation 'org.junit.jupiter:junit-jupiter-params:5.11.0' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.10.0' } From af3cc05f0fb9d1c4474b91589e4900349b434717 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 27 Sep 2024 10:52:00 +0000 Subject: [PATCH 07/12] Bump org.xerial:sqlite-jdbc from 3.45.0.0 to 3.46.1.0 (#1153) Bumps [org.xerial:sqlite-jdbc](https://github.com/xerial/sqlite-jdbc) from 3.45.0.0 to 3.46.1.0. - [Release notes](https://github.com/xerial/sqlite-jdbc/releases) - [Changelog](https://github.com/xerial/sqlite-jdbc/blob/master/CHANGELOG) - [Commits](https://github.com/xerial/sqlite-jdbc/compare/3.45.0.0...3.46.1.0) --- updated-dependencies: - dependency-name: org.xerial:sqlite-jdbc dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- application/build.gradle | 2 +- database/build.gradle | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/application/build.gradle b/application/build.gradle index 069d60db98..56bd381d83 100644 --- a/application/build.gradle +++ b/application/build.gradle @@ -1,6 +1,6 @@ buildscript { dependencies { - classpath 'org.xerial:sqlite-jdbc:3.45.0.0' + classpath 'org.xerial:sqlite-jdbc:3.46.1.0' } } diff --git a/database/build.gradle b/database/build.gradle index a34c2e3a01..9f996e19fb 100644 --- a/database/build.gradle +++ b/database/build.gradle @@ -2,7 +2,7 @@ plugins { id 'java' } -var sqliteVersion = "3.45.0.0" +var sqliteVersion = "3.46.1.0" dependencies { implementation 'com.google.code.findbugs:jsr305:3.0.2' From 0cfe4db0bd9a1993d41ba39b190ec29e091a4bae Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 27 Sep 2024 10:52:14 +0000 Subject: [PATCH 08/12] Bump org.kohsuke:github-api from 1.321 to 1.324 (#1154) Bumps [org.kohsuke:github-api](https://github.com/hub4j/github-api) from 1.321 to 1.324. - [Release notes](https://github.com/hub4j/github-api/releases) - [Changelog](https://github.com/hub4j/github-api/blob/main/CHANGELOG.md) - [Commits](https://github.com/hub4j/github-api/compare/github-api-1.321...github-api-1.324) --- updated-dependencies: - dependency-name: org.kohsuke:github-api dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- application/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/build.gradle b/application/build.gradle index 56bd381d83..e1d1c77539 100644 --- a/application/build.gradle +++ b/application/build.gradle @@ -75,7 +75,7 @@ dependencies { implementation 'com.github.ben-manes.caffeine:caffeine:3.1.1' - implementation 'org.kohsuke:github-api:1.321' + implementation 'org.kohsuke:github-api:1.324' implementation 'org.apache.commons:commons-text:1.12.0' implementation 'com.apptasticsoftware:rssreader:3.8.1' From 4b2350ca2915985f4442e57d28b53e7eb6292758 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 27 Sep 2024 10:54:27 +0000 Subject: [PATCH 09/12] Bump org.junit.jupiter:junit-jupiter-engine from 5.10.0 to 5.11.1 (#1168) Bumps [org.junit.jupiter:junit-jupiter-engine](https://github.com/junit-team/junit5) from 5.10.0 to 5.11.1. - [Release notes](https://github.com/junit-team/junit5/releases) - [Commits](https://github.com/junit-team/junit5/compare/r5.10.0...r5.11.1) --- updated-dependencies: - dependency-name: org.junit.jupiter:junit-jupiter-engine dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- application/build.gradle | 2 +- formatter/build.gradle | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/application/build.gradle b/application/build.gradle index e1d1c77539..45fa3f03af 100644 --- a/application/build.gradle +++ b/application/build.gradle @@ -84,7 +84,7 @@ dependencies { testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.0' testImplementation 'org.junit.jupiter:junit-jupiter-params:5.11.0' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.10.0' + testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.11.1' implementation "com.theokanning.openai-gpt3-java:api:$chatGPTVersion" implementation "com.theokanning.openai-gpt3-java:service:$chatGPTVersion" diff --git a/formatter/build.gradle b/formatter/build.gradle index b7e56d0d50..aeda44f388 100644 --- a/formatter/build.gradle +++ b/formatter/build.gradle @@ -8,6 +8,6 @@ dependencies { testImplementation 'org.junit.jupiter:junit-jupiter-api:5.10.0' testImplementation 'org.junit.jupiter:junit-jupiter-params:5.11.0' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.10.0' + testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.11.1' } From 6ee7eba609316eaecbeb3e56328705a1e74bf819 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 27 Sep 2024 10:54:55 +0000 Subject: [PATCH 10/12] Bump net.dv8tion:JDA from 5.0.0-beta.21 to 5.1.0 (#1155) Bumps [net.dv8tion:JDA](https://github.com/discord-jda/JDA) from 5.0.0-beta.21 to 5.1.0. - [Release notes](https://github.com/discord-jda/JDA/releases) - [Commits](https://github.com/discord-jda/JDA/compare/v5.0.0-beta.21...v5.1.0) --- updated-dependencies: - dependency-name: net.dv8tion:JDA dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- application/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/build.gradle b/application/build.gradle index 45fa3f03af..08282a6890 100644 --- a/application/build.gradle +++ b/application/build.gradle @@ -46,7 +46,7 @@ dependencies { implementation project(':utils') implementation project(':formatter') - implementation 'net.dv8tion:JDA:5.0.0-beta.21' + implementation 'net.dv8tion:JDA:5.1.0' implementation 'org.apache.logging.log4j:log4j-core:2.23.0' runtimeOnly 'org.apache.logging.log4j:log4j-slf4j18-impl:2.18.0' From 4173da43c9766572dac1a5c876dc941f7025aea0 Mon Sep 17 00:00:00 2001 From: alphaBEE <61616007+ankitsmt211@users.noreply.github.com> Date: Fri, 27 Sep 2024 17:20:58 +0530 Subject: [PATCH 11/12] Bugfix/npe help thread close (#1160) * handle thread channel no longer exists * apply spotless * remove logger, no longer needed * handle unexpected errors while marking threads archived in database * spotless formatting * suppress warning from sonar for usage of throwable * catch base exception instead of throwable --- .../help/HelpThreadLifecycleListener.java | 17 +++++++++++++++-- .../help/MarkHelpThreadCloseInDBRoutine.java | 8 +++----- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/application/src/main/java/org/togetherjava/tjbot/features/help/HelpThreadLifecycleListener.java b/application/src/main/java/org/togetherjava/tjbot/features/help/HelpThreadLifecycleListener.java index 3c2e778ba1..3669ed2517 100644 --- a/application/src/main/java/org/togetherjava/tjbot/features/help/HelpThreadLifecycleListener.java +++ b/application/src/main/java/org/togetherjava/tjbot/features/help/HelpThreadLifecycleListener.java @@ -1,5 +1,6 @@ package org.togetherjava.tjbot.features.help; +import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.entities.channel.concrete.ThreadChannel; import net.dv8tion.jda.api.entities.channel.forums.ForumTag; import net.dv8tion.jda.api.events.channel.update.ChannelUpdateAppliedTagsEvent; @@ -75,14 +76,25 @@ private void handleThreadStatus(ThreadChannel threadChannel) { boolean isArchived = threadChannel.isArchived(); if (isArchived) { - handleArchiveStatus(closedAt, threadChannel); + handleArchiveStatus(closedAt, threadId, threadChannel.getJDA()); return; } updateThreadStatusToActive(threadId); } - void handleArchiveStatus(Instant closedAt, ThreadChannel threadChannel) { + void handleArchiveStatus(Instant closedAt, long id, JDA jda) { + ThreadChannel threadChannel = jda.getThreadChannelById(id); + if (threadChannel == null) { + logger.info("thread with id: {} no longer exists, marking archived in records", id); + database.write(context -> context.update(HELP_THREADS) + .set(HELP_THREADS.CLOSED_AT, closedAt) + .set(HELP_THREADS.TICKET_STATUS, HelpSystemHelper.TicketStatus.ARCHIVED.val) + .where(HELP_THREADS.CHANNEL_ID.eq(id)) + .execute()); + return; + } + long threadId = threadChannel.getIdLong(); int messageCount = threadChannel.getMessageCount(); int participantsExceptAuthor = threadChannel.getMemberCount() - 1; @@ -96,6 +108,7 @@ void handleArchiveStatus(Instant closedAt, ThreadChannel threadChannel) { .execute()); logger.info("Thread with id: {}, updated to archived status in database", threadId); + } private void updateThreadStatusToActive(long threadId) { diff --git a/application/src/main/java/org/togetherjava/tjbot/features/help/MarkHelpThreadCloseInDBRoutine.java b/application/src/main/java/org/togetherjava/tjbot/features/help/MarkHelpThreadCloseInDBRoutine.java index ec96d77c72..65cca49c6b 100644 --- a/application/src/main/java/org/togetherjava/tjbot/features/help/MarkHelpThreadCloseInDBRoutine.java +++ b/application/src/main/java/org/togetherjava/tjbot/features/help/MarkHelpThreadCloseInDBRoutine.java @@ -1,7 +1,6 @@ package org.togetherjava.tjbot.features.help; import net.dv8tion.jda.api.JDA; -import net.dv8tion.jda.api.entities.channel.concrete.ThreadChannel; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -59,13 +58,12 @@ private void updateTicketStatus(JDA jda) { .map(HelpThreadsRecord::getChannelId) .toList()); - threadIdsToClose.forEach(id -> { try { - ThreadChannel threadChannel = jda.getThreadChannelById(id); - helpThreadLifecycleListener.handleArchiveStatus(now, threadChannel); + helpThreadLifecycleListener.handleArchiveStatus(now, id, jda); } catch (Exception exception) { - logger.warn("unable to mark thread as close with id :{}", id, exception); + logger.warn("Failed to update status of thread with id: {} to archived", id, + exception); } }); } From 817e0449e4ce4e921ee30a506795b31f5c203819 Mon Sep 17 00:00:00 2001 From: Andrew1031 <46513900+Andrew1031@users.noreply.github.com> Date: Fri, 27 Sep 2024 05:04:10 -0700 Subject: [PATCH 12/12] Remove backsticks in /jshell version (#1164) Co-authored-by: Andrew1031 --- .../org/togetherjava/tjbot/features/jshell/JShellCommand.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/application/src/main/java/org/togetherjava/tjbot/features/jshell/JShellCommand.java b/application/src/main/java/org/togetherjava/tjbot/features/jshell/JShellCommand.java index 629ff3acd9..f5ebe81f3f 100644 --- a/application/src/main/java/org/togetherjava/tjbot/features/jshell/JShellCommand.java +++ b/application/src/main/java/org/togetherjava/tjbot/features/jshell/JShellCommand.java @@ -111,12 +111,11 @@ public void onModalSubmitted(ModalInteractionEvent event, List args) { private void handleVersionCommand(SlashCommandInteractionEvent event) { String code = """ - System.out.println("```"); System.out.println("Version: " + Runtime.version()); System.out.println("Vendor: " + System.getProperty("java.vendor")); System.out.println("OS: " + System.getProperty("os.name")); System.out.println("Arch: " + System.getProperty("os.arch")); - System.out.println("```");"""; + """; handleEval(event, null, false, code, false); }