@@ -66,6 +66,7 @@ open class LibreTranslateInstance(val url: String, private var weight: Int, val
6666 return try {
6767 batchTranslate(from.code, to.code, texts)
6868 } catch (e: Exception ) {
69+ e.printStackTrace()
6970 null
7071 }
7172 }
@@ -121,34 +122,50 @@ open class LibreTranslateInstance(val url: String, private var weight: Int, val
121122
122123 val writer = OutputStreamWriter (httpConn.outputStream, " UTF-8" )
123124
124- writer.write(JsonObject ().apply {
125- addProperty(" source" , from)
126- addProperty(" target" , to)
127- add(" q" , JsonArray ().apply {
128- for (s in request) {
129- this .add(s)
125+ try {
126+ writer.write(JsonObject ().apply {
127+ addProperty(" source" , from)
128+ addProperty(" target" , to)
129+ add(" q" , JsonArray ().apply {
130+ for (s in request) {
131+ this .add(s)
132+ }
133+ })
134+
135+ if (authKey?.isNotBlank() == true )
136+ addProperty(" api_key" , authKey)
137+ }.toString())
138+
139+ writer.flush()
140+ writer.close()
141+ httpConn.outputStream.close()
142+ if (httpConn.responseCode / 100 != 2 ) {
143+ httpConn.disconnect()
144+ throw Exception (" Failed to load ${this .url} /translate (code ${httpConn.responseCode} )" )
145+ } else {
146+ val responseStream = httpConn.inputStream
147+ val s = Scanner (responseStream, " UTF-8" ).useDelimiter(" \\ A" )
148+
149+ try {
150+ val response = if (s.hasNext()) s.next() else " "
151+
152+ val translated = JsonParser .parseString(response).asJsonObject.get(" translatedText" ).asJsonArray
153+
154+ httpConn.disconnect()
155+ s.close()
156+ return translated.map { it.asString }
157+ } catch (e: Exception ) {
158+ httpConn.disconnect()
159+ s.close()
160+
161+ throw e
130162 }
131- })
132-
133- if (authKey?.isNotBlank() == true )
134- addProperty(" api_key" , authKey)
135- }.toString())
136-
137- writer.flush()
138- writer.close()
139- httpConn.outputStream.close()
140- if (httpConn.responseCode / 100 != 2 ) {
141- throw Exception (" Failed to load ${this .url} /translate (code ${httpConn.responseCode} )" )
142- } else {
143- val responseStream = httpConn.inputStream
144- val s = Scanner (responseStream, " UTF-8" ).useDelimiter(" \\ A" )
145- val response = if (s.hasNext()) s.next() else " "
146-
147- val translated = JsonParser .parseString(response).asJsonObject.get(" translatedText" ).asJsonArray
148-
163+ }
164+ } catch (e: Exception ) {
165+ writer.close()
149166 httpConn.disconnect()
150- s.close()
151- return translated.map { it.asString }
167+
168+ throw e
152169 }
153170 }
154171
0 commit comments