Closed book000 closed 2 months ago
https://httpclock.yr32.net/ のようなヤバいURLが投げられると、そのままtitleパースがうまくいかなかったり読み上げ開始に時間がかかる 上記の場合、jaoで導入している新バージョン(VCSpeaker.kt)の実装では、10秒程度で読み上げられるが、JDA-VCSpeakerの場合は InterruptedIOException 例外を吐いて落ちる (多分タイムアウト)
https://httpclock.yr32.net/
https://github.com/jaoafa/VCSpeaker.kt/blob/d67b29628c489e12030f24a2d90213b0bb531a3b/src/main/kotlin/com/jaoafa/vcspeaker/tts/replacers/UrlReplacer.kt#L315
現状のロジックとして、isClosedForReadしない場合は2048バイトが来るまで待つ したがって、例えば、1byteを1秒で送り続けるhttp serverを用意した場合、現状実装ではVoiceText APIへのリクエストまでに2048秒の待ちが発生する。
以下二つのロジックで改善できないか?
https://ktor.io/docs/client-timeout.html
今日やります 今日やらなかったら時間なかったんだなって思ってください
宣言しとくのはえらい
https://httpclock.yr32.net/
のようなヤバいURLが投げられると、そのままtitleパースがうまくいかなかったり読み上げ開始に時間がかかる 上記の場合、jaoで導入している新バージョン(VCSpeaker.kt)の実装では、10秒程度で読み上げられるが、JDA-VCSpeakerの場合は InterruptedIOException 例外を吐いて落ちる (多分タイムアウト)https://github.com/jaoafa/VCSpeaker.kt/blob/d67b29628c489e12030f24a2d90213b0bb531a3b/src/main/kotlin/com/jaoafa/vcspeaker/tts/replacers/UrlReplacer.kt#L315
現状のロジックとして、isClosedForReadしない場合は2048バイトが来るまで待つ したがって、例えば、1byteを1秒で送り続けるhttp serverを用意した場合、現状実装ではVoiceText APIへのリクエストまでに2048秒の待ちが発生する。
以下二つのロジックで改善できないか?