Mars
вопрос исчерпан
Mars
if not roles.is_admin_cached(msg) then return end вот это
Mars
но как убрать ошибку не понятно
Mars
ошибку про hset
ГуНиСе️
по-хорошему, её не убирать надо, а исправлять
ГуНиСе️
нужно бы разобраться из-за чего она возникает, понять, хорошо это или плохо, а потом уж действовать
Mars
и вопрос про параметры
Mars
Могу Я в одном файле .lua создать параметр и сделать возможность записи в него текста, затем в другой файл .lua импортировать первый и вызвать этот параметр? @mymedia
ГуНиСе️
что ты понимаешь под словом "параметр"?
Mars
ну к примеру text = 'asdasdasd'
Ilia
Это перменная
Mars
ошибочка
Ilia
почитай про модули.
Mars
а где?
Mars
:D
ГуНиСе️
а где?
всё, что я знаю про луа, я узнал только из этого переведённого руководства https://ilovelua.wordpress.com/lua-5-3-%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE/
ГуНиСе️
неплохо бы потратить часа два на чтение этого документа, чтобы досконально во всём разобраться
Mars
спасибо
Mars
Народ, есть кто?
Тебе зачем?=)
Mars
Можете помочь плиз?
Mars
1. Welcome text. May be set via `!setwelcome text text text` 2. Advert text. Maybe set via `!setwlcad text text text`. —---- But via `!setwelcome` admin can not delete advert text. —- How do it?
Marvin
в луа есть что-то типа питоновского "".replace()?
ГуНиСе️
string.gsub?
Marvin
Language: lua Source: print("ayy".gsub("lmao")) Errors: lua: source_file.lua:1: ')' expected near '.' Stats: Absolute running time: 0.14 sec, cpu time: 0 sec, memory peak: 3 Mb, absolute service time: 0,14 sec
Marvin
тут веселье в том
ГуНиСе️
там описывается и gsub
Marvin
что я использую еще microlua
Marvin
https://sourceforge.net/p/microlua/wiki/Tutorials/
Marvin
и я вообще не понимаю что за херня с этой французской хренью
Anonymous
Language: lua Source: a = "test" print(string.gsub(a, "es", "no idea what to replace by")) Result: tno idea what to replace byt 1 Stats: Absolute running time: 0.04 sec, cpu time: 0 sec, memory peak: 3 Mb, absolute service time: 0,04 sec
Marvin
посебо
Marvin
хотя я подумол
Marvin
как раз изучу си
Snusmumriken
>print("ayy".gsub("lmao")) Точка работает с таблицами как доступ по ключу. Строки технически являются особым типом, похожим на таблицы наличием присобаченной метатаблицы. Но их нужно заключать в скобки и ставить двоеточие (передача в функцию себя первым аргументом) a = ('ayy'):gsub('y', 'lm') print(a:gsub('(lm)', '%1ao')) > almaolmao 2Да, чтобы работало: t = {} t:insert(10, 20, 30)необходимо объявлять таблицу как что-то подобное: t = setmetatable({}, {__index = table}) t:insert(10, 20, 30)Ибо сами по себе таблицы, в отличии от питона, не имеют методов, чтобы их можно было использовать как классы/объекты. Отписал для любителей питоносинтаксиса.
Snusmumriken
Нет, тут всё просто и логично. Инфа сотка. Дёрнуть функцию из таблицы - tb.func() Использовать функцию как метод таблицы - двоеточие - tb:func() или, с тем же результатом - tb.func(tb). Советую освоить метатаблицы, как самый мощный инструмент lua. В языке есть некоторые проблемы, начиная с того что регулярки - не регулярки и довольно медленные, но это исправляется подключением либ.
Nikolay
с фига ли регулярки - не регулярки?
grinchfox
Свои особенные
Snusmumriken
Ну, например, стандартная регулярка '/d{1, 5}' выглядит так: '%d%d?%d?%d?%d?'. Если тебе нужно от двух до пятидесяти повторений - изволь писать вручную каждый символ со значком вопросика, кроме первых двух. Часть символов (вроде "-") отсутствуют в обычных регулярках. Отсутствует выражения "and" и "or" в регулярках: str:find('abc|def') - не прокатит. Отсутствует стандартнейший string.split. Он, правда, заменяется итератором: function string.split(str, delm) local res = {} for line in (str..delm):gmatch('(.-)'..delm) do table.insert(res, line) end return #res>1 and res end Данное решение плодит много мусора на огромных строках, но короткое. Для меньшего количества мусора, приходится извращаться. Технически, регулярками можно назвать всё, куда можно пихнуть кусок выражения на Perl, и получить аналогичный перловому результат.
ГуНиСе️
> регулярками можно назвать всё, куда можно пихнуть кусок выражения на Perl в теории вообще-то регулярные выражения взялись из дискретной математики и к Perl'у вообще никак не привязаны
ГуНиСе️
и кстати, что не так в предложенном выше решении?
ГуНиСе️
ну кроме того, что в качестве delim могут быть всякие неожиданные шаблоны
ГуНиСе️
да и в perl'е есть замена минусу из lua
Snusmumriken
Дискретка и теория множеств)) Замена минуса - двумя символами. Ну, там .*? - делает звёздочку не такой жадиной (поведение сходно с "-" в lua). В общем, я к тому, что синтаксические различия уже дают разницу в регулярках. Ну, это не даёт возможности тупо скопипастить или даже перепарсить perl-регулярку чтобы сделать из неё lua-регулярку, если она не самая элементарная. Больше всего меня расстраивает отсутствие or, которое заставляет парсить по несколько раз. Я ещё и работаю с огромными документами, поэтому значительно чаще пользуюсь string.find, ибо быстрее match в несколько раз, и бинарным поиском, насколько это возможно (если есть всякие даты/время, и их можно выкрутить). Не все программисты проверяют только ввод в небольших полях (до 10к символов). На огромных доках 0.001-5Тб (вроде серверных логов), регулярки работают особенно медленно. Ну, надо тебе выяснить, на каком именно скрипте упала система неделю назад, а за это время набежала пара терабайт логов.
ГуНиСе️
может быть, для такого вообще не стоит использовать луа?
ГуНиСе️
и да, зачем редактировать сообщение, так, что его смысл кардинально меняется?
Snusmumriken
Не кардинально, дополняю. Можно использовать луа, как неимоверно удобные скрипты, что я и делаю. а) нет особо ничего что с этим справлялось по умолчанию, даже перл (разве что греп линуксовый), извращаться придётся в любом случае; б) есть либа LPeg; в) JIT.
ГуНиСе️
да и уведомления об изменениях не приходят
ГуНиСе️
уходил — была одна строчка, а как пришёл — так тут целый трактат
Snusmumriken
Извини : < Обычно пишу ночами, когда никто не читает. Привычка много-много раз редактировать, пока совсем не закончу мысль. То что не приходят уведомления об изменениях - это же отлично. Прикинь, сколько бы жужжал твой телефон на пяти правках.
ГуНиСе️
у меня нету телефона ¯\_(ツ)_/¯
Snusmumriken
Меня бесят жужжащие конференции, которые доведут до оргазма любого кто прикоснётся к моей мобиле, поэтому отсылаю одно сообщение, которое сделает только один короткий *жуж*, вместо пулемётной очереди: *жужужужужу*. Если надо - редактирую. Это человеческое уважение и ваще. Кому надо - перечитают пост. Не надо? Даже не посмотрят. Всё ок.
Arthur'); DROP TABLE Users;--
¯\_(ツ)_/¯
Marvin
Как в луа посчиать CRC32 файла?
Disi
Как в луа посчиать CRC32 файла?
https://github.com/openresty/lua-nginx-module/blob/master/t/lib/CRC32.lua
Disi
?
Marvin
полагаю это можно свистнуть в свой проект?
Disi
да
Мерль
Как в луа посчиать CRC32 файла?
https://luarocks.org/modules/hjelmeland/crc32
Marvin
у меня веселая платформа такая
Marvin
на ней нет luarocks
Мерль
Тогда используй из nginx Но оно тормозное
Marvin
128 мб озу хватит?)
Disi
должно 😆
Disi
http://lua-users.org/lists/lua-l/2006-06/msg00298.html
Мерль
128 мб озу хватит?)
Если будешь считывать файлы в память - то нет
Мерль
Если он большой, конечно
Ilia
Какой статус сейчас у luaJIT на 64 bit?
Marvin
https://github.com/Rinnegatamante/CHMM2/blob/master/source/downloader.lua
Marvin
9 строка
Marvin
разве есть такая либа встроенная?
Marvin
или я идиот?
Marvin
я идиот
Marvin
это либа из lpp3ds