- 48
- 6
- Версия MoonLoader
- Другое
Hi, I have a question why when I switch to asyncHttpRequest instead of requests.get it doesn't do any translation or am I doing something wrong?
Здравствуйте, у меня вопрос, почему я перешел на asyncHttpRequest и вообще нет перевода, или я что-то не так сделал?
I try to use this because it reduces the game from freezing.
Я стараюсь использовать это, потому что это снижает зависание игры.
Здравствуйте, у меня вопрос, почему я перешел на asyncHttpRequest и вообще нет перевода, или я что-то не так сделал?
I try to use this because it reduces the game from freezing.
Я стараюсь использовать это, потому что это снижает зависание игры.
Lua:
local effil = require 'effil'
function asyncHttpRequest(method, url, args, resolve, reject)
local request_thread = effil.thread(function (method, url, args)
local requests = require 'requests'
local result, response = pcall(requests.request, method, url, args)
if result then
response.json, response.xml = nil, nil
return true, response
else
return false, response
end
end)(method, url, args)
if not resolve then resolve = function() end end
if not reject then reject = function() end end
lua_thread.create(function()
local runner = request_thread
while true do
local status, err = runner:status()
if not err then
if status == 'completed' then
local result, response = runner:get()
if result then
resolve(response)
else
reject(response)
end
return
elseif status == 'canceled' then
return reject(status)
end
else
return reject(err)
end
wait(0)
end
end)
end
function translate(text, back, callback)
if type(callback) ~= "function" then
print("Error: Callback function is nil!")
return
end
if translatedCache[text] then
return callback(translatedCache[text])
end
local lib, requests = pcall(require, "requests")
if lib then
local sendtext = toSendGet(text)
local ilang1, ilang2 = getlang(back)
local url = "https://script.google.com/macros/s/AKfycbxslVceRG2DSUHR3Jlpt69_0TXkzCU3weD2ZRK7JQXyhQYYA0bcekZ5hIqXOtwCOfoz/exec?q="..sendtext.."&source="..ilang1.."&target="..ilang2
local headers = {["user-agent"] = "Mozilla/5.0"}
asyncHttpRequest("GET", url, {headers = headers}, function(responce)
if responce.status_code == 200 then
local resultText = responce.text
local translatedText = resultText:match('HREF="(.+)"')
translatedText = translatedText:gsub('amp;', '')
asyncHttpRequest("GET", translatedText, {headers = headers}, function(finalResponse)
local translatedResult = u8:decode(finalResponse.text)
translatedCache[text] = translatedResult
saveCache()
callback(translatedResult)
end, function(err)
print("Error in second request:", err)
callback(false)
end)
else
print("Failed to load the result!")
callback(false)
end
end, function(err)
print("HTTP request failed:", err)
callback(false)
end)
else
print('The "requests" library is missing!')
callback(false)
end
end