translator: reuse http_request instance

This commit is contained in:
Syping 2026-03-29 10:09:31 +02:00
parent 305cbc9437
commit 5e3808204e
8 changed files with 19 additions and 23 deletions

View file

@ -18,7 +18,6 @@
#include <dpp/json.h>
#include <iostream>
#include "../../core/http_request.h"
#include "deepl.h"
using namespace bot::http;
using namespace bot::translator;
@ -43,8 +42,7 @@ const std::vector<language> deepl::get_languages()
}
try {
http_request request;
http_response response = request.get(http_request::legacy_url(m_hostname, 443, "/v2/languages?type=target", true),
http_response response = m_http.get(http_request::legacy_url(m_hostname, 443, "/v2/languages?type=target", true),
{{"Authorization", "DeepL-Auth-Key " + m_apiKey}});
if (response.status == 200) {
const dpp::json json_response = dpp::json::parse(response.content);
@ -92,8 +90,7 @@ const std::string deepl::translate(const std::string &text, const std::string &s
json_body["source_lang"] = source;
try {
http_request request;
http_response response = request.post(http_request::legacy_url(m_hostname, 443, "/v2/translate", true), json_body.dump(),
http_response response = m_http.post(http_request::legacy_url(m_hostname, 443, "/v2/translate", true), json_body.dump(),
{{"Authorization", "DeepL-Auth-Key " + m_apiKey}, {"Content-Type", "application/json"}});
if (response.status == 200) {
const dpp::json json_response = dpp::json::parse(response.content);

View file

@ -19,6 +19,7 @@
#ifndef TRANSLATOR_DEEPL_H
#define TRANSLATOR_DEEPL_H
#include "../../core/http_request.h"
#include "../../core/translator.h"
namespace bot {
@ -33,6 +34,7 @@ namespace bot {
private:
std::string m_apiKey;
std::string m_hostname;
bot::http::http_request m_http;
supported_languages m_languages;
};
}

View file

@ -18,7 +18,6 @@
#include <dpp/json.h>
#include <iostream>
#include "../../core/http_request.h"
#include "libretranslate.h"
using namespace bot::http;
using namespace bot::translator;
@ -43,8 +42,7 @@ const std::vector<language> libretranslate::get_languages()
}
try {
http_request request;
http_response response = request.get(http_request::legacy_url(m_hostname, m_port, m_url + "languages", m_tls));
http_response response = m_http.get(http_request::legacy_url(m_hostname, m_port, m_url + "languages", m_tls));
if (response.status == 200) {
const dpp::json json_response = dpp::json::parse(response.content);
if (json_response.is_array()) {
@ -89,8 +87,7 @@ const std::string libretranslate::translate(const std::string &text, const std::
json_body["apiKey"] = m_apiKey;
try {
http_request request;
http_response response = request.post(http_request::legacy_url(m_hostname, m_port, m_url + "translate", m_tls), json_body.dump(),
http_response response = m_http.post(http_request::legacy_url(m_hostname, m_port, m_url + "translate", m_tls), json_body.dump(),
{{"Content-Type", "application/json"}});
if (response.status == 200) {
const dpp::json json_response = dpp::json::parse(response.content);

View file

@ -20,6 +20,7 @@
#define TRANSLATOR_LIBRETRANSLATE_H
#include <cstdint>
#include "../../core/http_request.h"
#include "../../core/translator.h"
namespace bot {
@ -35,6 +36,7 @@ namespace bot {
private:
std::string m_apiKey;
std::string m_hostname;
bot::http::http_request m_http;
supported_languages m_languages;
uint16_t m_port;
std::string m_url;

View file

@ -19,7 +19,6 @@
#include <dpp/json.h>
#include <dpp/utility.h>
#include <iostream>
#include "../../core/http_request.h"
#include "lingvatranslate.h"
using namespace bot::http;
using namespace bot::translator;
@ -44,8 +43,7 @@ const std::vector<language> lingvatranslate::get_languages()
}
try {
http_request request;
http_response response = request.get(http_request::legacy_url(m_hostname, m_port, m_url + "api/v1/languages/target", m_tls));
http_response response = m_http.get(http_request::legacy_url(m_hostname, m_port, m_url + "api/v1/languages/target", m_tls));
if (response.status == 200) {
const dpp::json json_response = dpp::json::parse(response.content);
if (json_response.is_object()) {
@ -83,8 +81,7 @@ const std::vector<language> lingvatranslate::get_languages()
const std::string lingvatranslate::translate(const std::string &text, const std::string &source, const std::string &target)
{
try {
http_request request;
http_response response = request.get(http_request::legacy_url(m_hostname, m_port, m_url + "api/v1/" + (source.empty() ? "auto" : source) + "/" + target + "/" + dpp::utility::url_encode(text), m_tls));
http_response response = m_http.get(http_request::legacy_url(m_hostname, m_port, m_url + "api/v1/" + (source.empty() ? "auto" : source) + "/" + target + "/" + dpp::utility::url_encode(text), m_tls));
if (response.status == 200) {
const dpp::json json_response = dpp::json::parse(response.content);
if (json_response.is_object()) {

View file

@ -20,6 +20,7 @@
#define TRANSLATOR_LINGVATRANSLATE_H
#include <cstdint>
#include "../../core/http_request.h"
#include "../../core/translator.h"
namespace bot {
@ -34,6 +35,7 @@ namespace bot {
private:
std::string m_hostname;
bot::http::http_request m_http;
supported_languages m_languages;
uint16_t m_port;
std::string m_url;

View file

@ -19,7 +19,6 @@
#include <dpp/json.h>
#include <dpp/utility.h>
#include <iostream>
#include "../../core/http_request.h"
#include "mozhi.h"
using namespace bot::http;
using namespace bot::translator;
@ -47,8 +46,7 @@ const std::vector<language> mozhi::get_languages()
const std::string parameters = dpp::utility::make_url_parameters({
{"engine", m_engine}
});
http_request request;
http_response response = request.get(http_request::legacy_url(m_hostname, m_port, m_url + "api/target_languages", m_tls));
http_response response = m_http.get(http_request::legacy_url(m_hostname, m_port, m_url + "api/target_languages", m_tls));
if (response.status == 200) {
const dpp::json json_response = dpp::json::parse(response.content);
if (json_response.is_array()) {
@ -89,8 +87,7 @@ const std::string mozhi::translate(const std::string &text, const std::string &s
{"to", target},
{"text", text}
});
http_request request;
http_response response = request.get(http_request::legacy_url(m_hostname, m_port, m_url + "api/translate" + parameters, m_tls));
http_response response = m_http.get(http_request::legacy_url(m_hostname, m_port, m_url + "api/translate" + parameters, m_tls));
if (response.status == 200) {
const dpp::json json_response = dpp::json::parse(response.content);
if (json_response.is_object()) {

View file

@ -20,6 +20,7 @@
#define TRANSLATOR_MOZHI_H
#include <cstdint>
#include "../../core/http_request.h"
#include "../../core/translator.h"
namespace bot {
@ -35,6 +36,7 @@ namespace bot {
private:
std::string m_engine;
std::string m_hostname;
bot::http::http_request m_http;
supported_languages m_languages;
uint16_t m_port;
std::string m_url;