urlencode

Tema05

Известный
Автор темы
1,469
433
Версия MoonLoader
.026-beta
Хочу через url отправить сообщение
Lua:
print(info[7])

--[[Краш LiteHelper:
Дата 05.11.2020 15:09:15. Версия 1.0.0 p78.
Краш LiteHelper из-за непредусмотренной ошибки.

[ML] (error) LiteHelper: D:\GTA San Andreas\moonloader\LiteHelper.lua:25: attempt to call global 'g' (a nil value)
stack traceback:
    D:\GTA San Andreas\moonloader\LiteHelper.lua:25: in main chunk
[ML] (error) LiteHelper: Script died due to an error. (05601244)]]
При попытке перейти по ссылке текст почему-то обрезается. Как это решить?
Lua:
function urlencode(url)
if url
  then
   url = string.gsub(url, "\n", "\r\n")
   url = string.gsub(url, "([^%w ])", function(c)
    return string.format("%%%02X", string.byte(c))
   end)
   url = string.gsub(url, " ", "+")
end
return url
end

os.execute('explorer "https://litehelper.ru/support?error=' .. urlencode(u8(info[7])) .. '"')
Принт тупо сворачивает игру без зависаний.
Lua:
print(urlencode(u8(info[7])))

Вот та самая ссылка https://litehelper.ru/support?error...23.+Версия+1.0.0+p78. Краш+LiteHelper+из-за+
 

koncumone

Известный
337
87
Хочу через url отправить сообщение
Lua:
print(info[7])

--[[Краш LiteHelper:
Дата 05.11.2020 15:09:15. Версия 1.0.0 p78.
Краш LiteHelper из-за непредусмотренной ошибки.

[ML] (error) LiteHelper: D:\GTA San Andreas\moonloader\LiteHelper.lua:25: attempt to call global 'g' (a nil value)
stack traceback:
    D:\GTA San Andreas\moonloader\LiteHelper.lua:25: in main chunk
[ML] (error) LiteHelper: Script died due to an error. (05601244)]]
При попытку перейти по ссылке текст почему-то обрезается. Как это решить?
Lua:
function urlencode(url)
if url
  then
   url = string.gsub(url, "\n", "\r\n")
   url = string.gsub(url, "([^%w ])", function(c)
    return string.format("%%%02X", string.byte(c))
   end)
   url = string.gsub(url, " ", "+")
end
return url
end

os.execute('explorer "https://litehelper.ru/support?error=' .. urlencode(u8(info[7])) .. '"')
25 строку покажи
 

damag

Женюсь на официантке в моем любимом баре
Проверенный
1,152
1,199
Lua:
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8
requests = require 'requests'
local info = "test info"

function urlencode(str)
   if (str) then
      str = string.gsub (str, "\n", "\r\n")
      str = string.gsub (str, "([^%w ])",
         function (c) return string.format ("%%%02X", string.byte(c)) end)
      str = string.gsub (str, " ", "+")
   end
   return str
end

function main()
h = requests.post('https://litehelper.ru/support?error=' .. urlencode(u8:encode(info, 'CP1251')))
print(h.text)
wait(-1)
end
 
  • Bug
Реакции: Sargon

Tema05

Известный
Автор темы
1,469
433
Lua:
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8
requests = require 'requests'
local info = "test info"

function urlencode(str)
   if (str) then
      str = string.gsub (str, "\n", "\r\n")
      str = string.gsub (str, "([^%w ])",
         function (c) return string.format ("%%%02X", string.byte(c)) end)
      str = string.gsub (str, " ", "+")
   end
   return str
end

function main()
h = requests.post('https://litehelper.ru/support?error=' .. urlencode(u8:encode(info, 'CP1251')))
print(h.text)
wait(-1)
end
Не всё равно текст обрезается перед словом 'непредусмотренной' и мне нужно чтобы пользователя перекинуло в браузер и у него открылась ссылка. Скрипту ответ не нужен.
если что скрипт и строка в кодировке CP1251
Lua:
function urlencode(str)
if (str) then
    str = string.gsub (str, "\n", "\r\n")
    str = string.gsub (str, "([^%w ])",
       function (c) return string.format ("%%%02X", string.byte(c)) end)
    str = string.gsub (str, " ", "+")
end
return str
end

os.execute('explorer "https://litehelper.ru/support?error=' .. urlencode(u8:encode(info[7], 'CP1251')) .. '"')
 

damag

Женюсь на официантке в моем любимом баре
Проверенный
1,152
1,199
Не знаю на счет os.execute. Там не может нормально текст отправить.
Как я тебе посоветовал, юзай отправку запроса. не вижу смысла открывать ссылку.
 

Tema05

Известный
Автор темы
1,469
433
Как я тебе посоветовал, юзай отправку запроса.
Да я бы юзал но мне нужно именно перекинуть человека в браузер.
Вот тестовый скрипт в кодировке CP1251
Lua:
require "lib.moonloader"
local encoding = require "encoding"
encoding.default = 'CP1251'
u8 = encoding.UTF8

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then
        return
    end
    while not isSampAvailable() do
        wait(0)
    end
    wait(-1)
end

local test = "Краш LiteHelper:\nДата 05.11.2020 15:40:56. Версия 1.0.0 p78.\nКраш LiteHelper из-за непредусмотренной ошибки.\n\n[ML] (error) LiteHelper: D:\\GTA San Andreas\\moonloader\\LiteHelper.lua:25: attempt to call global 'g' (a nil value)\nstack traceback:\n    D:\\GTA San Andreas\\moonloader\\LiteHelper.lua:25: in main chunk\n[ML] (error) LiteHelper: Script died due to an error. (1C22D934)"

function urlencode(str)
    if (str) then
        str = string.gsub (str, "\n", "\r\n")
        str = string.gsub (str, "([^%w ])", function(c)
            return string.format ("%%%02X", string.byte(c))
        end)
        str = string.gsub (str, " ", "+")
        end
    return str
end

os.execute('explorer "https://litehelper.ru/support?error=' .. urlencode(u8(test)) .. '"') --https://litehelper.ru/support?error=%D0%9A%D1%80%D0%B0%D1%88+LiteHelper%3A%0D%0A%D0%94%D0%B0%D1%82%D0%B0+05.11.2020+15%3A40%3A56.+%D0%92%D0%B5%D1%80%D1%81%D0%B8%D1%8F+1.0.0+p78.%0D%0A%D0%9A%D1%80%D0%B0%D1%88+LiteHelper+%D0%B8%D0%B7-%D0%B7%D0%B0+%D0%BD%D0%B5%D

--С кодировкой всё норм но вот текст обрезается
 

Tema05

Известный
Автор темы
1,469
433
он тестит просто
Да это не для тестов. Если у пользователя крашнулся скрипт и он хочет обратиться в тех.поддержку его кидает на эту ссылку и потом редиректит в диалог группы вк. И чтобы не объяснять что нужно кунить ошибку из консоли я её и собираю.
Вот решение https://www.blast.hk/threads/13380/page-3#post-220665 На самом деле ссылка нормальная была просто os.execute херово показывал.
 
Последнее редактирование: