vitaly
какой есть
vitaly
посмотрел и взорвал
Snusmumriken
Как именно взрываешь? Ты его даже не прочитаешь, это миллиард гигабайт.
vitaly
значешь у меня реальная задача отпарсить джаваскрип на луа - это можешь решить?
Snusmumriken
Хех, неплохо : )
Snusmumriken
А зачем?
vitaly
обойти защиту сайта который не хочет что бы я его парсил
Snusmumriken
Ууу, кажется пришло время для регулярок!
vitaly
ниньзя тайм
vitaly
папко-отец
Snusmumriken
А что делает js?
vitaly
ставит куку
Snusmumriken
Хе, неплох. Код обфусцирован?
vitaly
нет
vitaly
http://95.211.201.154/s/test.txt
Snusmumriken
Потому что я вижу примерно два способа обойти. Например, поставить v8 и дёргать его, или переписать на луи то же самое.
vitaly
там просто хитротрости в виде каментов и постоянно меняющегося куска кода
vitaly
да - я знаю
vitaly
код не статичен на джаваскрипте
vitaly
если бы он был статичен - можно было переписать по строчно
Snusmumriken
Насколько не статичен? Меняются значения переменных или целые куски кода?
vitaly
ну глянь ссылку если не с мобилы
Snusmumriken
Вижу ссылку, но там куча меджик-намберов. Если меняются только они - можно выдирать.
vitaly
https://pastebin.com/nF72rydJ
vitaly
там код раз 5 вставлен
vitaly
те 5 разных версий что целевой сайт отдает
vitaly
ну можно поставить v8 - это нужно в гугл идти - читать
vitaly
пойду читать тогда
Snusmumriken
И да, кстать. Этот код для куки, скорее всего, или берётся из набора, или автоматически генерируется из функционально схожих блоков (мб с разными переменными), в противном случае - слишком много человекозатрат на постоянное переделывание. Ты можешь сделать следующее: 1. Перебрать все варианты кода, или выделить одинаковые/схожие куски 2. Выдрать оттуда нужные переменные 3. Подставить в собственные луёвые функции которые делают нужную работу 4. Генерим куку 5. Профит в конце месяца
Snusmumriken
У меня была точно такая же задача, только вот такой код генерил урл и подставлял в нужный кусок DOM'а. Мне нужен был урл. И знаешь что я сделал? : )
Snusmumriken
На самом деле даже это не понадобилось. Дизассембльнул местное оффецеальное приложение и выдрал оттуда ту же самую апишку, только "для приложений".
Snusmumriken
Нет, я забыл про этот способ, спасибо что напомнил. Кстати, можно ещё запускать хром в хедлессе ))
Snusmumriken
Ребзя, как выкурить его из моей головы?
Snusmumriken
Snusmumriken
Филька, ухади ((
Snusmumriken
Мемы подъехали
Lucky
Lucky
Мемы подъехали
Блен, нафиг так пугать?!!
Anonymous
Мне кажется есть три уровня владения регулярками: -человек знает какие символы являются метакеректерс -человек свободно матчик и реплейсит по капчуре-группам -человек может пользоваться лукахедом и лукбехайндом
Anonymous
После первого уже можно пускать человека в продакшн с простенькими регулярками
Anonymous
А так все три несложно освоить
Anonymous
Мемы подъехали
Это эпично, про 5 бесплатных комитов
Dika
хочу работать с CLI)
telegram-cli слишком устарел, лучше возьми tdlib. Кроме того, у telegram-cli есть сервер, который отдает ответы в json. Сервер запускается так: telegram-cli --json -P <port>
Tadeusz
Зачем cli? Когда есть api
invariance
Зачем cli? Когда есть api
Потому что нет рест апи для пользователя
invariance
Там через протокол mtproto довольно сложно имплементить самомк
Anonymous
Опять дуров свой ссаный мтпрото пиарит
Anonymous
Рест апи не дал
Snusmumriken
Очевидно, шоб боты не выдавали себя за людей.
Anonymous
Можно же на sikuli наскриптовать
Anonymous
Или на селениуме
Snusmumriken
Или headless chrome, да. Можно, но не шибко целесообразно.
Anonymous
Почему? Sikuli , например поддерживает ocr, так как она на опенцв
Anonymous
По сути прочитать текст можешь - отправить можешь
Anonymous
Для бота вроде больше и ге надо
Anonymous
Или headless chrome, да. Можно, но не шибко целесообразно.
Кстати, на этой дребедени недавно странички скрапил с одного буржуйского сайта
Anonymous
С пакетом puppeteer nodejs
Anonymous
Все довольно удобно, но у меня был фреймсет и часть работ таки пришлось выполнить вручную
Ilya
Мемы подъехали
Ахаха, ждал их вчера весь день.
Ilya
Не знаю, чего все набросились на @socketpair. Я с ним согласен - это неочевидно, что в REPL на каждую строчку отдельный скоуп. В ноде, например, это не так.
Ilya
Короткие выражения обычно проверяю через lua -e
Dmitry
Вопрос на будущее: как в lua лучше распараллеливать потоки (или хотя бы эмулировать это, может быть удобная библиотека есть)? Например, десктопный интерфейс lua-приложения в основном потоке и нужно фоновым запускать тяжёлые вычисления, но чтобы интерфейс оставался отзывчивым
Dmitry
ну или сетевая компьютерная игра, например
grinchfox
только отдельными луа стейтами на поток
grinchfox
один Lua state нельзя использовать из нескольких потоков одновременно. Сам по себе луа поддерживает потоки, но не поддерживает их параллельное исполнение
grinchfox
я так понимаю что не все приложение работает на lua ? тоесть должен быть какой-то например C++ backend
grinchfox
если это например игра, то чаще всего луа используется как скриптовый язык для высокоуровневой логики, тоесть для игровых предметов, сценариев взаимодействия с персонажами и т.д. Все это в играх обычно происходит в одном потоке.
grinchfox
Тяжелые вычисления в таком случае можно отделить в отдельный поток, например сложный посик пути для НПЦ или ботов. В таком случае его проще рализовать как доп. фитчу на языке бакенда (учитывая что нужна высокая производительность) и выбросить потокобезопасный API на сторону lua
Не Анна
Гринч шо ты тут делаешь
Не Анна
Иди на нкс обновы пили
Dmitry
@grinchfox, спасибо) > должен быть какой-то например C++ backend да хотелось бы без c++ конечно. чистый lua или хотя бы golang)
grinchfox
Иди на нкс обновы пили
я уже полгода как не занимаюсь nx, виги меня выгнал
Dmitry
значит, если на чистом lua, нужно создавать main loop с проверкой выполнения фоновых задач по таймеру? как запускать процессы в фоне, как связываться с ними? socket? IPC? есть ли что почитать на эту тему, чтобы примеры готового кода с объяснениями?
grinchfox
мне кажется на чистом луа не самая лучшая идея
grinchfox
да и для C++ полно клея
grinchfox
даже руками к луа очень просто писать биндинги
Dmitry
а с golang норм сбиндится?
grinchfox
потому что на все придется искать плюсовые либы (например IPC, сеть, создание новых инстансов) и передавать данные через IPC мне кажется будет не так удобно