Snusmumriken
Так что получение массива ansi-символов —
function string_slice(str, a, b)
local out = {}
for i = a, b or #str do
table.insert(out, str:sub(i, i))
end
return out
end
Snusmumriken
C utf8 малясь веселее.
Roman
Roman
Snusmumriken
inspect = require'inspect'
array_class = setmetatable({}, {__index = table})
array_class.__index = array_class
function array_class:slice(a, b)
local out = newArray({})
for i = a, math.max(b or #self, #self) do
out:insert(self[i])
end
return out
end
function array_class:map(func)
for i = 1, #self do
self[i] = func(self[i], i)
end
return self
end
function newArray(data)
return setmetatable(data or {}, array_class)
end
something = newArray({10, 20, 30, 40, 50})
something:insert(60) -- взято из table
inspect(something) --> {10, 20, 30, 40, 50, 60}
v = something:remove(4) -- взято из table
print(v) --> 40
inspect(something) --> {10, 20, 30, 50, 60}
other = something:slice(3, 5) -- наш метод
inspect(other) --> {30, 50, 60}
Snusmumriken
🙏
Вот тебе обёртка для массивов, со всеми методами из библиотеки table, вписавшихся в неё как родные, и которую можно расширять до опупения чем хочешь.
inspect — вот это: https://github.com/kikito/inspect.lua, очень полезная штука для печати содержимого.
Roman
Snusmumriken
Отлично, а то начал падать духом...
Ты начинаешь проникаться лёгкостью и минимумом строчек которые требуется написать чтобы сделать что-то неплохое и фичеватое и сделать похожий функционал привычных штук?
Roman
Денис
C utf8 малясь веселее.
function utils.exposeUTF8Chars(utfString)
local result = {}
for _, character in utf8.codes(utfString) do
table.insert(result, utf8.char(character))
end
return result
end
Snusmumriken
RomD насколько ты живой?
Aqendo
Бип буп)
Денис
Ребят, какой json посоветуете из LuaRocks?
Денис
Александр
https://luarocks.org/modules/xpol/rapidjson
Денис
Snusmumriken
Странно
Денис
Я вообще не понимаю как собрать билд тулзы так, чтобы хотя бы 40 процентов того, что мне надо, собиралось...
Igor
cjson в луароксе сломан, он только под 5.1 собирается
Igor
Денис
Igor
Если и так не заведётся, то добавь вместо версии параметр --local "-DLUA_COMPAT_5_3"
Igor
Так уже точно должен скомпилиться
Igor
Igor
Класс
Igor
Могу собрать тебе cjson, если надо
Денис
Так а чего, по сути, мне даже на lua просто написанный json можно. Я не думаю, что в этом есть какие-то проблемы... Просто самому писать не хочется...
Igor
Igor
Так в луароксе и называется
Денис
Igor
dkjson.encode/dkjson.decode
Igor
есть поддержка lpeg для ускорения декодирования
Денис
Igor
Необязательная
Денис
Необязательная
Не, я уже понял, что это опционально. Просто, чтобы знать
Igor
Ну а так - да
Денис
Окау, будем понимать
Денис
Эээм...
function seiran:setJsonHandler(encode, decode)
self.json.decode = decode
self.json.encode = decode
end
Меня терзают смутные сомненья...
Igor
Igor
А, не увидел, ошибка походу. Что за либа вообще? Впервые слышу.
Денис
Денис
Да кстати, предложения по хорошему VK API также принимаются.
Денис
Здесь в принципе все красиво. Единственное, чего нет - авторизации. Но авторизацию можно и через стандартный браузер реализовать. Главное - придумать нормальную валидацию токена по экспайру
Igor
Только decode
Денис
Только decode
Возможно, но если ты ожидаешь encode, не логично было бы? 🙂
Денис
Или вообще енкод не требовать в аргументах
Денис
Пути кодеров неисповедимы 😀
Snusmumriken
Есть шикосная https://github.com/rxi/json.lua, которая пишет места ошибок при форматировании, и чисто на луях.
Денис
Денис
По сути, там, если так вдуматься, особо тяжелого кода быть не должно
Денис
Мне даже, кстати, родной код предпочтительнее - тут у нас возник спор, что я мессенжер для ВК на Lua не напишу)))
Igor
Igor
А, ну и ещё клиент для ютюба писал простой
Igor
Сейчас, конечно, всё успешно потерялось, думаю
RomD
Alxius
Snusmumriken
Lucky
Lucky
А, ты тащишь жсон по сети. Понятно.
Lucky
http://mageddo.com/tools/json-to-lua-converter
Lucky
Так может тупо файлик конвертнуть автозаменой без парсинга?
Денис
Вообще, мне тут в голову приходит, что, при наличии прямых рук, хорошей сетевой либы и нормального бэкенда, API можно рулить полностью на метатаблицах, и это же офигеть как вдохновляет... Написал строчек 50 кода - а у тебя и весь фактически API готов! Знай себе, читай доку у холдера, да и все!
RussianServiceDrop
Здравствуйте, такой вопрос появился.
Пишу я луа движок, хочу как то библиотеки lua (.so) подгружать в оперативку а не на жесткий диск, это возможно?
Александр
Snusmumriken
Александр