![Евгений Хорошилов | Khoroshilov Evgeniy](/img/default-banner.jpg)
- 20
- 181 478
Евгений Хорошилов | Khoroshilov Evgeniy
United States
Приєднався 18 лип 2010
Делюсь своим опытом программирования, эксперементирую с кодом, рассуждаю о добре и зле)))
Автоматическая установка зависимостей прямо из скрипта. Выполнение команд shell | NPM install | Node
Обучение программированию: курс-программирование.рф/?
Всем привет! Небольшое видео о том, как выполнять shell-команды из скрипта. Наш скрипт автоматически установит требуемые зависимости, запустив команду npm install.
Подписывайтесь на мой телеграм-канал "Закодированный": t.me/xe_coding
Потребовалось написать саморазворачивающийся скрипт на Node.js. Можно, конечно, написать bash-скрипт, но нам ведь интересно все сделать прямо из скрипта javascript.
Используем стандартный пакет Node.js child_process, метод exec.
Всем привет! Небольшое видео о том, как выполнять shell-команды из скрипта. Наш скрипт автоматически установит требуемые зависимости, запустив команду npm install.
Подписывайтесь на мой телеграм-канал "Закодированный": t.me/xe_coding
Потребовалось написать саморазворачивающийся скрипт на Node.js. Можно, конечно, написать bash-скрипт, но нам ведь интересно все сделать прямо из скрипта javascript.
Используем стандартный пакет Node.js child_process, метод exec.
Переглядів: 911
Відео
Добавление и модификация данных в Google Sheets | Google Apps Script
Переглядів 8 тис.2 роки тому
Обучение программированию: курс-программирование.рф/? Пишем скрипты (макросы) для Гугл Таблиц. В этом ролике разбираемся, как работают функции вставки и модификации данных. Разберем единичную и множественную вставку данных. Коснемся методов, которые позволяют вставлять формулы. В итоге, подготовим отчет в котором реализуем практически все рассматриваемые методы. Дополнительно, разберем функции ...
Google Sheets получение значений ячеек скриптом. Google Apps Script для начинающих
Переглядів 9 тис.2 роки тому
Обучение программированию: курс-программирование.рф/? Получение данных и формул из ячеек Таблицы Google. Использование следующих методов: getRange() - получение диапазона ячеек getValue()/getValues() - получение значений ячеек getFormula()/getFormulas() - получение формул getFormulaR1C1()/getFormulasR1C1() - получение формул в R1C1 getSheetValues() - получение диапазона значений getDataRange() ...
Программирование Google Sheets с нуля. Работаем с созданием книги, листа. Скрипты Google Sheets
Переглядів 13 тис.2 роки тому
Разработка скриптов для автоматизации и интеграции продуктов Google: Google Таблицы, Документы, Gmail и другие продукты. Обучение программированию: курс-программирование.рф/? В этом видео, мы познакомимся с основами Google Apps Script. Научимся создавать новые документы Google Sheets. Открывать существующие, используя идентификатор таблицы, URL и через получение файла с Google Drive (Гугл Диска...
Передача JSON в Google Таблицы без API | doPost() & doGet() | Google Apps | Google Sheets Script
Переглядів 15 тис.2 роки тому
Обучение программированию: курс-программирование.рф/? Простой и комфортный способ отправить и получить данных в Google Таблицах через POSt и GET запросы. Без необходимости использовать сложные SDK, без нагрузки на браузер и собственные сервера. Практически любые манипуляции с данными выполняются на стороне Google. Статьи по программированию, можно найти в моем блоге: codeblog.khoroshilov.pro/ П...
Бот автозалива рекламы в TikTok на JS. Автоматизация Dolphin{anty} | Javascriipt | Puppeteer | API
Переглядів 2,8 тис.2 роки тому
Обучение программированию: курс-программирование.рф/? В продолжение темы автоматизации на базе антидетект браузера Dolphin {anty}(anty.dolphin.ru.com/a/2702), скрипт автоматического создания рекламы в TikTok. Бот создает новую рекламную компанию, проставляет нужные параметры, указывает рекламный бюджет и создает объявление. Включая загрузку видео. Скрипт написан на Javascript. Для запуска потре...
Автоматизация Dolphin{anty} на JavaScript | Работа с API антидетект браузера | Работа с Postman
Переглядів 12 тис.2 роки тому
Обучение программированию: курс-программирование.рф/? Пример взаимодействия с анти-детект браузером Dolphin Простой пример скрипта на JavaScript, который запускает инстанс антидетект браузера Dolphin{anty}, открывает Google и делает скриншот. Простейшая автоматизация на основе которой можно построить полноценных ботов для визуальных тестов, а так же автоматизировать любые рутинные действия в бр...
А ты знаешь это о Javascript? Фишки и трюки, которые используют профессионалы. Вторая часть
Переглядів 6742 роки тому
Обучение программированию: курс-программирование.рф/? В данном видео рассматриваю возможности языка, которые практически не встречал в коде программистов. При этом, правильное использование этих фишек, способно сделать код более эффективным, красивым и читаемым. Неправильное использование, наоборот. Для того и нужно знать эти конструкции, чтобы копаясь в чужом коде понимать с чем сталкиваетесь....
Трюки и фишки Javascript о которых вы недогадывались.
Переглядів 9622 роки тому
Обучение программированию: курс-программирование.рф/? В данном видео рассматриваю возможности языка, которые практически не встречал в коде других программистов. При этом, правильное использование этих фишек, способно сделать код более эффективным, красивым и читаемым. Таймкоды: Предисловие 00:00 Оператор comma (запятая): 01:20 Нестандартное использование цикла while 06:55 "Двойной" цикл for 08...
Любая IDE от JetBrains абсолютно бесплатно! Лайф-хак для тех, кому надо. WebSrorm | PhpStorm
Переглядів 70 тис.2 роки тому
Обучение программированию: курс-программирование.рф/? Обратите внимание, что речь идет об ученической лицензии. Продукт ничем не ограничен, но выдается не для коммерческой деятельности, а для обучения. Вариант отлично подойдет, если вы только начали учиться и хочется делать это сразу в нормальной IDE, с которой столкнетесь в реальной работе. Например, если проходите курс и не хватает бесплатног...
Свое контекстное меню в браузере. Пишем расширение для Chrome "Цитаты". Управляем меню Chrome.
Переглядів 2,5 тис.2 роки тому
Обучение программированию: курс-программирование.рф/? В данном уроке мы разберем вопрос создания контекстного меню для собственного Google Chrome расширения. В завершении ролика, создадим плагин для браузера, который позволит сохранять выделенный текст как цитаты - отличная практика, для тренировки навыков работы с контекстным меню. Вы узнаете, в чем отличия между разными контекстами. Как брауз...
Цепочка методов в JavaScript. Чеининг функций. JS Method Chaining. Array.prototype.
Переглядів 1,6 тис.2 роки тому
Обучение программированию: курс-программирование.рф/? Всем привет! В этом видео разбираем две крайне интересных и полезных темы: 1. Создание собственных цепочек вызова. Наподобие методов массива: new Array(10).map... 2. Добавление собственных методов к Array (Array.prototype). Темы не сложные, но крайне полезные. Особенно, если предполагается достаточно сложная архитектура проекта. Рассмотрим д...
Google Sheets скрипты: отдаем готовый JSON по GET-запросу. Google Web-apps. Google Scripts.
Переглядів 15 тис.2 роки тому
Обучение программированию: курс-программирование.рф/? Довольно часто приходится сталкиваться с Google Sheets (Гугл Табилцами). Решил записать небольшой видео-урок, как подготовить и отдать данные в формат JSON со стороны Google Sheets (web-приложения). Зачастую, выгоднее использовать подобный вариант подготовки и отдачи данных. Работа через API более трудоемкая, больше нагружает клиент и не все...
Скриншот экрана и распознание текста на JS. Расширение для Google Chrome. Vision Яндекс Cloud (OCR)
Переглядів 2,3 тис.2 роки тому
Обучение программированию: курс-программирование.рф/? Это расширение реально выполненный заказ на бирже фриланса Кворк (kwork.ru/ref/882481). Видео снято и опубликовано с разрешения клиента. Как оно работает:У пользователя запрашивается разрешение на скриншот экранаСкриншот делается через WebRTC. В примере показан вариант скриншота всего экрана. Можно делать скрин только браузера (window) или з...
Решаем задачи по программированию на Сodewars p.000 | JavaScript
Переглядів 2793 роки тому
Обучение программированию: курс-программирование.рф/? А почему бы не заняться решением задач на известном сайте codewars.com? Напомню, это сайт с алгоритмическими задачами на разных языках программирования. Его цель в оттачивании навыков мастерства кодинга. Помимо самого решения задачи, пользователям доступен просмотр решений других. Таким образом, вы можете собрать лучшие практики и сделать их...
Делаем расширение для браузера: Wordstat Parser. Часть 1. Планирование расширения | JavaScript
Переглядів 1,6 тис.3 роки тому
Делаем расширение для браузера: Wordstat Parser. Часть 1. Планирование расширения | JavaScript
Делаем расширение для Google Chrome | JavaScript | JS
Переглядів 20 тис.3 роки тому
Делаем расширение для Google Chrome | JavaScript | JS
Вводный урок по разработке расширений для браузеров | JavaScript | Chrome, Firefox
Переглядів 4,2 тис.3 роки тому
Вводный урок по разработке расширений для браузеров | JavaScript | Chrome, Firefox
5 полезных трюков JavaScript для профессиональной разработки
Переглядів 5003 роки тому
5 полезных трюков JavaScript для профессиональной разработки
Как программисту стать популярным на Фотостране. Автоматизация действий в браузере на JavaScript
Переглядів 1,3 тис.3 роки тому
Как программисту стать популярным на Фотостране. Автоматизация действий в браузере на JavaScript
не работает. решил 4 задачи. 21.04.2024 г
не совсем понял как в листенер передается функция saveQuote без параметров, но сама функция описана уже с параметрами. Как она получает параметры?
А потом могут начатся проблемы с добавлением записей в табличу через АПИ ) не удивляйтесь )
Благодарю!
Спасибо. Не могу простой скрипт найти. Как единоразово получить копию из соседней ячейки, чтобы в последствии они (ячейки) жили своими жизнями?
Запиши видео для автоматизации гологин
фоновый звук здесь лишний
Евгений, спасибо за видео. Единственный момент мне не понятен как "сприпт" узнает в какую таблицу надо записывать данные?
В последних версиях Chrome не работает.
Здравствуйте. Я обратился ко второму листу через индекс, и вроде все хорошо. Выводит название листа и данные ячейки. Но не могу получить url 2 листа. Подскажите пожалуйста, как получить url 2 листа? function myFunction3() { const ss = SpreadsheetApp.getActiveSpreadsheet().getSheets()[1]; const name =ss.getSheetName(); Logger.log(name); const value = ss.getRange('C2').getValue(); Logger.log(value); Logger.log(ss.getUrl()); // TypeError: ss.getUrl is not a function }
а можешь сделать видео по звукорежиссерству? очень нужно
👌
вопрос можно - вот брать мы научились через GET а теперь хотелось бы еще и записывать туда у вас нет такого видео?
Не очень понимаю вопрос. Что вы имеете ввиду под записью в GET? Есть про возврат ответа на HTTP запрос, то это просто. В doGet() возвращаем данные в нужном виде. Например, если у нас предполагается веб-морда, можем разместить HTML-файл в проекте. Тогда код будет выглядеть как-то так: function doGet(e) { ....... return HtmlService.createHtmlOutputFromFile('<your-file-name>'); } Если нужно вернуть что-то другое, есть такой вариант: return ContentService.createTextOutput(<your-data>).setMimeType(ContentService.MimeType.<your-mime-type>); Конечно же, вместо значений в < > подставляем нужные значения без угловых скобок. Доступные MIME типы: TEXT, JSON, JAVASCRIPT, CSV, VCARD, ICAL. Ну, в целом, когда вы точку поставите, после MimeType, гугл все сам покажет, что есть. В видео где-то был вывод. Честно сказать не помню в каких конкретно. Но должны быть примеры. Если речь о запросах к другим ресурсам, то вам смотреть в сторону UrlFetchApp. По поводу этого тоже должно быть видео. К сожалению, пока нет возможности записывать ролики, но возможно вернусь)
Спасибо за видео! Можно ли получить через запрос только информацию из ячейки? Я хотел бы сделать QR код и информацией из ячейки.
Мне кажется или ты забросил ютуб
Да, руки все не доходят заняться снова.
А чем storage Гугла лучше обычного localStorage, чтобы для него запрашивать разрешение?
нихера не ясно .. это качать разрешения нужно или какойто файл редактировать ??
Жесть, что он творит!!!
Классное видео, большое спасибо! Формула только в самом конце неправильно сработала. Там в итоге не диапазон суммируется, а только по две ячейки ([A2 + A7] , [B2 + B7]).
Так он вместо двоеточия в SUM() пишет точку с запятой. Поэтому вместо диапазона получается как перечисление ячеек. Надо SUM( R[...]C :R[-1]C) И не только в конце, а в начале с массивом в три строки так же))) А, в целом, видео - класс!
как с вами сязаться *
Супер, спасибо!
Добрый день! Почему-то выходит ошибка в report.getRange(2,i).setFormula('=QUERY(data!B:C,"select C where B='${value}'",0)') пишет, что неправильный синтаксис. Подскажите, пожалуйста, где? Все сверила, все ровно как у вас. Формула в гугл-таблице работает.
Добрый день! Разобрались с проблемой? Если нет, напишите, ошибка синтаксиса в скрипте или в самой таблице? Какая формула добавляется в таблицу? К нужным листам обращаетесь?
@@KhoroshilovEI Ошибка возникает в тот момент, когда в формуле заменяешь "&A1&" на ${value}. Сразу же подчеркивает знак доллара и дальше после value. Запрос не выполняется, так как пишет, что синтаксис не правильный. А что означает знак доллара? Такое ощущение, что программа не понимает, что от нее хотят именно в этом месте.
@@user-uc4gq3mh1v какие кавычки вы используете? Есть разница при использовании ` (кнопка с тильдой ~) и ' (буква Э). Когда используется ` можно использовать подстановки ${}. Если используете другой вид кавычек, нужно писать 'какая-то форумал до подстановки' + value + ' что-то после подстановки'. Больше информации можно найти в справочных материалах по Javascript.
@@KhoroshilovEI Спасибо, что отвечаете! Попробовала изменить кавычки. Если ${value} забирать в кавычки, которые на Э, то запрос не выполняется, неправильный синтаксис. Если забирать в кавычки на кнопке с тильдой, то запрос выполняется, но появляется ошибка в гугл-таблице в ячейках "Не удалось интерпретировать query string. Подробности: Параметр 2 в функции QUERY:NO_COLUMN: ${value}". Прикладываю код, посмотрите, пожалуйста: function setOtchet1() { const ss = SpreadsheetApp.openById("1XoOrJ27LYZ1yH29LRy25fbttxKXbBpkKsFYHX58xzW4") const report = ss.getSheetByName("Report") const range = report.getRange("A1") range.setFormula("=TRANSPOSE(UNIQUE(data!B:B))") lastColumn = report.getLastColumn() +1 for( let i=1; i < lastColumn; i++) { const value = report.getRange(1,i).getValue() report.getRange(2,i).setFormula('=QUERY(data!B:C,"select C where B=`${value}`",0)') }}
@@user-uc4gq3mh1v уже завтра гляну, но судя по всему вот тут ошибка: '=QUERY(data!B:C,"select C where B=`${value}`",0)' обратные кавычки должны быть снаружи, т.е. вся строка должна быть в них: `=QUERY(data!B:C,"select C where B='${value}'",0)` в ином случае, у вас формула в ячейке так и будет выглядеть B=`${value}`, т.е. подстановки не происходит
Спасибо тебе огромное !! Ждём продолжения!!
Разработкой гугла, наебывать гугл ?
В целом да, хоть и не так красиво, как гадать рекаптчу через гугл-картинки. Эх... были времена...
Подскажите как решить данную проблему, откладка страниц service worker (неактивно). При загрузки расширение. Что может быть? Заранее вам спасибо)
Cool!😊 Давай ещё!
Cool!😊
не работает!
Все четко, ясно и понятно. Спасибо огромное! Вот только у меня идет задержка при обновлении URL примерно 4 секунды. Делал отладку, но не понятно, что может в скрипте давать такую паузу.
На стронице расширений показуется ошибка в JS 17 строка.
Установил показует ошибку что версия 2 не актуальна ! Заменил в коде 2 на 3 теперь ошибку не показует и часы не показует((( *_после токиз видео грустно_* они дематевируют!
Поддержка расширений манифеста v2 прекращена с января 2022 года! При чем тут видео? Технологии устаревают. Это стандартный процесс. Без соответствующих изменений (приведение всего к стандартам v3) расширение в хроме работать не будет. Просто циферку поменять не выйдет. Проблема не в видео, а проблема в вас и в вашей лени. Гуглится все за 3 секунды.
А через питон это реально программировать?
да
Какое же всё таки применение можно найти данному расширению ? Спустя 2 года думаю можно раскрыть, так сказать, карты. Интересно было бы узнать, а то что-то в голову ничего не приходит ;)
Долфин херня Уже 2 месяц юзаю сегодня после обновы уже точно решил что нахер сваливаю с этого мусора Error while choosing host to download local-api. Please contact support. Ну вот че за херня висит? И висит уже 5 часов сапорт игнорит по жесткому У них что обнова то пиздец все жалуются что с антиком нереально работать задолбали
Все круто. Но музыка совершенно не к месту.
Добрый день, начинаю учить и сразу затык - не могу получить SpreadsheetApp - не появляется подсказка и соответственно список методов после точки тоже (( В чем может быть дело?
Привет, хорошее видео. Я предполагаю что ошибка была из-за того, что у стрелочной функции нет this и this = window, а при использовании function declaration this указывает на chrome отчего все работает?
Здравствуйте. Спасибо за очень интересные уроки. А какой учебник можете порекомендовать для изучения JS вообще? Я так понимаю синтаксис гугл скриптов на них построен, ноу меня познания очень старые, по коду смотрю есть вещи которые я не изучал, и они более удобные чем древний JS с которым я сталкивался
редактор скриптов теперь нет в новых версиях таблицы гугл где искать? Сам отвечу - нашел в Приложения - AppScript
Дельфин вообще не топ на самом деле, как минимум 20 сайтов нашел, которые, при подключении прокси через дельфин, палят прокси. Если же подключаю прокси к самому пк, и захожу так же через профиль (но уже без указанного внутри профиля прокси), - сайт меня пропускает. Сам антик неплохой, но все вокруг знают как сильно он вылетает раз в месяц при чем стабильно.. сколько данных пользователей сливали( Мы с командой из-за этого перешли на Гологин, пользуемся без малого 5 месяцев, особенно радует саппорт и прокси, самое выгодное решение в соотношении цена/качество
Благодарю!
Здравствуйте можно ли как то с вами связаться?хотелось бы узнать про написание скриптов для сайта меняя расширения хрома.
doPost и doGet - хардкорные наименования методов? Почему при вызове через Postman, она дёргает именно doGet, а не getResult?
Зарезервированные имена методов
откуда в ячейках формулы? у меня все ячейки чистые. может в ячейки математические формулы вложить? очень крутая тема
А как с формы данные отправлять на gogglesheet? Здесь всё понятно и очень интересно ! Я создал форму на html, но никакие данные из формы не проявляются в таблице. я точно так делал как учитель показывал на своём обучающем ролике, но данные не идут в таблицу?
Отличное видео, таких мало. Есть вариант бесплатной консультации и помощи со скриптами, если есть, как связаться.
Привет! Отличное видео, все четко и понятно. Смотрю уже давно ничего не выкладывали, может все-таки получится время от времени продолжить начатое? Было бы здорово!!!
Я прошу прощения. Но это не учебное видео. Это демонстрация того, что автор умеет. Музыка к чему? Чтобы отвлекала и мешала слушать? Делать процедуру с конца зачем? Чтобы сэкономить время - да, чтобы понятнее было - нет. По ходу изготовления одной процедуры сразу же копировать куски в другую - зачем? Чтобы размыть внимание? Я пришел из 1с, где мне для конфигурации нужен простой вариант устроить веб морду для широких масс, не связываясь с сайтом. Люди анкету заполняют, 1с через запросы всасывает. Смотрю Ваше видео, вроде бы оно. Но блин, как учебное видео не годится. (опыт разработки SQL, 1с, корпоративные системы - 30 лет)
Очень кратко и доступно! Спасибо Вам большое!