From a691d0e80057a1befbef853fd3a58238e3513751 Mon Sep 17 00:00:00 2001
From: kosugikun <>
Date: Wed, 29 Mar 2023 14:32:10 +0900
Subject: [PATCH] =?UTF-8?q?=E4=B8=80=E9=83=A8=E3=81=AE=E8=8B=B1=E8=AA=9E?=
=?UTF-8?q?=E3=82=92=E3=82=AB=E3=82=BF=E3=82=AB=E3=83=8A=E3=81=AB=E8=87=AA?=
=?UTF-8?q?=E5=8B=95=E3=81=A7=E5=A4=89=E6=8F=9B=E3=81=97=E3=81=A6=E8=AA=AD?=
=?UTF-8?q?=E3=81=BF=E4=B8=8A=E3=81=92=E3=82=8B=E6=A9=9F=E8=83=BD=E3=82=92?=
=?UTF-8?q?=E5=AE=9F=E8=A3=85?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.idea/codeStyles/Project.xml | 7 ------
.idea/codeStyles/codeStyleConfig.xml | 1 +
.../bcae6d7f-dd17-487e-ab3f-743f9b393d89.xml | 6 ++---
pom.xml | 7 +++++-
src/main/java/dev/cosgy/textToSpeak/Bot.kt | 11 ++++-----
.../cosgy/textToSpeak/audio/AudioHandler.kt | 6 +++++
.../cosgy/textToSpeak/audio/VoiceCreation.kt | 23 ++++++++++++++++++-
7 files changed, 41 insertions(+), 20 deletions(-)
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
index ccec7b6..1bec35e 100644
--- a/.idea/codeStyles/Project.xml
+++ b/.idea/codeStyles/Project.xml
@@ -3,13 +3,6 @@
-
-
-
-
-
-
-
diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml
index a55e7a1..6e6eec1 100644
--- a/.idea/codeStyles/codeStyleConfig.xml
+++ b/.idea/codeStyles/codeStyleConfig.xml
@@ -1,5 +1,6 @@
+
\ No newline at end of file
diff --git a/.idea/dataSources/bcae6d7f-dd17-487e-ab3f-743f9b393d89.xml b/.idea/dataSources/bcae6d7f-dd17-487e-ab3f-743f9b393d89.xml
index dafa3ce..acb4919 100644
--- a/.idea/dataSources/bcae6d7f-dd17-487e-ab3f-743f9b393d89.xml
+++ b/.idea/dataSources/bcae6d7f-dd17-487e-ab3f-743f9b393d89.xml
@@ -1,9 +1,7 @@
-
-
- 3.40.1
-
+
+
diff --git a/pom.xml b/pom.xml
index 97fb5cf..b446fd8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -22,7 +22,7 @@
dev.cosgy
TextToSpeak
- 0.4.0
+ 0.4.0-beta.1
jar
@@ -143,6 +143,11 @@
1.8.20-RC2
compile
+
+ com.ibm.icu
+ icu4j
+ 69.1
+
diff --git a/src/main/java/dev/cosgy/textToSpeak/Bot.kt b/src/main/java/dev/cosgy/textToSpeak/Bot.kt
index 3b71538..6eb02f6 100644
--- a/src/main/java/dev/cosgy/textToSpeak/Bot.kt
+++ b/src/main/java/dev/cosgy/textToSpeak/Bot.kt
@@ -36,12 +36,12 @@ import java.util.function.Consumer
import kotlin.system.exitProcess
class Bot(val waiter: EventWaiter, val config: BotConfig, val settingsManager: SettingsManager) {
- val threadpool: ScheduledExecutorService
- private val lang: ResourceBundle
- val playerManager: PlayerManager
+ val threadpool: ScheduledExecutorService = Executors.newSingleThreadScheduledExecutor()
+ private val lang: ResourceBundle = ResourceBundle.getBundle("lang.yomiage", Locale.JAPAN)
+ val playerManager: PlayerManager = PlayerManager(this)
val voiceCreation: VoiceCreation
val userSettingsManager: UserSettingsManager
- val aloneInVoiceHandler: AloneInVoiceHandler
+ private val aloneInVoiceHandler: AloneInVoiceHandler
var log: Logger = LoggerFactory.getLogger(this.javaClass)
var dictionary: Dictionary? = null
private set
@@ -50,9 +50,6 @@ class Bot(val waiter: EventWaiter, val config: BotConfig, val settingsManager: S
private var gui: GUI? = null
init {
- lang = ResourceBundle.getBundle("lang.yomiage", Locale.JAPAN)
- threadpool = Executors.newSingleThreadScheduledExecutor()
- playerManager = PlayerManager(this)
playerManager.init()
voiceCreation = VoiceCreation(this)
userSettingsManager = UserSettingsManager()
diff --git a/src/main/java/dev/cosgy/textToSpeak/audio/AudioHandler.kt b/src/main/java/dev/cosgy/textToSpeak/audio/AudioHandler.kt
index 13dd1ca..1a77118 100644
--- a/src/main/java/dev/cosgy/textToSpeak/audio/AudioHandler.kt
+++ b/src/main/java/dev/cosgy/textToSpeak/audio/AudioHandler.kt
@@ -38,6 +38,9 @@ class AudioHandler(private val manager: PlayerManager, guild: Guild, val player:
stringGuildId = guild.id
}
+ /**
+ * 再生キューのトップに追加
+ */
fun addTrackToFront(qtrack: QueuedTrack): Int {
return if (player.playingTrack == null) {
player.playTrack(qtrack.track)
@@ -48,6 +51,9 @@ class AudioHandler(private val manager: PlayerManager, guild: Guild, val player:
}
}
+ /**
+ * 再生キューに追加
+ */
fun addTrack(qtrack: QueuedTrack): Int {
return if (player.playingTrack == null) {
player.playTrack(qtrack.track)
diff --git a/src/main/java/dev/cosgy/textToSpeak/audio/VoiceCreation.kt b/src/main/java/dev/cosgy/textToSpeak/audio/VoiceCreation.kt
index 8daca58..e815b5b 100644
--- a/src/main/java/dev/cosgy/textToSpeak/audio/VoiceCreation.kt
+++ b/src/main/java/dev/cosgy/textToSpeak/audio/VoiceCreation.kt
@@ -19,6 +19,7 @@ import dev.cosgy.textToSpeak.Bot
import dev.cosgy.textToSpeak.settings.UserSettings
import net.dv8tion.jda.api.entities.*
import org.apache.commons.io.FileUtils
+import com.ibm.icu.text.Transliterator
import org.slf4j.LoggerFactory
import java.io.*
import java.nio.file.Files
@@ -53,6 +54,9 @@ class VoiceCreation( // 各種設定の値を保持するためのフィール
for ((key, value) in words!!) {
dicMsg = dicMsg.replace(key!!.toRegex(), value!!)
}
+
+ toKatakanaIfEnglishExists(dicMsg)
+
val tmpFilePath = createTmpTextFile(guildId, fileId, dicMsg)
@@ -66,6 +70,23 @@ class VoiceCreation( // 各種設定の値を保持するためのフィール
return fileName
}
+ // 英単語をカタカナに変換するメソッド
+ private fun toKatakanaIfEnglishExists(message: String): String {
+ var englishExists = false
+ for (c in message) {
+ if (c in 'a'..'z' || c in 'A'..'Z') {
+ englishExists = true
+ break
+ }
+ }
+ return if (englishExists) {
+ val latinToKatakana = Transliterator.getInstance("Latin-Katakana")
+ latinToKatakana.transliterate(message)
+ } else {
+ message
+ }
+ }
+
// メッセージをサニタイズするメソッド
private fun sanitizeMessage(message: String): String {
var sanitizedMsg = message.replace("[\\uD800-\\uDFFF]".toRegex(), " ")
@@ -77,7 +98,7 @@ class VoiceCreation( // 各種設定の値を保持するためのフィール
val builder = StringBuilder()
while (sentences.next() != BreakIterator.DONE) {
val sentence = sanitizedMsg.substring(lastIndex, sentences.current())
- if (sentence.length + builder.length > maxMessageCount) {
+ if (maxMessageCount > 0 && sentence.length + builder.length > maxMessageCount) {
builder.append("以下略")
break
}