diff --git a/build.gradle.kts b/build.gradle.kts index 02f657a..890297c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -25,24 +25,24 @@ implementation("com.ibm.icu:icu4j:75.1") implementation("com.lmax:disruptor:4.0.0") implementation("com.sun.mail:jakarta.mail:2.0.1") - implementation("commons-codec:commons-codec:1.17.0") + implementation("commons-codec:commons-codec:1.17.1") implementation("commons-io:commons-io:2.16.1") implementation("io.netty:netty-all:4.1.111.Final") implementation("jakarta.mail:jakarta.mail-api:2.1.3") implementation("net.dv8tion:JDA:5.0.0-beta.24") implementation("org.apache.commons:commons-compress:1.26.2") implementation("org.apache.commons:commons-dbcp2:2.12.0") - implementation("org.apache.commons:commons-lang3:3.14.0") + implementation("org.apache.commons:commons-lang3:3.15.0") implementation("org.apache.httpcomponents.client5:httpclient5:5.3.1") implementation("org.apache.logging.log4j:log4j-core:2.23.1") implementation("org.apache.logging.log4j:log4j-slf4j2-impl:2.23.1") - implementation("org.jline:jline:3.26.2") - implementation("org.jline:jline-terminal-jansi:3.26.2") - implementation("org.jsoup:jsoup:1.17.2") - implementation("org.mariadb.jdbc:mariadb-java-client:3.4.0") + implementation("org.jline:jline:3.26.3") + implementation("org.jline:jline-terminal-jansi:3.26.3") + implementation("org.jsoup:jsoup:1.18.1") + implementation("org.mariadb.jdbc:mariadb-java-client:3.4.1") implementation("org.python:jython-standalone:2.7.3") - implementation("org.seleniumhq.selenium:selenium-edge-driver:4.22.0") - implementation("org.seleniumhq.selenium:selenium-java:4.22.0") + implementation("org.seleniumhq.selenium:selenium-edge-driver:4.23.0") + implementation("org.seleniumhq.selenium:selenium-java:4.23.0") implementation("org.tukaani:xz:1.9") implementation(kotlin("stdlib-jdk8")) testImplementation(kotlin("test")) @@ -73,4 +73,4 @@ fatJar { archiveFileName.set("Twilight.jar") } -} \ No newline at end of file +} diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index db4c326..ab79162 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists \ No newline at end of file diff --git a/src/main/kotlin/net/taehui/twilight/Twilight.kt b/src/main/kotlin/net/taehui/twilight/Twilight.kt index fc464c0..ea7cc95 100644 --- a/src/main/kotlin/net/taehui/twilight/Twilight.kt +++ b/src/main/kotlin/net/taehui/twilight/Twilight.kt @@ -82,6 +82,7 @@ TVSystem.handleSystem() WitSystem.handleSystem() + AutoLoadingSystem.handleSystem() try { val sslContext = Files.newInputStream(Paths.get("Twilight.jks")).use { val keyStore = KeyStore.getInstance(KeyStore.getDefaultType()) diff --git a/src/main/kotlin/net/taehui/twilight/system/AutoLoadingSystem.kt b/src/main/kotlin/net/taehui/twilight/system/AutoLoadingSystem.kt new file mode 100644 index 0000000..b8e1cba --- /dev/null +++ b/src/main/kotlin/net/taehui/twilight/system/AutoLoadingSystem.kt @@ -0,0 +1,47 @@ +package net.taehui.twilight.system + +import net.taehui.twilight.Logger +import net.taehui.twilight.TwilightComponent +import org.apache.commons.io.FilenameUtils +import java.nio.file.* +import java.util.concurrent.Executors +import java.util.concurrent.ScheduledExecutorService + +object AutoLoadingSystem : Logger { + private val ws = FileSystems.getDefault().newWatchService() + + fun handleSystem() { + logFuture { + ws.use { + TwilightComponent.SYSTEM_ENTRY_PATH.register(ws, StandardWatchEventKinds.ENTRY_MODIFY) + TwilightComponent.DEFAULT_NOTE_ENTRY.register(ws, StandardWatchEventKinds.ENTRY_MODIFY) + TwilightComponent.DEFAULT_UI_ENTRY.register(ws, StandardWatchEventKinds.ENTRY_MODIFY) + while (true) { + val tws = ws.take() + tws.pollEvents().forEach { + val filePath = (tws.watchable() as Path).resolve(it.context() as Path) + val fileName = filePath.fileName.toString() + when (filePath.parent.fileName.toString()) { + "Note", "UI" -> { + if (FilenameUtils.isExtension(fileName, "zip") || FilenameUtils.isExtension( + fileName, + "rar" + ) + ) { + Configure.loadDefaultDate() + } + } + + "System" -> { + when (fileName) { + "Awilight.py" -> AwilightHandler.loadAwilight() + } + } + } + } + tws.reset() + } + } + } + } +} \ No newline at end of file diff --git a/src/main/kotlin/net/taehui/twilight/system/Configure.kt b/src/main/kotlin/net/taehui/twilight/system/Configure.kt index 7db1beb..e52f33f 100644 --- a/src/main/kotlin/net/taehui/twilight/system/Configure.kt +++ b/src/main/kotlin/net/taehui/twilight/system/Configure.kt @@ -87,7 +87,6 @@ class Mode { var platform = false var tv = false - @JsonIgnore var pause = false } @@ -112,10 +111,8 @@ lateinit var www: Www lateinit var nhn: NHN var awilightCount = 0 - @JsonIgnore var defaultNoteDate = 0L - @JsonIgnore var defaultUIDate = 0L @@ -126,11 +123,18 @@ it[this] = it[text] ?: throw RuntimeException(it.name) } } - defaultNoteDate = Files.getLastModifiedTime(TwilightComponent.DEFAULT_NOTE_ENTRY).to(TimeUnit.MILLISECONDS) - defaultUIDate = Files.getLastModifiedTime(TwilightComponent.DEFAULT_UI_ENTRY).to(TimeUnit.MILLISECONDS) logInfo("Loaded Configure") saveConfigure() + + loadDefaultDate() + } + + fun loadDefaultDate() { + defaultNoteDate = Files.getLastModifiedTime(TwilightComponent.DEFAULT_NOTE_ENTRY).to(TimeUnit.MILLISECONDS) + defaultUIDate = Files.getLastModifiedTime(TwilightComponent.DEFAULT_UI_ENTRY).to(TimeUnit.MILLISECONDS) + + logInfo("Loaded Default Date") } fun saveConfigure() {