Создание интерфейса бота с нуля на BAS.


2 205 просмотров.

Краткое описание видео: .средства в этом видео мы посмотрим на.изменения версии вас 22.0 касающиеся.веб-интерфейса и этих изменений.действительно много и они огромные и они.очень сильно меняют работы с вами.интерфейса.теперь без превращения можно сказать что.выгон трофей sata просто зверь с помощью.него можно создавать крутые большие.приложения которые используют всю массу.html javascript css подключают.разнообразные библиотеки их вызывают.функции бас прямо из с дожидается.результатов добавляют новые потоки.останавливают потоки и.чтобы продемонстрировать это мы будем.создавать приложения.она сейчас на экране она написана.целиком на вас и.партию выдачу google как видите ничего.общего с стандартным интерфейсом и даже.web-интерфейсом который генерится по.умолчанию нету мне написано это все с.нуля а каждую кнопку и функционал и так.далее давайте покажу как это работает.здесь можно создавать здесь можем.задавать прокси с помощью которого мы.будем постить ягодиц запрос.естественно по что происходит с помощью.бас твои интерфейс только отображает.результаты результаты отображаются.развитию удобной таблице мы можем.переходить по ссылкам мы можем сохранять.эти результаты файл.вот такое приложение давайте посмотрим.как мы можем его сделать давайте начнём.создание скрипта с чего-нибудь простого.не будем сразу пытаться выполнить.сложную задачу вместо этого я просто.посмотрим как можно вызвать функцию бас.из веб-интерфейса для этого делаем очень.простую форму сс она будет называться.сейфа и выводить просто текст песни.выводить а возвращать и и посмотрим как.это можно вызвать из веб-интерфейса.и отобразить прямо там результат для.этого естественно нам нужно сначала.создать масс функцию для этого заходим.запись.заходим он же шансы и нажимаем кнопку.добавить сдаем имя.параметров ни каких нибудь это вот.возвращаем различения будет сохраняем.изменения и место stryker уровнем.посещаем наши смещение холов.еще мы добавим сон так чтобы было видно.что.что функция какое-то время работы так.чтобы ощущалась что она запущена я.выполнила далее чтобы скрипт.использовать его bento фейс нужно и.необходимо его скомпилировать причем.скомпилировать защитой скрипты без.защиты использовать web интерфейс не.могут выбираем приватный скрипт.нужно сдать его имя и его нас rampage.собственно можно оставить по умолчанию и.нажимаем ok.автономное приложение мы пока тоже.создавать не будем пока будем.тестировать работу прямо вас.проект был создан и по умолчанию он не.использует веб-интерфейс чтобы его.использовать нужно зайти в настройки.интерфейса и.включить вот эту опцию пользуются с кем.то сексом сейчас лишь on мы включаем и.здесь очень важный момент здесь есть две.версии web интерфейса которая сервер.скинни живут на стандартная версия она.вы можете помнить полого прошлом видео.она и ниже страницу очень похожи на.скомпилирована приложения баз только.написанного схемы и вы можете там.достаточно много кода вы можете изменять.но вот у нас задача стоит другая это.сделать им по 60 an для этого как раз.поведет второй вариант пустой интерфейс.то есть там будет абсолютный минимум.кода пустая страница и и мы можем делать.там все что угодно в том числе и.вызывает бас смеси.это нам как раз подходит идеально если.вы ошиблись при этом диалоге то.создавать интерфейс.создавая скрипт заново не нужно.достаточно нажать на эту кнопку и не.весь интерфейс она снова появится диалог.и и вы можете выбрать уже другое.значение.давайте теперь посмотрим что там.переживал сервер.вот в отличие от стандартной версии.здесь по умолчанию открывается редактор.кода там открылся редактор интерфейса.это в принципе тоже удобно здесь видите.минимум.абсолютный минимум html просто одна.кнопка и место куда будет вводиться блок.кода чуть-чуть побольше но все равно.большинстве он состоит из комментариев.из комментариев и ссылок на документацию.давайте посмотрим что здесь есть здесь.есть функция лог она выводит сообщение.вот сюда вот в этот элемент есть.обработчик.так ногтя старт пацанам здесь как раз и.вызывается функция баз и вы за результат.лог все остальное это автоматически.сгенерированный код это обработка.событий пока здесь ничего нет мы можем.это заполнить это то что запускаю скрипт.в принципе эти вещи их можно опустить.тем более что их не так много.что нам нужно изменить так это название.функции которые мы узла вот давайте.разберем то что происходит повар нажатию.на кнопку up устроишься первое влог.выводится start and ask это переводится.как.начинаю сдачу далее вызывается функция.глаз и защищает оператора вы мне сразу.же ждем результаты его выполнения.результат записывается переменный resort.а далее этот результат выводится в лоб и.выводится сообщение что задача завершена.все происходит за счет вызова этого.метода если вы хотите детально.ознакомиться с тем как он работает какие.параметры приливают то это все довольно.хорошо описано документация здесь есть.примеры пример функции и так далее.смотрите то что нам нужно изменить это.название изменить название тест.function-.на съехал.[музыка].здесь все можно передавать параметры но.поскольку нас параметрам нет мы оставим.просто просто хорошо и протестируем это.все вы бен трейси и дело в том что вот.это окно для reste рования она работает.она никак не связана с бас поэтому и.значение которые возвращаются это просто.тестовые значения и на самом деле их.можно настроить и мы к этому вернемся.чуть позже пока не будем это трогать.главное что мы поменяли название холмс и.теперь же сохрани месте меня на сервере.и попробуем как это все будет работать у.нас в у вас.нажимаем на запись конечно же нам нужно.вы binder через.проявляются окно записи проявляется наша.кнопка.единственно давайте попробуем нажать.видите что вы бинт есть позволяет не.просто.запускать приложение вместе с отладкой.мы отлаживать вузов filthy поскольку ..выполнения принесла сюда и пока пока мы.находимся в отладке то что происходит в.винтерфелле себя мы находимся вот здесь.то есть мы ожидаем ответа от нашей.функции и будем ожидать пока отладка не.завершится пока не будет вызываем.действия артур как только оно вызывается.мы получаем вот такой вот результат если.допустим мы хотим как-то изменять стрип.наряду то это тоже возможно давайте.запустим функцию еще раз или будем.вводить например холоде.мы получим уже сашан другой результат и.поскольку мы используем html у нас есть.css у нас есть полноценный браузер.то грех этим не воспользоваться давайте.сделаем наш интерфейс и нас к более.красивее для этого будем использовать см.антики.такой же марк где сердце но гораздо.компонент кнопки.поля там разнообразной формы и так далее.чтобы подключить его будем использовать.один достаточно легко это сделать просто.скопировать ссылки на ссср.вот теперь попробуем сделать себя кнопку.добавить не из тебя.[музыка].для этого назначит мелодики 2 класса как.написано документации витя сразу стиле.поменялись будем использовать контейнер.и чтобы здесь не добавлялась место.добавим слова добра им классах лист.а вот так вот ну пусть все таки.небольшие отступы будут добавим их.ручного пусть сойди у этого элемента.будет main научную практичным.небольшой рост 10 пикселей далее когда.нажимаю кнопку старт здесь появляется.место это из за того что так про он все.пробелы и знаки табуляции он их.оставляют поэтому сделаем вот так берем.еще.и сохраним посмотрим как это все будет.паз для этого.запись скрипта нужно перезапустить.вот видите новая кнопка.снова заработает.теперь давайте немножко усложним наш.пример.пусть наша функция будет получать.входные параметры это у нас будет.параметр name.а функции мы зовёмся эхолота и вместо.процесс трети халонг она будет.возвращать строку колов.это не то имя а который вел пользователь.а.иному вводить прямо из интерфейса.давайте прям возле кнопки старт добавим.поле для ввода.компонент input мы и будем его будем.использовать только сделаем поле для.ввода то меньше добавим прямо стал как.он к нам не к чему.тоже можно убрать.вот так вот и.[музыка].нужно добавить айди этому полю чтоб мы.могли.получают из него значение 5 и у нас.будет просто на им теперь вызове функции.соответственно функции нужно поменять на.халупу пока мы не зеркалами но сейчас.дело и не будет один параметр ней.получаются значение этого поля.и передавать его прямо у вас за счет вот.этого хорошо нам нужно сохранить и.давайте быстренько напишем новую функцию.[музыка].есть возвращаемое значение если им.параметр name.сохраняем она будет тоже супер простая.[музыка].добавляем сон как и раньше.текст будет вот такой.нам нужно а то восстановить и снова.запустить.витя что вы binder фейс обновился.[музыка].нажимаем получаем во кладке именно та.имя которое мы вели чаще и свой.интерфейс и в результате получаем.корректный ответ от функции перед тем.как перейти к реальным задачам мы еще.немножко лучшим наш проект улучшение не.будут касаться внешнего вида на самом.деле внешний вид абсолютно не изменится.вместо этого они будут касаться структур.нашего приложения дело в том что пока.проект маленький то мы можем.обрабатывается быть и изменять интерфейс.с помощью джекил арей и это в принципе.нормально но и сам станет больше здесь.появится больше кнопок больше этих так.компонент элемента управления то все эти.обновления могут превратиться в.настоящий ад.более того появится множество багов.которые сложно следить и поэтому прямо.сейчас прямо начале разработки плетем.темпларку который называется вьются.он позволит очень сильно упростить.разработку он поддерживает реактивность.и это очень сильно нам поможет вы сейчас.сами все увидите подключить его проще.простого.достаточно просто скопировать ссылку.добавили java-script.и готова но нам также нужно переписать.обработчик вот этой кнопки переписать.отображения logo.и давайте этим выставка займемся.скопируем shablon элемент у нас будет.называться не а промоем мы уже названием.что у нас будет странных у нас будет бог.это список и будет имя.начале она выпустила далее методы.который нам понадобится правильная.написал mad mad mad.множественном числе методы которые нам.понадобится это сын волки не забывайте.помещать функцию как асинхронно это.очень важно чтобы могли использовать.оператор a way.что будет делать эта функция.она будет делать практически тоже самое.только именно будем брать из данных для.нашего приложения место место функции.лог на я вообще 1 место функции лопну.путину.добавляется данные в массив.log.дать пусть это счете скопирован.так ну если с овалом пожалуй все теперь.нужно поменять отображение.[музыка].это все можно удалять вот пирог и дышит.больше немедленно по клику на но мы.вызываем функцию холопка здесь у нас.будет поле для ввода мы связываем с.ценным влог.в воде кажется так.блог вводим сообщениям список просто.просто отображаем список по в каждой.строчке по одному элементу списка так.давайте проверим насколько это работают.наши работают gem ошиблись.возможность плакать опечатку неважно.давайте уберем пробелы вишня ставим.только один.и наконец проверим как это все будет.работает у вас отладка нам ничему.попробуем режим запуска вот видите все.отлично работает singers.давайте теперь наконец создавать.реальный функционал или чем это делать с.установки пропсы нас будет вернуться 1.которая устанавливая doxy автора которая.проверяет внешний айпи.на самом деле я эти функции уже сделал.потому как они мощи простая давайте.покажу вот первая функция suprax а что.она делает так это просто вызывает а.действия прокси для браузера.значения выходного параметра называются.прав сила вторая функция чек айпи.она не намного сложнее просто заходит на.сервис по проверке.api адреса получают значение которой я.вернул сервер и отправлять кухня этот.результат выполнения функции здесь очень.просто давайте теперь сделаем интерфейс.а для того чтобы можно было вести прокси.и проверить его.добавляем описание очень быстро сделаем.переход на новую строку это они очень.правильно с точки зрения верх спины для.демонстрации пойдет дальше делаем поле.для ввода прокси.соответственно названию по-другому здесь.вот нужно исправить добавить у модель.название прокси чтоб все работало как.надо дальше нужно добавить кнопку.которая будет проверять рокси.снова такой функции менту этому как дела.на мы сейчас я быстро добавим пока.нанесен не будет делать так и нужно.место куда будут сохраняться результат.естественно эти данные тоже нужно.добавить.так что так нужно.нужно определить стандартное значение.теперь нужно сдать обработчик нажать на.вот эту кнопку тукан вызвать двигаются.первая функция у нас будет называться.сайт прокси.[музыка].имя параметра.дайте вспомним прошлое и значение будет.просто.из вот этого поля они 5 их возвращаем.значение нету последующих решений есть.следующем называются choco pie.объект параметрам никаких нету и наконец.вот эту результат выполнения функции.следует вести сюда то есть просто.присвоить рок срезал значения раза вот.дальше протестировали.вот эти тестовые примеры они.запрограммированы на так что на.некоторое время и давайте я мы будем.запускать ее несколько раз поэтому я.везде стандартное значение чтоб не.ладить по многу раз потом надо убером.это прокси который работает меня на.машине вот так вот теперь можно.тестировать.давайте это все останавливается и.запускается все будем запускать режиме.запуска нажимаем нажимаем человек прокси.и эти браузер создается и происходит.ошибка это не изменённой пи это эпи без.пробок и почему-то прокси не изменился.хотя вроде бы мы все сделали правильно и.здесь очень важно понять почему для того.чтобы это продемонстрировать очень.наглядно и я изменим наш к наш скрипт.и добавлю иисуса и халонг и лог какой-то.любое сообщение снова заходим запуск и я.нажму несколько раз вроде бы все.нормально нужно значение выбились но.посмотрите что происходит логе у нас.посмотрите на номера потоков поток 2.поток 3 поток 4 по топ 5 то есть это.говорит о том что вызов методы ранд.микшер он каждый раз создает новый поток.причем обрести вниманию вы сейчас эти.вызовы закончились если я снова нажму.своих лоб и основал помощью правильный.результат но вызов будет уже.а президентского таки 2 то есть метод.ран function он не только вызываю.функцию он создает новый потомок.вызывают функцию а после того как а.функция закончилась он этот поток.уничтожают так чтобы потоки не.создавались бесконечно и с помощью.такого подхода нашу задачу не решить.можно конечно объединить две функции в.1-му создается но и такую обертку но это.не очень удобно для того чтобы решить.проблему мы будем пользоваться айпи для.так сейчас иногда.ай пи для создания потоков то есть ice.baby интерфейса можно создавать потоки и.запускают там функции вот как это.выглядит вот более наглядно пример мы.создаем переменную потока вызываем amid.a drunk лучшим уже не для нпф жилья.потока тут параметры точно такие же.названия функции и параметры и вот эта.функция выполняются уже в данном потока.естественно в одном потоке несколько раз.лучше одновременно выполнить нельзя но.никто не мешает создавать несколько.переменных бастрад и создавать и вызвать.каждой свои функции то есть это будет на.рыба точно и приложение который будет.руководить вы bento фейс но мы пока так.далеко не будем заходить.а просто почтением наш пример скопируем.этот код истомилась еда на самом деле да.давайте скопируем название потока.создание потока теперь вместо айпи будем.вызывать все эти функции в потоке.естественно выводить результат как раз и.очень важно то что мы должны завершить.поток дело в том что если мы вызовем.функцию она закончит выполнение в поток.чертов он не завершится он будет ждать.следующего вызова функции и он можешь.дать какое-то значимое время то есть.например пока не пользователь на.вот какую то кнопку или по таймеру или.пока не произойдет какое-то событие это.такой подход дает многом свободы и много.возможностей для для того чтобы вы by.интерфейс руководил выполнением функций.вас но в то же время нужно обязательно.не забывайте останавливать поток и если.допустим и мы забудем это сделать до.зимы 2-ум строку то у нас будет когда.утечка потоков потому что при каждом.кредите а пользователь может нажать.сколько угодно раз будет создаваться.новый потолок но не будут удаляться все.они будут ждать see with он готов может.привести к раку приложения ну окей.на данном этапе я думаю все вот так вот.будет работать творится в этом убедимся.останавливаем скрипт и нажимаем на.запуск проиграем снова создается.браузера много видите айпи.уже совершенно другой то есть это может.говорить только об одном что это всё.было выполнено в одном потоке.давайте теперь подумаем а что произойдёт.если.прокси окажется нерабочим для этого.запускаем режим запуска.и введем какой-нибудь нерабочий прокси.[музыка].что мы получаем так это то что браузер.будет висеть ничего не будет происходить.ну это не очень красиво.давайте сначала поймем что произошла.для этого мы используем отладку включаем.отладку и перезапускаем наше приложение.снова меняем кроксы на плохой и смотрю.консоль браузер загружается.[музыка].и получаем в консоли.[музыка].ошибку из баз то есть смысл такой.что если во время выполнения ран.function то ли операнд машин толикой.drunk нужен происходит ошибка а внутри.бас то внутри лежала скрипта просто.происходит исключение естественному мажу.его обработать не обязательно здесь.добавлять игнорировать ошибки мы можем.добавить трек здесь мы давайте посмотрим.как это все происходит создается поток.создается вызывается функция сапсана.отрабатывает нормально но вот функция.рамки нужен она выкидывает ошибку из-за.этого поток не останавливается то есть.все вот эти действия они не выполняются.[музыка].давайте исправим сделать это тоже очень.просто нужно всего лишь обернуть данная.вызова строке и смотрите поток либо.удалять любом случае когда они если все.произошло все прошло нормально там был.просто выводит результат а если.произошла ошибка мы допустим вы заводить.какое-то сообщение.и отладку и думаю можно отключить чтобы.лишние окна не мешало у нас уже все.правильно нажимаю на запуск меняем.прокси.[музыка].нужно какое-то время составом.попробовать все-таки попробовать к нему.подключиться.заказе через него страницу вот такое.сообщение об ошибке мы получаем всем а.когда мы используем такой подход не.страшно даже если мы несколько раз.нажмем на счет прокси а тогда на.запустится несколько потоков по каждому.в кажемся за собрался и все они должны к.корректно очиститься то есть эти потоки.должны завершиться вот они завершились.здесь три раза в ярость это сообщение об.ошибке.естественно если мы снова изменим пропсы.на корректные тони все обработается как.следует ну а теперь мы будем готовить.наш интерфейс скую отображению вытащи и.кубов и к запуску вас функции которые.выполняют поисковый запрос со мной.функций у нас еще нету но мы будем.делать интерфейса пока без нее убьем вот.это все это нам больше не понадобится.[музыка].прокси оставляем как есть далее у нас.пойдет блок несколько изменим лог.место просто набора строк не будем.отображать такой список и конкурс их оба.заменим на google.покажем как есть далее да и нужно не.забыть все убрать для старого персонала.цеха и цеха low.далее необходимо две кнопки что-то вроде.такого здесь будет 1 1 кнопка будет.выполнять поисковый запрос а вторая.будет останавливать поток это будет.происходить мгновенно и она будет видимо.только если а потом запущен поэтому.давайте добавим новое новые данные.и если скрипт не запущен тогда будем.показываете кнопку на кнопку стоп.наоборот если скрипт запущен.теперь им нужно присвоить обработчики по.книг у нас так называется.по клику на стук тоже.оставим название обработчиком такое как.название кнопке далее эти все хуец и их.необходимо определить.далее у нас данных будет наш поток по.умолчанию он будет равен ну и давайте.прикинем что путь делает функция h она.будет определять если поток уже создан.давайте если уже запущена запущен поиск.тогда просто ничего не делаем.иначе говорим что он активно запустили.наш поезд дальше что делаем создаем.поток днем а вот он будет это переменная.гусь ссылаться на общая данные чтобы они.были доступны не только интерфейс.создаем новый поток говорим этому потоку.установить проще.опять же мешается на обернуть это все в.обработчик ошибок потому что это может.отнять хорошо закончиться если.произойдет ошибка поток не смущается.соответственно нужно его завершать.ушел земного и данного.эра здесь нас будет сообщение об ошибке.во время поисков и будем выводить и.где-то здесь красным цветом красный не.лучший выбор но пока остановимся на этом.а потом изменим окей.значит что мы делаем и устанавливаем.прокси люблю его отсюда далее альпина.уже не проиграем сразу выполняем запрос.здесь вот мы будем в качестве ошибки.выводить эту ошибку которого вернул бас.они значения как раньше потому что много.чего будем делать и много такие могут.произойти ошибки пользователю лучше.знать о том что именно произошло дальше.нужно вызвать функцию и и пока нету.взялась так наверное тоже очень просто.киу или текст мы берем даже добавить.новое поле для ввода сброса.давайте быстренько сделано.скопируем это конечно нужны новые данные.по умолчанию запрос будет пустой хотя.можно поставить какое-то значение по.умолчанию значит мы берем вот эти данные.отсюда и делаем запрос помощью.делаем вот такой вот запрос на берем.текст отсюда.функция которую мы вызываем будут.возвращает список это список пас ну.естественно соответствует списку.javascript и сразу же результат будем.записывать лоб.вот сюда.[музыка].так и когда все.запрос заканчивается и устанавливаем.переменную zara фолз основным поток но.это все же сделали еще быстренько.напишем обработчик на кнопки останова.значит тут если мы не.а если скрипт не запущен твой.останавливать его ничего.соответственно просто выходим из курицы.а вот и сам запущен достать.уже использована вот эта перемена.а вот если он запущен тогда мы его.останавливаем и говорил что все это.больше не работает так и давайте.проверим.но вот здесь вот может быть небольшая.проблема потому что лак у нас это массив.а тестовая функция она возвращает не.масел а ступней поэтому такой вот.произошло просто каждая буква не просто.строка считается как будто это список и.соответственно каждая новая буква.каждого символа это элемент списка это.понятно что кроме подключим баста все.будет работает но ворсинки для.тестирования хотелось бы чтобы.тестовые функции возвращали другие.данные и для этого есть специальная.функция который называется мой от.function ран и вот у неё есть сейчас.открою у нее есть такой вот стандартная.реализация.мы можем ее изменить нам нужно чтобы.если имя функции равнялась.тюль и.тогда мы возвращаем давайте ожидании все.равно добавим одессе имя функции будет.равна cleaning потом углу возвращает.список.из-за таких вот значение допустим вот у.нас будет первый результат дальше нас.будет сторон результат и третье.вот а в противном случае они.использовали стандартную реализацию.торис простоте сказал плюс освещаем.числом давайте протестируем сейчас.сколько она будет.[музыка].вот.теперь давайте займемся тем что сделаем.отображение нашего списка более красиво.ну раз уж мы используем html почему бы.это не сделать.начнем все-таки с того что.изменим время которое требуется на и.муляжи функций по умолчанию до трех до.пяти секунд и там не очень удобно.поскольку мы будем запускать часто.давайте изменим с половиной секунды до.секунды вот так будет намного быстрее и.удобнее если вы хотите больше узнать про.функции malfunction ранту.вы здесь вот есть документация несколько.примеров принципе здесь не особо сложно.итак наши задачи превратить список.которые возвращают бас она совершает.данный нас таком формате.в вот такой список.а для этого давайте скопируем код.все эти стили.[музыка].в основной так его уже можно изменить.найди.скопируем все классы.иди нам тоже не нужен на самом деле а.мне нужно уже давно нужен был чтобы.помощи джек херрик из размещению его это.все делается нас вот так вот будет.выглядеть селения соответственно мы.помещаем на вас толкать можем даже без.стартует обойтись нам.футбол так немножко исправим.форматирование здесь заканчивается.список.но проблема тут в том что там можно на.самом деле посмотреть как это работает.попробовать запустить вот так нужно.указать что-то все-таки данные скрапа.но проблема видится в том что нам нужно.коктейль сгруппировать чтобы ссылка была.возле имени сверху ссылка внизу и на.и вот данный басму получать именно в.таком формате и не будем менять этот.формат вместо этого мы будем.конвертировать его.были удобны для отображения.вот такой вот структуре для этого.воспользуемся свойством компьютер.который доступно уёк и нас вот лог будем.превращать в лоб ну а здесь мы будем.преобразовывать.список список строк в список объектов.часа покажу как эти не страшно просто.делаем цикл который льется до середины.списка данными на.эта переменная чтобы пнуть результат и и.мы будем возвращать а вот добавляет.будем у нас с душами 3 вена ножами диск.поэтому в нее будет два свойства и на.и ссылка имя это она идет со сталью.то есть это будет или меня с такими.индексом а вот ссылка идет первая и.значит к будет элемент с индексом на.единицу меньше.ждем наш результат нужно добавляется.этот объект и презентация мы получаем.массив.этих объектов это идеально подходит для.того чтобы сделать а по ним цикл.просто здесь нужно указать ссылку а.здесь имя.[музыка].[музыка].так можно заменить лоб подготовлен налог.дар его теперь мы получаем ровно то что.нам можно.осталось дело за малым заменить означает.холл герхард могу бы это сделать супер.просто.вот такие вот результаты будут.возвращаться.ну и наконец давайте создадим а функций.бас которая собственно и парсит выдачу.google для этого заходим менеджер функци.добавляем назначен новым вкусом она.будет называться kyoya.возвращаемое значение есть 1 параметр.будет один час это строка.и бруснику.будем поисковый запрос объеме вайс.переменная сразу же нажимаем энтер сразу.же ждем полной загрузки страницы.[музыка].сейчас переменная не определена потому.что не только заливаются на еще или не.вызывали поэтому давайте вызовем забитых.феррисом сначала мост на данном прокси.дальше берем параметр вот отсюда он.проявляется инспекторы переменных снова.повторно грузин глупы и интерфейс.поменялось наш кокс применялся ищем.теперь нужно спросить результаты давайте.посмотрим.ну вот видимо ссылка.она находится под глазом рцр а а текст.находится под классом сыр тоже на видео.но внутри element as классный или.давайте сделаем тогда цикл.потому что вы нашли.смотрим ничего лишнего не попала.[музыка].добавляем эту циклы.да и нам нужно создать список который мы.будем хранить результат естественно.сначала он пустое и сразу же.а так с вами отказался сразу будем.вводить.так теперь нужно и получить текст ссылки.переходим для каждого элемента.[музыка].получить атрибут элемента и шарф и нужно.найти ссылку внутри от того элемента по.которому происходит цикл.даже увидели а что разметки что это.элемент с тегом.а поэтому получаем атрибут всех атрибуты.нашу ссылку ..убедимся.индра правильно и получаю текст вот этот.синий текст.опять же нужно зайти для каждого.элемента.[музыка].плащи текст кому там был класс филипп.вот так да все яме.хотя можно было просто получить из текст.неважно так лучище.вот там мы получили два значения как раз.который нам нужно раз они считают.атрибуты свой тест и сейчас мы просто.список добавляем эти значения и тогда.формат получится ровно такое как здесь.сначала ссылка.потом мама текст.а ссылка у нас тут же but.а текст у нас так это список.а текст у нас в текст и давайте.пройдемся.[музыка].посмотрим какие результаты будет.что у нас переменная резалт ссылка текст.ссылка текст ссылка текст отлично ровно.та же нами нужно давайте я еще раз.спавшим котику.пройти перезагрузим анатоксин.и запустим стала.[музыка].вот все ссылки.вся выдача она здесь давайте еще.поговорим об ошибках во время выполнения.нашего скрипта и так если опять же.использовать какой-нибудь неверными.прокси ресивер наилучшим режиме запуска.так вот если использовать какой-нибудь.неверные прокси и.снова начать поиск.[музыка].мы должны получить вот здесь вот красное.сообщения на таки есть это потому что мы.обернули все это строке и вводим ошибку.интерфейс случае если произошла ошибка.вас при этом потом закрывается ok.но есть еще и такой момент что если мы.находимся в режиме записи.и.допустим мы каким-то образом.перемещаем точку выполнения в другую.функцию.откуда сюда.[музыка].то здесь происходит интересная вещь как.бы вы видите что все зависает это из-за.того что находимся в таком случае.возвращают значение а ну и дальше.[музыка].функции препарата пытаются спастись от.этого значения и получается так что.происходит ошибка это не очень хорошо.давайте обработаем этот вариант то есть.из лобни ну мы его сохраняем данные и.соответственно весь интерфейс.обновляются audi свинец.там мы будем бросать исключения она.сразу здесь поймается.и отобразится ошибка как и в любом.другом случае любое сущее любой другой.ошибки на cubase давайте проверим.и меня сразу же как только мы.переместили точку выполнения мы получаем.mc дотянусь интересно можно попробовать.еще раз.я немного изменила интерфейс скрипта не.записывая этого и не записывал потому.что изменение здесь они касаются только.греческие ничего по теме данного видео.то есть по взаимодействий в интерфейса и.вас здесь не было ну вот видите там.поменялись местами некоторые элементы.добавилась и писания давайте посмотрим.как теперь выглядит здесь добавилась.индикатор заглушки некая validation.[музыка].давайте что-нибудь поищем список теперь.же отображается внизу.вот все-таки.скрипт выглядит хорошо на недостаточное.сечени который проблемы например когда я.нажимаю на ссылку я ожидаю что что-то.произойдет до что-то откроется в.браузере или в этом интерфейсе на ничего.не происходит давайте это исправим для.этого будем использовать функцию которая.тоже появилась в 22 версию паса.называется окон и ral она может.открывать копью реал.таких файлов такие программы но в данном.случае нам нужно открыть ural изменим.наш шаблон по которому генерируется.разметка и по клипу.на эту на эту ссылку будем открывать то.что находится.кто куда идет собственно ссылка увидеть.это в test run’ интерфейса мы не можем.поскольку браузер не может просто взять.и открыть какую-то программу или открыть.кукла не подсирал ну вот вас может.давайте посмотрим как это работает.смелыми щенок о тюков.открываем ссылку ветер открывается брожу.и наведите.и мы видим то что кто куда ведет ссылка.еще одно интересное применение данной.функции это возможность оставить ссылку.на свой сайт.допустим я даю небольшое описание что.это делает и я хотел бы добавить ссылку.на бас давайте так и сделаем вот это.описание здесь просто помещаю как я же.использовал подбирал.сохраняют право.так где то ошиблись.нальчик.а теперь должна работать.отлично то есть каким способом вы можете.оставить ссылку на свой сайт.еще одна вещь которую хотелось бы.изменить это размеры окна по умолчанию.но если мы запускаем скрипт то система.сама убирают размер окна и если честно.то то что выбрана по умолчанию этот.скрипт не очень-то подходит сразу.хочется сделать как-нибудь вот так это.можно изменить двумя способами это все.новшества которые появились версии 22.первое это метод рис arasinda его можно.вызвать в любом месте в любое время и.если вы вызвать совмещали то это будет.не очень красиво потому что тогда.система выберет размер которые ей.нравятся придется какой-то маленький.промежуток времени и будет задан тот.размер который.задан java скрипте и пользователь увидит.такого дёргания это не красила поэтому.весь строй способ это установка размер.окна по умолчанию прямо в настройках.либенфельца вот здесь вот есть это.значение его можно поменять 2 и снова.700 писать нам на 750.это настолько просто колешь меняем.значение и у вас у всех пользователей.настройки по умолчанию сразу жизнь.меняется то есть также вы можете.например удивиться что здесь место.по-прежнему осталось то есть вы можете.самом скрипте.когда поиск выдает список результатов вы.можете изменять высоту соответствующие.тогда.поиск начинается новый поиск снова.изменять его в моника размещения и потом.расширять когда он дает.позитивные результаты вы также можете.через крик найти размер окна чтобы.сохранить значение если пользователи.изменил но мы сейчас этого делать не.будем достаточно того что мы уменьшили.не сильно по умолчанию последнее что.хотелось бы добавить это возможность.сохранять все выдачу фару то есть сейчас.как работает результат есть на место.ничего сделать не можем только.посмотреть на него и высшим хищником.скопировать.хотелось бы иметь кнопку которая.сохраняет все это дело и разъемы сейчас.добавим кнопка будет находиться лазеек.для возьму щенка xedos интерфейса.сделаем нового серую кнопку в нём.кружился.идем соответствующий текст добавим сразу.новый метод чтобы интерфейс нищий за.показывать эту кнопку мы будем только в.том случае если вы vollmer.есть хотя бы одно значение помню что.урок у нас это список поэтому нужно.проявляется в длину.здесь как раз села фьючерс мере.активность то что нам не нужно при.добавлении или очистки logo.как-то заботиться о том чтобы обновлять.видимость этого элемента.так нужно будет добавить какую-нибудь.иконку куда кнопки потому что все кнопки.и настают сильно одинаковыми делать это.можно вот так поменять название конкина.дало давайте посмотрим как это будет с.точки зрения интерфейса выглядит неплохо.теперь функционал самое важно что мы.будем делать сначала показывает диалог.выбора файла пользователям рашида 22.версия такое было невозможно сейчас ну.точнее это было возможно но с некоторыми.хара коми сейчас это делается очень.легко и очень просто для этого есть.функция с и файл дорог есть конечно же и.openfile диалог ну вот это нужно для.именно сохранения результатов и и будем.использовать комментарий гран.изменим название.и обычно нужно задать тип файл с которой.мы работаем со cнять машина была в трц.файл xml ground.вот эта штука нужна стал бы не трогать.остальные фары чтобы диалог и чтобы.система сама добавляла вращения txt файл.если мой этом не сделаем то ли нужно.проверить свою драгу пользователь файл 3.грамм.ну включение переменной будет таллинну.италия.пустая 100 края не помню нужно проверить.на посмотреть документации но в любом.случае их обработает стоит друга хорошо.на данном этапе у нас есть файл.выбранный пользователем который точно.его выбрал теперь нужно сохранить это.данный блок для это тоже наши стволы api.для работы с файловой системы которая.добавила сюда строя версия 10 множество.всего вы можете посчитать но мы будем.использовать файл этот метод проще.некуда.[музыка].входные параметры это путь и строка.что мы пробуем сохранить это лог налога.находится виде списка поэтому нам нужно.преобразовать его строку.давайте создадим новую переменную data.которую запишем лоб и и злыми силами.которые соединяют строке.заданным разделить а развитием будет.выступают два символа переноса на новую.строку таким образом правильно и каждая.строка будет соответствовать элемента.списка и это не обязательно но давайте в.целях тестирования потом уберем мы можем.также использовать метод ролл помирал.который мы уже использовали для того.чтобы открыть и показать что мы.сохранили.посредственный вернул бежал ли вам.просто копируем сюда этот файл.вас разберется что это ссылка или файла.что есть делать вроде бы все нужно.сохранить здесь проверить это все не.удастся.дорог ну если браузер еще манок.заставить показывает то вот записать.файл.точно не получится так что нужно.открывать вас и смотреть там.давайте режиме запуска снова ищем.который.некоторое время браузере щит парясь.результаты проявляются кнопка.можем нажать нас и врезался живем файл.карты и в этом файле проявляются в ровно.те результаты которые были найдены.отлично ну наверно стоит выбрать.открытие файла.она так будет более правильно с точки.зрения пользовательского интерфейса.это все наш клип котов конечно можно еще.его улучшается ты цепляешься.многопоточность добавляется.целый список запросов но для.демонстрации и этого достаточно осталось.только скомпилировать и посмотреть как.это все будет работать без барс.обязательно нужно обновить приятель на.сервере создадим автономное приложение.точно за этим запускаем вот эту папку.если отправить все в архив уже можно.отдавать пользователю давайте посмотрим.как это все будет работать.я остановил запись как раскрыть.загружался.но вот сейчас я запускаю его первый раз.и все выглядят точно также какие тогда.потому его делали.давайте промо проверишь прокси все.отлично и снова ищем котов.и получаем каретные результаты

Создание интерфейса бота с нуля на BAS.

Как? Вы еще не смотрели? Ну это зря...