Ivan
т.е. если поменять имя в телеграме, то бот начнет тебя слушаться
Snusmumriken
Ну тады воткну ID, делов-то.
Snusmumriken
А ещё меня подбешивали мои старые реализации ботов, что они обращали внимание только на текст сообщения, и процессили фактически только его. Тут я прям заморочился с анализом содержимого сущностей сообщений (и если это текстовые сущности — они типа вырезаются из общего текста и добавляются в список), выставлением горы флагов: message.is_bot_command (если есть хоть одна сущность с командой), message.is_not_for_me (если какая-то сущность-команда имеет НЕ наше имя бота, оно типа явно адресовано не нам), пользовательские колбеки: bot:onNewChatMember, bot:onLeftChatMember, bot.command:mycommand и т.д. По мне — круть.
Осталось впилить работу с файлами и всякие админские штуки, и всё это !!задокументировать!!, потому что я сам уже не упомню чего надобавлял.
Snusmumriken
Snusmumriken
Вот самое время добавлять бота, лепить админские права и удалять вот этого вот Wolfs.Group. А то вручную приходится. Последние недели три удоляю этих ботов вручную, ибо они как будто проплачены у Shieldy-держателей, ибо он где-то треть ботов игнорирует.
Snusmumriken
В целом, это должно быть с одной стороны дофига прибыльно — делать бота, чтобы его раскрутить а потом получать донаты от владельцев ботоферм "чтобы он банил ботов конкурентов, а тех кто донатит — не банил", а с другой стороны — чот доверие подрывается, а конкуренция внезапно существует.
Timur
Roma
Крутая штука. Интересно будет посмотреть на практике, идея огонь. В чате и вправду частенько боты заходят, видимо затесался в какую-то спам базу.
аннлн
пс
аннлн
нашёл забавную (но в целом бесполезную) безделушку
аннлн
аннлн
прозрачная интеграция путона и луа
аннлн
с маппингом типов данных, функций и прочего
fgntfg
но зачем?
аннлн
хороший вопрос
Leon174
Lunatic что ли? Еще есть lupa.
https://github.com/scoder/lupa
Snusmumriken
(а пупа есть? я за ней)
fgntfg
нужна - напиши
fgntfg
и смотри, чтоб не путали
Ivan
Arslan
@Snusmumriken ну что там с lua-spam-bot`ом?
Snusmumriken
Ворк ин прогресс.
Snusmumriken
За сегодня-завтра запилю.
Snusmumriken
Sasha, насколько ты живой?
K
Sasha, насколько ты живой?
Хм... Если это проверка против бота, то как ее пройти нормальному человеку? Ведь вопрос подразумевает множество вариантов правильных ответов.
Snusmumriken
Какая разница сколько ответов?
fgntfg
K G ты, с таким подходом, тест Тьюринга не пройдешь
K
fgntfg
telegram.api + wit.ai
Snusmumriken
K
Парни, а как хранить промежуточные результаты между перезапусками скрипта? Т.е. скрипт отработал и нужно оставить данные до следующего запуска скрипта скажем через час. Среда - комп или сервер, не микроконтроллеры.
Ivan
Pavel
Pavel
fgntfg
fgntfg
@Snusmumriken так делает, например
Snusmumriken
Вредные советы попёрли ))
fgntfg
Pavel
красота
Snusmumriken
крутые парни на лету меняют код.
Совсем крутые парни на лету подключаются к драйверу жёсткого диска и меняют код ОС, чтобы та в следующий раз подгружала модифицированный бинарь с модифицированными библиотеками интерпретатора, чтобы исполнять скрипт по новой схеме.
fgntfg
Pavel
Pavel
к резиновой даме?
fgntfg
Arslan
Ку всем, у меня тут вопрос: как реализуются итераторы в lua? Никогда с ними не связывался, но именно сейчас пришлось столкнуться...
Snusmumriken
Простой вариант итератора — на замыканиях.
function ipairs(tbl)
local i = 0
return function()
i = i + 1
if not tbl[i] then return nil end
return i, tbl[i]
end
end
Snusmumriken
Сложный вариант итератора — без лямбд, на функции которая просто возвращает следующий ключ-значение по старому.
local function _ipairs(tbl, i)
i = i + 1
if not tbl[i] then return end
return i, tbl[i], tbl
end
function ipairs(tbl)
return _ipairs, tbl, 0
end
for i, v in ipairs(foo) do
print('c2 ipairs', i, v)
end
Arslan
Snusmumriken
Ща вспомню и пофиксю последний пример
Snusmumriken
То что ты определил как статическое — называется замыкание. Функция, использующая какие-то локальные переменные вне себя, это замыкание.
Arslan
Сложна, переварю завтра
Заха́р
Привет, Мир!
Подскажите пожалуйста, вот есть переменная «TRGT», в которой хранится адрес, и есть вункция, которая дёргает команду из программы, передавая ей переменную с адресом:
local TRGT = Params[1];
DC.ExecuteCommand("cm_ChangeDir", TRGT);
но адрес содержит пробелы. Как сказать, что адрес должен быть в кавычках?
Заха́р
иначе пробелы удаляются и адрес обрабатывается некорректно
Snusmumriken
local TRGT = '"' .. Params[1] .. '"'
Snusmumriken
Просто вручную добавляем кавычки же.
Заха́р
Ага, да я в синтаксис луа вообще не шарю. Понадобилось макрос написать маленький, который интуитивно по аналогии составил
Snusmumriken
А, тады хорошо : )
fgntfg
Snusmumriken
Никакого next.
fgntfg
почему?
Snusmumriken
Потому что не про next речь.
Korsar
fgntfg
но это иттератор, емнп
Korsar
этож луа, тут надо свой next писать 😃
fgntfg
https://www.lua.org/manual/2.4/node31.html
fgntfg
я тут мимо прохожу и включаю зануду
Snusmumriken
Ты включаешь дурачка. Я описываю _как работают_ итераторы, их принципиальную схему на примере разных реализаций простейшего ipairs. А не даю описание каждого существующего во вселенной.
fgntfg
Snusmumriken
Ну вот это и есть "включить дурачка" ))
"Не читал но осуждаю", или что-то такое.
fgntfg
>тред не читай, сразу отвечай.