diff --git a/.github/workflows/bld.yml b/.github/workflows/bld.yml
index f76f164..cb0ad5d 100644
--- a/.github/workflows/bld.yml
+++ b/.github/workflows/bld.yml
@@ -22,8 +22,8 @@ jobs:
strategy:
matrix:
- java-version: [17, 21, 22]
- kotlin-version: [1.9.24, 2.0.20]
+ java-version: [17, 21, 23]
+ kotlin-version: [1.9.24, 2.0.20, 2.1.0]
steps:
- name: Checkout source repository
diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml
new file mode 100644
index 0000000..0273acf
--- /dev/null
+++ b/.idea/kotlinc.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/README.md b/README.md
index e438c94..b31ec67 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
# mobibot
[](https://opensource.org/licenses/BSD-3-Clause)
-[](https://kotlinlang.org)
+[](https://kotlinlang.org)
[](https://rife2.com/bld)
[](https://sonarcloud.io/summary/new_code?id=ethauvin_mobibot)
[](https://github.com/ethauvin/mobibot/actions/workflows/bld.yml)
diff --git a/deploy.fish b/deploy.fish
new file mode 100755
index 0000000..d69ee4e
--- /dev/null
+++ b/deploy.fish
@@ -0,0 +1,11 @@
+#!/usr/bin/env fish
+
+./bld clean jar deploy
+if test $status -eq 0
+ echo "cd /home/mobibot/mobitopia/mobibot
+lcd deploy
+put *.jar
+cd lib
+rm *.jar
+put lib/*.jar" | sftp nix4
+end
diff --git a/deploy.sh b/deploy.sh
deleted file mode 100755
index d1c1f23..0000000
--- a/deploy.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-
-./bld clean jar deploy
-[ $? -eq 0 ] && sftp nix4.thauvin.us <4.0.0
net.thauvin.erik.mobibot
mobibot
- 0.8.0-rc+20240908192921
+ 0.8.0-rc+20240918181213
mobibot
@@ -78,7 +78,7 @@
org.jetbrains.kotlinx
kotlinx-coroutines-core
- 1.8.1
+ 1.9.0
compile
diff --git a/src/bld/java/net/thauvin/erik/MobibotBuild.java b/src/bld/java/net/thauvin/erik/MobibotBuild.java
index 980f2a6..6800ec1 100644
--- a/src/bld/java/net/thauvin/erik/MobibotBuild.java
+++ b/src/bld/java/net/thauvin/erik/MobibotBuild.java
@@ -45,7 +45,6 @@ import rife.tools.exceptions.FileUtilsErrorException;
import java.io.File;
import java.io.IOException;
-import java.nio.file.Path;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
@@ -77,15 +76,15 @@ public class MobibotBuild extends Project {
new Repository("https://jitpack.io"),
SONATYPE_SNAPSHOTS_LEGACY);
- var log4j = version(2, 24, 0);
- var kotlin = version(2, 0, 20);
- var langchain = version(0, 34, 0);
+ var log4j = version(2, 24, 3);
+ var kotlin = version(2, 1, 0);
+ var langchain = version(0, 36, 2);
scope(compile)
// PircBotX
.include(dependency("com.github.pircbotx", "pircbotx", "2.3.1"))
// Commons (mostly for PircBotX)
.include(dependency("org.apache.commons", "commons-lang3", "3.17.0"))
- .include(dependency("org.apache.commons", "commons-text", "1.12.0"))
+ .include(dependency("org.apache.commons", "commons-text", "1.13.0"))
.include(dependency("commons-codec", "commons-codec", "1.17.1"))
.include(dependency("commons-net", "commons-net", "3.11.1"))
// Google
@@ -96,7 +95,7 @@ public class MobibotBuild extends Project {
.include(dependency("org.jetbrains.kotlin", "kotlin-stdlib-common", kotlin))
.include(dependency("org.jetbrains.kotlin", "kotlin-stdlib-jdk7", kotlin))
.include(dependency("org.jetbrains.kotlin", "kotlin-stdlib-jdk8", kotlin))
- .include(dependency("org.jetbrains.kotlinx", "kotlinx-coroutines-core", "1.8.1"))
+ .include(dependency("org.jetbrains.kotlinx", "kotlinx-coroutines-core", "1.10.1"))
.include(dependency("org.jetbrains.kotlinx", "kotlinx-cli-jvm", "0.3.6"))
// Logging
.include(dependency("org.slf4j", "slf4j-api", "2.0.16"))
@@ -114,17 +113,17 @@ public class MobibotBuild extends Project {
.include(dependency("net.aksingh", "owm-japis", "2.5.3.0"))
.include(dependency("net.objecthunter", "exp4j", "0.4.8"))
.include(dependency("org.json", "json", "20240303"))
- .include(dependency("org.jsoup", "jsoup", "1.18.1"))
+ .include(dependency("org.jsoup", "jsoup", "1.18.3"))
// Thauvin
.include(dependency("net.thauvin.erik", "cryptoprice", "1.0.3-SNAPSHOT"))
.include(dependency("net.thauvin.erik", "jokeapi", "0.9.2-SNAPSHOT"))
.include(dependency("net.thauvin.erik", "pinboard-poster", "1.1.2-SNAPSHOT"))
- .include(dependency("net.thauvin.erik.urlencoder", "urlencoder-lib-jvm", "1.5.0"));
+ .include(dependency("net.thauvin.erik.urlencoder", "urlencoder-lib-jvm", "1.6.0"));
scope(test)
.include(dependency("com.willowtreeapps.assertk", "assertk-jvm", version(0, 28, 1)))
.include(dependency("org.jetbrains.kotlin", "kotlin-test-junit5", kotlin))
- .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 11, 0)))
- .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 11, 0)));
+ .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 11, 4)))
+ .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 11, 4)));
List jars = new ArrayList<>();
runtimeClasspathJars().forEach(f -> jars.add("./lib/" + f.getName()));
@@ -142,7 +141,10 @@ public class MobibotBuild extends Project {
@Override
public void clean() throws Exception {
- FileUtils.deleteDirectory(new File("deploy"));
+ var deploy = new File("deploy");
+ if (deploy.exists()) {
+ FileUtils.deleteDirectory(deploy);
+ }
super.clean();
}
@@ -150,9 +152,11 @@ public class MobibotBuild extends Project {
@Override
public void compile() throws Exception {
releaseInfo();
- new CompileKotlinOperation()
- .fromProject(this)
- .execute();
+ var op = new CompileKotlinOperation()
+ .kotlinHome("/opt/kotlinc/")
+ .fromProject(this);
+ op.compileOptions().verbose(true);
+ op.execute();
}
@Override
@@ -201,6 +205,12 @@ public class MobibotBuild extends Project {
.execute();
}
+ @BuildCommand(value = "pom-root", summary = "Generates the POM file in the root directory")
+ public void pomRoot() throws FileUtilsErrorException {
+ PomBuilder.generateInto(publishOperation().fromProject(this).info(), dependencies(),
+ new File(workDirectory, "pom.xml"));
+ }
+
@BuildCommand(value = "release-info", summary = "Generates the ReleaseInfo class")
public void releaseInfo() throws Exception {
new GeneratedVersionOperation()
@@ -212,10 +222,4 @@ public class MobibotBuild extends Project {
.extension(".kt")
.execute();
}
-
- @BuildCommand(value = "pom-root", summary = "Generates the POM file in the root directory")
- public void pomRoot() throws FileUtilsErrorException {
- PomBuilder.generateInto(publishOperation().fromProject(this).info(), dependencies(),
- new File(workDirectory, "pom.xml"));
- }
}
diff --git a/src/main/kotlin/net/thauvin/erik/mobibot/Utils.kt b/src/main/kotlin/net/thauvin/erik/mobibot/Utils.kt
index 6a8e4ff..92b4883 100644
--- a/src/main/kotlin/net/thauvin/erik/mobibot/Utils.kt
+++ b/src/main/kotlin/net/thauvin/erik/mobibot/Utils.kt
@@ -421,14 +421,22 @@ object Utils {
@Throws(IOException::class)
fun URL.reader(): UrlReaderResponse {
val connection = this.openConnection() as HttpURLConnection
- connection.setRequestProperty(
- "User-Agent",
- "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/109.0"
- )
- return if (connection.responseCode.isHttpSuccess()) {
- UrlReaderResponse(connection.responseCode, connection.inputStream.bufferedReader().use { it.readText() })
- } else {
- UrlReaderResponse(connection.responseCode, connection.errorStream.bufferedReader().use { it.readText() })
+ try {
+ connection.setRequestProperty(
+ "User-Agent",
+ "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/109.0"
+ )
+ return if (connection.responseCode.isHttpSuccess()) {
+ UrlReaderResponse(
+ connection.responseCode,
+ connection.inputStream.bufferedReader().use { it.readText() })
+ } else {
+ UrlReaderResponse(
+ connection.responseCode,
+ connection.errorStream.bufferedReader().use { it.readText() })
+ }
+ } finally {
+ connection.disconnect()
}
}
diff --git a/src/main/kotlin/net/thauvin/erik/mobibot/modules/Gemini2.kt b/src/main/kotlin/net/thauvin/erik/mobibot/modules/Gemini2.kt
index 812aed3..365fe60 100644
--- a/src/main/kotlin/net/thauvin/erik/mobibot/modules/Gemini2.kt
+++ b/src/main/kotlin/net/thauvin/erik/mobibot/modules/Gemini2.kt
@@ -39,7 +39,6 @@ import org.slf4j.Logger
import org.slf4j.LoggerFactory
import java.util.*
-
class Gemini2 : AbstractModule() {
private val logger: Logger = LoggerFactory.getLogger(Gemini2::class.java)