Skip to content

Commit

Permalink
Update GoogleTranslateClient.java
Browse files Browse the repository at this point in the history
  • Loading branch information
XyL1GaN4eG committed Jul 27, 2024
1 parent cdc2cb3 commit e6c84fd
Showing 1 changed file with 15 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,11 @@
import jakarta.annotation.PostConstruct;
import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;

import java.io.BufferedReader;
import java.io.IOException;
Expand All @@ -21,11 +24,8 @@ public class GoogleTranslateClient {
@Value("${translate_script.api}")
private String apiKey;

@PostConstruct
public void checkApiKey() {
log.info("Google Translate API Key: {}", apiKey);
}

@Autowired
private RestTemplate restTemplate;

private boolean isRussian(String text) {
return text.matches("[а-яА-ЯёЁ\\s]+");
Expand Down Expand Up @@ -54,29 +54,22 @@ public String translateRuToEng(String text) {

private String translateFromTo(String langFrom, String langTo, String text) {
try {
log.info("Переводим слово {} с {} на {}", text, langFrom, langTo);
String urlStr = "https://script.google.com/macros/s/{apiKey}/exec"
.replace("{apiKey}", apiKey) +
"?q=" + URLEncoder.encode(text, "UTF-8") +
"&target=" + langTo +
"&source=" + langFrom;
log.info("Сформировали следующий апи запрос: {}", urlStr);
URL url = new URL(urlStr);
StringBuilder response = new StringBuilder();
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestProperty("User-Agent", "Mozilla/5.0");
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
log.info("Парсим полученный ответ с google translate: ");
response.append(inputLine);
}
in.close();
var translatedWord = response.toString();
log.info("Слово {} переведено: {}", text, response);

log.info("Переводим слово {} с {} на {}", text, langFrom, langTo);
log.info("Сформировали следующий API запрос: {}", urlStr);

ResponseEntity<String> responseEntity = restTemplate.getForEntity(urlStr, String.class);
String translatedWord = responseEntity.getBody();

log.info("Слово {} переведено: {}", text, translatedWord);
return translatedWord;
} catch (IOException e) {
log.error("Произошла ошибка при переводе с {} на {} следующего текста: {}. Подробности: {}", langFrom, langTo, text, e.getMessage());
} catch (Exception e) {
log.error("Произошла ошибка при переводе с {} на {} следующего текста: {}. Подробности: {}", langFrom, langTo, text, e.getMessage());
return "null";
}
}
Expand Down

0 comments on commit e6c84fd

Please sign in to comment.