diff --git a/docs/Android/App.mdx b/docs/Android/App.mdx deleted file mode 100644 index b9414d95..00000000 --- a/docs/Android/App.mdx +++ /dev/null @@ -1,97 +0,0 @@ ---- -sidebar_position: 4 -title: Действия с приложением -description: Функции для работы в виртуальной машине ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ -Сейчас мы рассмотрим доступные функции для работы непосредственно в виртуальной машине. Например, установка приложений, запуск, остановка, выполнение консольной команды (ADB Shell) и др. - - -## Как добавить в проект? -***Нажимаем ПКМ → Добавить действие → Android → Действия с приложением*** - -![Добавить в проект](./assets/App/App_pic1.png) -_______________________________________________ -## Доступные действия. -### Установка приложения. -![Установка приложения](./assets/App/App_pic2.png) -Данное действие позволяет установить приложение из APK файла. Поддерживаемые форматы: ***.xapk, .apkm, .apks*** -_______________________________________________ -### Удаление приложения. -![Удаление приложения](./assets/App/App_pic3.png) -Этот экшен удаляет установленное приложение по его имени, которое можно узнать с помощью инструмента -**Установленные приложения**. -_______________________________________________ -### Открыть приложение. -![Открыть приложение](./assets/App/App_pic4.png) -Позволяет запустить ранее установленное приложение. -_______________________________________________ -### Закрыть приложение. -![Закрыть приложение](./assets/App/App_pic5.png) -Закрывает приложение (аналог команды `adb shell am force-stop com.package`). -_______________________________________________ -### Очистка приложения. -![Очистка приложения](./assets/App/App_pic6.png) -Это действие нужно, чтобы стереть все данные пользователя. -Поставив галочку на ***Очистить только кэш***, вы удалите только его, оставив все остальное. -_______________________________________________ -### Сохранить данные приложения. -![Сохранить данные приложения](./assets/App/App_pic7.png) -Данный экшен сохраняет все данные приложения. -#### Доступные параметры: -- *Имя приложения*. Можно узнать с помощью инструмента **Установленные приложения**. -- *Путь к файлу с архивом*. Тут необходимо указать путь, куда будут сохранены заархивированные данные приложения (формат архива - ***tar.gz***). -:::tip **Лучше так.** -Перед сохранением данных приложение лучше закрыть с помощью экшена Эмуляция клавиатуры с таким текстом внутри: `{AndroidKeys.HOME}`. Это эмуляция нажатия клавиши HOME. -::: - -#### Зачем закрывать приложение перед сохранением? -Если в момент сохранения данных приложение будет открыто, то есть вероятность того, что часть из них будет в оперативной памяти, а не в файлах. Тогда эти данные не будут сохранены. Также не стоит для этих целей закрывать приложение с помощью экшена **Закрыть приложение**, так как он убивает процесс, что может привести к потере данных. -### Восстановить данные приложения. -![Восстановить данные приложения](./assets/App/App_pic8.png) -С помощью данной функции вы можете загрузить данные приложения, которые были сохранены с помощью прошлого действия (***Сохранить данные приложения***). -#### Доступные параметры: -- *Имя приложения*. Можно узнать с помощью инструмента **Установленные приложения**. -- *Путь к файлу с архивом*. Тут необходимо указать путь к архиву с данным от приложения. -:::warning **Внимание.** -При восстановлении данных приложение должно быть установлено в системе, но не запущено! -::: - -### Получить apk приложения. -![Получить apk приложения](./assets/App/App_pic9.png) -Этот экшен позволяет получить установочный файл приложения в формате ***.apk*** или ***.apks*** -В дальнейшем приложение можно будет установить с помощью экшена **Установка apk**. -_______________________________________________ -### Получить куки из приложения. -![Получить куки из приложения](./assets/App/App_pic10.png) -Данное действие получает куки из приложений с Web содержимым, которые возвращаются в формате json. -Затем эти данные можно прочесть с помощью экшена **Обработка JSON и XML** -_______________________________________________ -### Получить уведомления. -![Получить уведомления](./assets/App/App_pic11.png) -Экшен получает уведомления от приложений из шторки (верхней системной панели) в формате json. -Затем эти данные можно прочесть с помощью экшена **Обработка JSON и XML** -_______________________________________________ -### Очистить уведомления. -![Очистить уведомления](./assets/App/App_pic15.png) -Эта функция убирает все накопившиеся уведомления из верхней шторки. -_______________________________________________ -### Имя активного приложения. -![Имя активного приложения](./assets/App/App_pic12.png) -С помощью этого действия мы можем получить название приложения, которое активно и находится на переднем плане устройства. -_______________________________________________ -### Получить список приложений. -![Получить список приложений](./assets/App/App_pic13.png) -Экшен позволяет получить названия всех установленных приложений и сохранить их в список. -#### Фильтр получаемых приложений: -- *Все*. Все приложения установленные на устройстве. -- *Системные*. Предустановленные приложения, которые обычно нельзя удалить, а можно только скрыть. -- *Пользовательские*. Приложения, которые были установлены вами в процессе работы. -_______________________________________________ -### Проверка, что приложение уже установлено. -![Проверка, что приложение уже установлено](./assets/App/App_pic14.png) -Данная функция проверяет наличие приложения на устройстве. Его отсутствие будет трактоваться как ошибка, и выход пойдет по красной ветке. - - \ No newline at end of file diff --git a/docs/Android/Files.mdx b/docs/Android/Files.mdx deleted file mode 100644 index 80c1e8e6..00000000 --- a/docs/Android/Files.mdx +++ /dev/null @@ -1,32 +0,0 @@ ---- -sidebar_position: 5 -title: Работа с файлами -description: Отправка файлов на устройство и обратно. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ -Данный экшен позволяет отправлять файлы с компьютера на устройство и наоборот. -_______________________________________________ -## Как добавить в проект? -***Нажимаем ПКМ → Добавить действие → Android → Файлы*** - -![Добавить в проект](./assets/Files/Files_pic1.png) -_______________________________________________ -### Отправка файла. -![Отправка файла](./assets/Files/Files_pic2.png) -Эту функция нужна, чтобы скопировать файл с компьютера на устройство. -#### Доступные параметры: -- *Путь к файлу*. Полный путь к файлу на компьютере. -- *Новый путь*. Место, куда будет сохранен скопированный файл. -Можно указать полный путь, задав название файла: ***/sdcard/Pictures/pic.png*** или же указать -только папку: ***/sdcard/Pictures/***. Во втором сценарии файл будет скопирован с имеющимся названием. -Медиафайлы будут автоматически обновлены в галерее после отправки. -:::info **Обратите внимание.** -Для отправки файлов в папки, которые находятся в режиме **Только для чтения**, такие как **/system**, необходимо предварительно выполнить команду `mount -o remount,rw /system` с помощью экшена **Консольная команда (ADB Shell)**. -::: - -### Получение файла. -![Получение файла](./assets/Files/Files_pic3.png) - -С помощью данного действия можно наоборот скопировать файл уже с устройства на компьютер. Параметры идентичны тем, что описаны в прошлой функции, без каких-либо нюансов. \ No newline at end of file diff --git a/docs/Android/Keyboard_and_Swipe.mdx b/docs/Android/Keyboard_and_Swipe.mdx deleted file mode 100644 index 1cd0b999..00000000 --- a/docs/Android/Keyboard_and_Swipe.mdx +++ /dev/null @@ -1,79 +0,0 @@ ---- -sidebar_position: 6 -title: Эмуляция клавиатуры и Swipe. -description: Нажатие на клавиатуру и прокручивание страницы. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ -## Эмуляция клавиатуры в ZD. -![Добавить в проект](./assets/Keyboard_and_Swipe/Keyboard_and_Swipe_pic1.png) -Экшен позволяет эмулировать ввод данных в текстовые поля с помощью клавиатуры. А также нажатие системных кнопок, таких как кнопка **«Домой»**, **«Все запущенные приложения»**, **«Назад»**, питание, звук и прочие. -_______________________________________________ -### Как добавить в проект? -***Нажимаем ПКМ → Добавить действие → Android → Эмуляция клавиатуры*** - -![Добавить в проект](./assets/Keyboard_and_Swipe/Keyboard_and_Swipe_pic2.png) -_______________________________________________ -### Что можно указать в поле «Текст»? -![Добавить в проект](./assets/Keyboard_and_Swipe/Keyboard_and_Swipe_pic3.png) - -В текстовое поле экшена можно ввести простой текст, переменные или макросы специальных клавиш: `{AndroidKeys.BACK}`, `{AndroidKeys.HOME}`, `{AndroidKeys.CLEAR}`. Последние эмулируют некоторые системные (и не только) кнопки Android. - -### Какие есть макросы клавиш? -- `{AndroidKeys.ENTER}`. Новая строка. Отправка формы на сайтах. Подтверждение действий в приложениях. -- `{AndroidKeys.APP_SWITCH}`. Отображение недавно запущенных приложений. -- `{AndroidKeys.BACK}`. Возврат назад. -- `{AndroidKeys.CLEAR}`. Очистить поле ввода. -- `{AndroidKeys.HOME}`. Возврат на рабочий стол. -- `{AndroidKeys.COPY}`. Копирование выделенного текста в буфер обмена. -- `{AndroidKeys.POWER}`. Эмуляция нажатия кнопки питания. -- `{AndroidKeys.VOLUME_DOWN/UP}`. Уменьшение или увелечение громкости. -- `{AndroidKeys.CAMERA}`. Активация камеры. -- `{AndroidKeys.DEL}`. Удаление одного символа слева от курсора. - -Это только часть доступных команд, остальные можно найти [**Здесь**](https://developer.android.com/reference/android/view/KeyEvent). - -
-**Помимо имени для вызова кнопки можно также использовать ее цифровой код. -Найти его можно по ссылке выше, нажав на название макроса.** - - - ![Цифровой код](./assets/Keyboard_and_Swipe/Keyboard_and_Swipe_pic4.png) -
-> - -### Задержка. -![Добавить в проект](./assets/Keyboard_and_Swipe/Keyboard_and_Swipe_pic5.png) -Данный параметр позволяет выставить паузу между выводом символов. - -![Добавить в проект](./assets/Keyboard_and_Swipe/Keyboard_and_Swipe_pic6.png) -Однако если убрать чекбокс возле слова “Задержка”, то это ее отключит, и текст будет выводиться моментально. -:::warning **Внимательно.** -При отключении задержки перестают работать Android макросы. Они будут напечатаны как обычный текст. -::: - -## Эмуляция swipe в ZD. -С помощью этого действия можно совершить свайп. Он применяется при вертикальной прокрутке страниц в браузере и других приложениях; при перемещении по горизонтальному меню; при движении по экрану по диагонали. -### Как добавить в проект? -*Нажимаем ПКМ → Добавить действие → Android → Эмуляция swipe* - -![Добавить в проект](./assets/Keyboard_and_Swipe/Keyboard_and_Swipe_pic8.png) -_______________________________________________ -### Доступные параметры. -![Добавить в проект](./assets/Keyboard_and_Swipe/Keyboard_and_Swipe_pic7.png) -#### Координаты. -Указываем координаты начальной ***(X от и Y от)*** и конечной ***(X до и Y до)*** точек свайпа. -Где ***X*** – координата по горизонтали, а ***Y*** – по вертикали. -#### Long Tap And Swipe. -Если поставить здесь галочку, то перед свайпом будет эмулировано долгое нажатие. -#### Продолжительность (мс). -Эта настройка регулирует скорость в милисекундах, с которой должен быть осуществлён свайп. -#### Изогнутый. -Позволяет выполнить более реалистичное движение пальца не по прямой, а кривой линии. - - - - - - diff --git a/docs/Android/Text_Checker.mdx b/docs/Android/Text_Checker.mdx deleted file mode 100644 index 57a3c522..00000000 --- a/docs/Android/Text_Checker.mdx +++ /dev/null @@ -1,8 +0,0 @@ ---- -sidebar_position: 8 -title: Проверка текста. -description: Проверка наличия текста на экране. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ \ No newline at end of file diff --git a/docs/Android/Touch_Emulation.mdx b/docs/Android/Touch_Emulation.mdx deleted file mode 100644 index de954ba4..00000000 --- a/docs/Android/Touch_Emulation.mdx +++ /dev/null @@ -1,8 +0,0 @@ ---- -sidebar_position: 7 -title: Эмуляция Touch. -description: Эмулировать Touch-событие в пределах указанных координат. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ \ No newline at end of file diff --git a/docs/Android/Utilities.mdx b/docs/Android/Utilities.mdx deleted file mode 100644 index 17cef5cc..00000000 --- a/docs/Android/Utilities.mdx +++ /dev/null @@ -1,116 +0,0 @@ ---- -sidebar_position: 3 -title: Утилиты -description: Обзор экшена Утилиты ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ -В данном экшене собраны различные функции, которые будут нам полезны при работе с проектом. - -## Как добавить утилиты в проект? -***Нажимаем ПКМ → Добавить действие → Android → Утилиты*** - -![Добавить утилиту](./assets/Utilities/Utilities_pic1.png) -_______________________________________________ -## Доступные утилиты. -### Консольная команда (ADB Shell) -![ADB shell](./assets/Utilities/Utilities_pic2.png) -:::info **Данный экшен не является командой ADB в прямом смысле.** -Его стоит воспринимать как консоль или терминал эмулятора. Все команды вводятся без ADB Shell в начале. -::: - -Принцип работы этой утилиты схож с работой в приложении [**Terminal Emulator for Android**](https://apkpure.com/terminal-emulator-for-android/jackpal.androidterm). То есть она позволяет выполнить встроенные в Android консольные Linux команды. - -У этого экшена есть таймаут в 10 секунд. Если команда не выполнилась за это время, то экшен завершит работу с ошибкой (выход по красной ветке). - -Примеры команд: -- **`ls -la /sdcard/Download`** — получить все файлы и директории по пути *`/sdcard/Download`*. -- **`pm list packages`** — все установленные приложения. -- **`pm list packages -3`** — только сторонние приложения. -![Пример команд](./assets/Utilities/Utilities_pic3.png) -#### Положить результат в переменную. -Здесь необходимо указать существующую или новую переменную, в которую будет сохранён результат работы. -#### Отправка/получение файлов и папок. -Рассматриваемая утилита также поддерживает выполнение команд для отправки и получения файлов с устройства: -- Отправить папку: *`adb push`* **`"c:\MyFolder"`** **`/sdcard/`**. -- Отправить файл: *`adb push`* **`"{-Project.Directory-}myFile.txt"`** **`/sdcard/myFileNewName.txt`**. -- Получить папку: *`adb pull`* **`/sdcard/myFolder`** **`c:\Users\Public`**. -- Получить файл: *`adb pull`* **`/sdcard/myFile.txt`** **`"{-Project.Directory-}myFileNewName.txt"`**. -:::tip **Первый путь в запросе это *откуда* берем файл, второй *куда* отправляем.** -::: -_______________________________________________ -### Установка Geo-позиции. -![Геопозиция](./assets/Utilities/Utilities_pic4.png) -Данная утилита позволяет подменить местоположение устройства. - -#### Доступные параметры: -- *Широта*. Допустимые значения от -90 до 90. -- *Долгота*. Допустимые значения от -180 до 180. -Можно использовать дробные значения, используя разделитель [**.**] точка, либо [**,**] запятая. -Например, широта и долгота Нью-Йорка: *40.7143* и *-74.006* -_______________________________________________ -### Настройка WiFi. -![Вайфай](./assets/Utilities/Utilities_pic5.png) -С помощью этого действия можно подменить имя WiFi сети (SSID), через который “подключен” эмулятор. -_______________________________________________ -### Сбросить Google Advert Id. -![Advert](./assets/Utilities/Utilities_pic6.png) -Эта утилита сбрасывает рекламный идентификатор устройства. -_______________________________________________ -### Получить структуру элементов (XML). -![XML](./assets/Utilities/Utilities_pic7.png) -Позволяет получить структуру элементов экрана в виде XML строки. Это те же данные, что отображены в -*Окне дерева элементов*, только в виде **XML строки**. Затем эти данные можно разобрать с помощью экшена -*Обработка JSON и XML*. -#### Одни из полезных атрибутов, которые можно получить у элемента: -- координаты и ширину с высотой (атрибут **bounds**), -- отображаемый текст (атрибут **text**), -- сведения о том, отображён ли элемент (атрибут **displayed**). -_______________________________________________ -### Масштабирование. -![Масштабирование](./assets/Utilities/Utilities_pic8.png) -Этим действием можно изменять масштаб: **Отдалить** (уменьшить) или **Приблизить** (увеличить). -#### Доступные параметры: -- *Координаты*. Это точка, относительно которой будет изменяться масштаб. -- *Коэффициент*. Как сильно нужно уменьшить\увеличить масштаб. -_______________________________________________ -### Отправить SMS на устройство. -![СМС](./assets/Utilities/Utilities_pic9.png) -Данная утилита эмулирует отправку SMS на устройство. -#### Доступные параметры: -- *Телефон*. Номер телефона отправителя. -- *Сообщение*. Текст сообщения, которое будем отправлять. -:::info **На устройстве должно быть установлено приложение для приема сообщений.** -Например, Google Сообщения, LineageOS Messaging или другое. -::: - -_______________________________________________ -### Получить параметры подключения ADB. -![Параметры](./assets/Utilities/Utilities_pic10.png) -С помощью этого экшена можно получить адрес и порт подключенного устройства. Используется при необходимости выполнить специфичные команды ADB: `adb -s serial mdns services` -_______________________________________________ -### Получить буфер обмена устройства. -![Получить буфер обмена](./assets/Utilities/Utilities_pic11.png) -Позволяет сохранить содержимое буфера обмена устройства в переменную. -_______________________________________________ -### Задать буфер обмена на устройстве. -![Задать БО](./assets/Utilities/Utilities_pic12.png) -Утилита позволяет задать содержимое буфера обмена на устройстве. Содержимое может быть вставлено в нужное поле через макрос `{AndroidKeys.PASTE}`. -_______________________________________________ -### Выполнить запрос SQLite3. -![Запрос SQL](./assets/Utilities/Utilities_pic13.png) -Через это действие можно выполнить SQL-запрос к базе данных на устройстве. При первом запуске все необходимые файлы будут автоматически установлены на устройство в зависимости от его архитектуры. -#### Доступные параметры: -- *Путь к базе данных*. Полный путь к файлу. Например, `/data/data/com.android.providers.contacts/databases/contacts2.db`. -- *Запрос*. SQL-запрос. Такой как `SELECT * FROM contacts`. -- *Ответ в формате JSON*. При установке этого параметра результат запроса будет возвращен в формате JSON (данные можно прочесть с помощью экшена **Обработка JSON и XML**). В противном случае ответ вернется в виде массива строк. Разделителем в строке является символ **|** (вертикальная черта). -_______________________________________________ -### Выполнить скрипт Frida. -![Скрипт Фрида](./assets/Utilities/Utilities_pic14.png) -Утилита для выполнения скрипт Frida. При первом запуске все необходимые файлы будут автоматически установлены на устройство в зависимости от его архитектуры. После чего будет запущен сервер Frida. -#### Доступные параметры: -- *Имя приложения*. Название приложения, в которое необходимо загрузить скрипт. -- *Скрипт*. Содержимое скрипта. Поддерживаются макросы. - - diff --git a/docs/Android/_category_.json b/docs/Android/_category_.json deleted file mode 100644 index d7932785..00000000 --- a/docs/Android/_category_.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "label": "Android", - "position": 6, - "link": { - "type": "generated-index", - "title": "Нюансы работы с Android" - } - } - \ No newline at end of file diff --git a/docs/Android/action.mdx b/docs/Android/action.mdx deleted file mode 100644 index a41611dc..00000000 --- a/docs/Android/action.mdx +++ /dev/null @@ -1,185 +0,0 @@ ---- -sidebar_position: 3 -title: Действия с устройством -description: Как взаимодействовать с устройством через ProjectMaker ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ -export const VideoSample = ({source}) => ( - -); - -## Как добавить действие в проект? - -Для вызова контекстного меню нажимаем правой кнопкой мыши по пустому месту. -Затем **Добавить действие → Android → Действия с устройством**. - -![Добавить действие](./assets/action/action_pic0.png) -_______________________________________________ -## Как выбрать устройство? - -С помощью данного действия можно выбрать устройство, с которым будет вестись работа. - -![Выбрать](./assets/action/action_pic12.png) - -### Доступные настройки: -
-***Полное название или индекс*** - -Пишем здесь Имя устройства, как оно указано в окне Мульти-Memu (1), или Индекс (2). -Нумерация индексов начинается с нуля. Если здесь ничего не указать, то будет выбрано -случайное устройство. - -![Мульти-Мему](./assets/action/action_pic11.png) -
- - -- ***Regex***. -В этом случае будет выбрано случайное устройство из списка, согласно заданному Regex выражению. -Так можно сгруппировать устройства задав префиксы в названиях (*Например: OK_1, OK_2, VK_1, VK_2*) -и рандомно выбирать, задав маску (*OK или VK*). -- ***Положить индекс\имя в переменную***. -Данный параметр позволяет сохранить имя или индекс выбранного устройства в переменные. -_______________________________________________ -## Как запустить или перезапустить устройство? - -Данное действие запускает выбранное ранее устройство либо перезапускает уже работающее устройство. - -![Перезапустить](./assets/action/action_pic10.png) - -***Применять настройки профиля при запуске***. -Если поставить галочку, то при запуске будут применены настройки заданные в текущем профиле. Такие как модель, идентификатор устройства, сотовый оператор и другие. -:::warning **Перед запуском нужно *Выбрать* устройство, с которым будет работать программа.** -::: -_______________________________________________ -## Как остановить устройство? - -Это действие останавливает запущенное устройство. -![Остановить](./assets/action/action_pic9.png) -_______________________________________________ -## Как создать устройство? - -С этим действием мы можем создать новое устройство. При создании будут сгенерированы новые данные устройства (IMEI, MAC и др.). -:::info **Создание нового устройства ресурсоёмкая операция.** -Возможно, будет легче сделать сброс настроек текущего устройства и сгенерировать новые идентификационные данные (описано ниже в пункте **Сброс**). -::: - -![Создать](./assets/action/action_pic8.png) -### Доступные настройки: -- ***Версия***. -Здесь нужно указать версию Android создаваемого устройства. Доступные значения **5.1, 7.1, 7.1 x64 и 9.0**. -:::tip По умолчанию доступна только версия **7.1** -*Чтобы иметь возможность работать с другими версиями их нужно предварительно скачать.* -::: - -- ***Название***. -Здесь указывается имя для создаваемого устройства. Можно оставить поле пустым, тогда будет выбрано значение по умолчанию. -- ***Положить индекс\имя в переменную***. -Позволяет сохранить имя или индекс создаваемого устройства в переменные. -_______________________________________________ -## Как переименовать устройство? - -Позволяет изменить имя текущего устройства. - -![Переименовать](./assets/action/action_pic7.png) -:::info **Будьте внимательны.** -*Изменяется имя устройства, которое было выбрано с помощью функции **Выбрать** (описана в начале статьи).* -::: - -:::warning **Устройство должно быть выключено при переименовании!** -::: -_______________________________________________ -## Как клонировать устройство? - -Действие для создания копии текущего устройства. - -![Клонировать](./assets/action/action_pic6.png) -### Доступные настройки: -- ***Название***. -Вводим имя для созданной копии. Можно оставить поле пустым, тогда будет выбрано значение по умолчанию. -- ***Положить индекс\имя в переменную***. -Позволяет сохранить имя или индекс копии устройства в переменные. -_______________________________________________ -## Как экспортировать устройство? - -Данное действие создаёт полную копию устройства со всеми настройками и сохраняет в файл с -расширением *.ova*. Данный файл можно перенести на другой компьютер и подключить с помощью функции **Импортировать** (описана ниже). - -![Экспортировать](./assets/action/action_pic4.png) - -***Путь к файлу .ova***. Указываем путь, куда будет сохранена копия устройства. -:::warning **Устройство должно быть выключено!** -::: -_______________________________________________ -## Как импортировать устройство? - -Позволяет загрузить устройство из файла, который мы сохранили в прошлом пункте. - -![Импортировать](./assets/action/action_pic5.png) -#### Доступные настройки: -- ***Путь к файлу .ova***. -Путь к файлу, в котором сохранено устройство. -- ***Название***. -Указываем имя для импортированного устройства. Можно оставить поле пустым, тогда будет выбрано значение по умолчанию. -- ***Положить индекс\имя в переменную***. -Позволяет сохранить имя или индекс импортированного устройства в переменные. -_______________________________________________ -## Как выполнить полный сброс устройства? - -Это действие сбрасывает текущее устройство до состояния по умолчанию. Однако сгенерированные при создании идентификаторы устройства останутся неизменны. - -*Полный сброс* нужен, чтобы не удалять, а затем заново создавать устройство. Так как *Создание* крайне ресурсозатратное действие, которое долго выполняется. Выполнить полный сброс без восстановления системного раздела намного быстрее. -:::warning **Устройство должно быть выключено для применения настроек** -Все приложения, файлы и данные будут удалены! Данная функция сродни **factory reset** на телефонах. -::: - -![Сброс](./assets/action/action_pic3.png) - -***Восстановление системного раздела***. -Без привилегий суперпользователя ни одно приложение не имеет доступа к записи в системный раздел. -Это означает, что при установке мессенджера никаких следов в системе не остается. -Запись в системный раздел возможна только после явного подтверждения пользователя. -Например, при установке Xposed Framework, чтобы восстановить устройство в изначальное состояние потребуется поставить галочку. -:::tip **При включении опции *Восстановление системного раздела* сброс будет происходить дольше.** -::: -_______________________________________________ -## Как удалить устройство? - -С помощью этого действия можно удалить устройство. - -![Удалить](./assets/action/action_pic2.png) - -
-***Полное название или индекс*** - -Пишем здесь Имя устройства, как оно указано в окне Мульти-Memu (1), или Индекс (2). -Нумерация индексов начинается с нуля. - -![Мульти-Мему](./assets/action/action_pic11.png) -
-_______________________________________________ -## Как получить список устройств? - -Представленное действие позволяет сохранить все доступные устройства в список. - -![Список](./assets/action/action_pic1.png) -#### Доступные настройки: -- ***Что получить***. -Можно выбрать что именно сохранить в список: индексы устройств или их названия. -- ***Положить в список***. -Это список, в который будет сохранен результат работы. -- ***Фильтр***. -Также можно отфильтровать получаемый список по состоянию устройства: - - **Все.** Сюда входят все созданные устойства, не зависимо от их состояния. - - **Занятые.** Устройство занято в одном из выполняющихся потоков. Работает только при выполнении в ZennoDroid. (ProjectMaker не видит потоки выполняющиеся в ZennoDroid). - - **Не занятые.** Устройство не используется ни в одном из выполняющихся потоков. Данный фильтр также работает только при выполнении в ZennoDroid. - - **Запущенные.** Устройство запущено, то есть в диспетчере задач присутствует хотя бы один процесс эмулятора. - - **Не запущенные.** Устройство остановлено. В диспетчере задач нет процессов эмулятора. - -#### Разница между занятым и запущенным состоянием: -Устройство, которое занято в выполняющемся потоке, не обязательно запущено. Оно вполне может быть остановлено (например, экспортируется, ему задаются настройки и т.д.). При этом запущенное устройство всегда занято. - - diff --git a/docs/Android/assets/App/App_pic1.png b/docs/Android/assets/App/App_pic1.png deleted file mode 100644 index a30f3248..00000000 Binary files a/docs/Android/assets/App/App_pic1.png and /dev/null differ diff --git a/docs/Android/assets/App/App_pic10.png b/docs/Android/assets/App/App_pic10.png deleted file mode 100644 index 2aa8d87a..00000000 Binary files a/docs/Android/assets/App/App_pic10.png and /dev/null differ diff --git a/docs/Android/assets/App/App_pic11.png b/docs/Android/assets/App/App_pic11.png deleted file mode 100644 index 2c241ac6..00000000 Binary files a/docs/Android/assets/App/App_pic11.png and /dev/null differ diff --git a/docs/Android/assets/App/App_pic12.png b/docs/Android/assets/App/App_pic12.png deleted file mode 100644 index 365e2b69..00000000 Binary files a/docs/Android/assets/App/App_pic12.png and /dev/null differ diff --git a/docs/Android/assets/App/App_pic13.png b/docs/Android/assets/App/App_pic13.png deleted file mode 100644 index f719fe50..00000000 Binary files a/docs/Android/assets/App/App_pic13.png and /dev/null differ diff --git a/docs/Android/assets/App/App_pic14.png b/docs/Android/assets/App/App_pic14.png deleted file mode 100644 index 1d767003..00000000 Binary files a/docs/Android/assets/App/App_pic14.png and /dev/null differ diff --git a/docs/Android/assets/App/App_pic15.png b/docs/Android/assets/App/App_pic15.png deleted file mode 100644 index c5d71f1e..00000000 Binary files a/docs/Android/assets/App/App_pic15.png and /dev/null differ diff --git a/docs/Android/assets/App/App_pic2.png b/docs/Android/assets/App/App_pic2.png deleted file mode 100644 index 411c276e..00000000 Binary files a/docs/Android/assets/App/App_pic2.png and /dev/null differ diff --git a/docs/Android/assets/App/App_pic3.png b/docs/Android/assets/App/App_pic3.png deleted file mode 100644 index bcce99f2..00000000 Binary files a/docs/Android/assets/App/App_pic3.png and /dev/null differ diff --git a/docs/Android/assets/App/App_pic4.png b/docs/Android/assets/App/App_pic4.png deleted file mode 100644 index 7f0b5f95..00000000 Binary files a/docs/Android/assets/App/App_pic4.png and /dev/null differ diff --git a/docs/Android/assets/App/App_pic5.png b/docs/Android/assets/App/App_pic5.png deleted file mode 100644 index 93cad5f4..00000000 Binary files a/docs/Android/assets/App/App_pic5.png and /dev/null differ diff --git a/docs/Android/assets/App/App_pic6.png b/docs/Android/assets/App/App_pic6.png deleted file mode 100644 index 2db2cd1a..00000000 Binary files a/docs/Android/assets/App/App_pic6.png and /dev/null differ diff --git a/docs/Android/assets/App/App_pic7.png b/docs/Android/assets/App/App_pic7.png deleted file mode 100644 index 613d0d0b..00000000 Binary files a/docs/Android/assets/App/App_pic7.png and /dev/null differ diff --git a/docs/Android/assets/App/App_pic8.png b/docs/Android/assets/App/App_pic8.png deleted file mode 100644 index de1ee56c..00000000 Binary files a/docs/Android/assets/App/App_pic8.png and /dev/null differ diff --git a/docs/Android/assets/App/App_pic9.png b/docs/Android/assets/App/App_pic9.png deleted file mode 100644 index 1e8d7b73..00000000 Binary files a/docs/Android/assets/App/App_pic9.png and /dev/null differ diff --git a/docs/Android/assets/Files/Files_pic1.png b/docs/Android/assets/Files/Files_pic1.png deleted file mode 100644 index 6ce92735..00000000 Binary files a/docs/Android/assets/Files/Files_pic1.png and /dev/null differ diff --git a/docs/Android/assets/Files/Files_pic2.png b/docs/Android/assets/Files/Files_pic2.png deleted file mode 100644 index c5691fd8..00000000 Binary files a/docs/Android/assets/Files/Files_pic2.png and /dev/null differ diff --git a/docs/Android/assets/Files/Files_pic3.png b/docs/Android/assets/Files/Files_pic3.png deleted file mode 100644 index fe45a276..00000000 Binary files a/docs/Android/assets/Files/Files_pic3.png and /dev/null differ diff --git a/docs/Android/assets/Keyboard_and_Swipe/Keyboard_and_Swipe_pic1.png b/docs/Android/assets/Keyboard_and_Swipe/Keyboard_and_Swipe_pic1.png deleted file mode 100644 index 2533e560..00000000 Binary files a/docs/Android/assets/Keyboard_and_Swipe/Keyboard_and_Swipe_pic1.png and /dev/null differ diff --git a/docs/Android/assets/Keyboard_and_Swipe/Keyboard_and_Swipe_pic2.png b/docs/Android/assets/Keyboard_and_Swipe/Keyboard_and_Swipe_pic2.png deleted file mode 100644 index 3edd3cfd..00000000 Binary files a/docs/Android/assets/Keyboard_and_Swipe/Keyboard_and_Swipe_pic2.png and /dev/null differ diff --git a/docs/Android/assets/Keyboard_and_Swipe/Keyboard_and_Swipe_pic3.png b/docs/Android/assets/Keyboard_and_Swipe/Keyboard_and_Swipe_pic3.png deleted file mode 100644 index 298da121..00000000 Binary files a/docs/Android/assets/Keyboard_and_Swipe/Keyboard_and_Swipe_pic3.png and /dev/null differ diff --git a/docs/Android/assets/Keyboard_and_Swipe/Keyboard_and_Swipe_pic4.png b/docs/Android/assets/Keyboard_and_Swipe/Keyboard_and_Swipe_pic4.png deleted file mode 100644 index 32caf992..00000000 Binary files a/docs/Android/assets/Keyboard_and_Swipe/Keyboard_and_Swipe_pic4.png and /dev/null differ diff --git a/docs/Android/assets/Keyboard_and_Swipe/Keyboard_and_Swipe_pic5.png b/docs/Android/assets/Keyboard_and_Swipe/Keyboard_and_Swipe_pic5.png deleted file mode 100644 index bf0657bb..00000000 Binary files a/docs/Android/assets/Keyboard_and_Swipe/Keyboard_and_Swipe_pic5.png and /dev/null differ diff --git a/docs/Android/assets/Keyboard_and_Swipe/Keyboard_and_Swipe_pic6.png b/docs/Android/assets/Keyboard_and_Swipe/Keyboard_and_Swipe_pic6.png deleted file mode 100644 index f262452e..00000000 Binary files a/docs/Android/assets/Keyboard_and_Swipe/Keyboard_and_Swipe_pic6.png and /dev/null differ diff --git a/docs/Android/assets/Keyboard_and_Swipe/Keyboard_and_Swipe_pic7.png b/docs/Android/assets/Keyboard_and_Swipe/Keyboard_and_Swipe_pic7.png deleted file mode 100644 index ba3a13ef..00000000 Binary files a/docs/Android/assets/Keyboard_and_Swipe/Keyboard_and_Swipe_pic7.png and /dev/null differ diff --git a/docs/Android/assets/Keyboard_and_Swipe/Keyboard_and_Swipe_pic8.png b/docs/Android/assets/Keyboard_and_Swipe/Keyboard_and_Swipe_pic8.png deleted file mode 100644 index 4ebd63ab..00000000 Binary files a/docs/Android/assets/Keyboard_and_Swipe/Keyboard_and_Swipe_pic8.png and /dev/null differ diff --git a/docs/Android/assets/Utilities/Utilities_pic1.png b/docs/Android/assets/Utilities/Utilities_pic1.png deleted file mode 100644 index 7c03dbf5..00000000 Binary files a/docs/Android/assets/Utilities/Utilities_pic1.png and /dev/null differ diff --git a/docs/Android/assets/Utilities/Utilities_pic10.png b/docs/Android/assets/Utilities/Utilities_pic10.png deleted file mode 100644 index bde6bbde..00000000 Binary files a/docs/Android/assets/Utilities/Utilities_pic10.png and /dev/null differ diff --git a/docs/Android/assets/Utilities/Utilities_pic11.png b/docs/Android/assets/Utilities/Utilities_pic11.png deleted file mode 100644 index 41633032..00000000 Binary files a/docs/Android/assets/Utilities/Utilities_pic11.png and /dev/null differ diff --git a/docs/Android/assets/Utilities/Utilities_pic12.png b/docs/Android/assets/Utilities/Utilities_pic12.png deleted file mode 100644 index bacde5b8..00000000 Binary files a/docs/Android/assets/Utilities/Utilities_pic12.png and /dev/null differ diff --git a/docs/Android/assets/Utilities/Utilities_pic13.png b/docs/Android/assets/Utilities/Utilities_pic13.png deleted file mode 100644 index ea475cda..00000000 Binary files a/docs/Android/assets/Utilities/Utilities_pic13.png and /dev/null differ diff --git a/docs/Android/assets/Utilities/Utilities_pic14.png b/docs/Android/assets/Utilities/Utilities_pic14.png deleted file mode 100644 index 6c46c096..00000000 Binary files a/docs/Android/assets/Utilities/Utilities_pic14.png and /dev/null differ diff --git a/docs/Android/assets/Utilities/Utilities_pic2.png b/docs/Android/assets/Utilities/Utilities_pic2.png deleted file mode 100644 index 47e80e65..00000000 Binary files a/docs/Android/assets/Utilities/Utilities_pic2.png and /dev/null differ diff --git a/docs/Android/assets/Utilities/Utilities_pic3.png b/docs/Android/assets/Utilities/Utilities_pic3.png deleted file mode 100644 index b6c81ee7..00000000 Binary files a/docs/Android/assets/Utilities/Utilities_pic3.png and /dev/null differ diff --git a/docs/Android/assets/Utilities/Utilities_pic4.png b/docs/Android/assets/Utilities/Utilities_pic4.png deleted file mode 100644 index 50afa4df..00000000 Binary files a/docs/Android/assets/Utilities/Utilities_pic4.png and /dev/null differ diff --git a/docs/Android/assets/Utilities/Utilities_pic5.png b/docs/Android/assets/Utilities/Utilities_pic5.png deleted file mode 100644 index 9fdf9b29..00000000 Binary files a/docs/Android/assets/Utilities/Utilities_pic5.png and /dev/null differ diff --git a/docs/Android/assets/Utilities/Utilities_pic6.png b/docs/Android/assets/Utilities/Utilities_pic6.png deleted file mode 100644 index b8e39c41..00000000 Binary files a/docs/Android/assets/Utilities/Utilities_pic6.png and /dev/null differ diff --git a/docs/Android/assets/Utilities/Utilities_pic7.png b/docs/Android/assets/Utilities/Utilities_pic7.png deleted file mode 100644 index 7355a271..00000000 Binary files a/docs/Android/assets/Utilities/Utilities_pic7.png and /dev/null differ diff --git a/docs/Android/assets/Utilities/Utilities_pic8.png b/docs/Android/assets/Utilities/Utilities_pic8.png deleted file mode 100644 index a1cd783c..00000000 Binary files a/docs/Android/assets/Utilities/Utilities_pic8.png and /dev/null differ diff --git a/docs/Android/assets/Utilities/Utilities_pic9.png b/docs/Android/assets/Utilities/Utilities_pic9.png deleted file mode 100644 index f9646ee3..00000000 Binary files a/docs/Android/assets/Utilities/Utilities_pic9.png and /dev/null differ diff --git a/docs/Android/assets/action/action_pic0.png b/docs/Android/assets/action/action_pic0.png deleted file mode 100644 index 92ad2c69..00000000 Binary files a/docs/Android/assets/action/action_pic0.png and /dev/null differ diff --git a/docs/Android/assets/action/action_pic1.png b/docs/Android/assets/action/action_pic1.png deleted file mode 100644 index 61b36211..00000000 Binary files a/docs/Android/assets/action/action_pic1.png and /dev/null differ diff --git a/docs/Android/assets/action/action_pic10.png b/docs/Android/assets/action/action_pic10.png deleted file mode 100644 index 6d341d81..00000000 Binary files a/docs/Android/assets/action/action_pic10.png and /dev/null differ diff --git a/docs/Android/assets/action/action_pic11.png b/docs/Android/assets/action/action_pic11.png deleted file mode 100644 index d0ec284f..00000000 Binary files a/docs/Android/assets/action/action_pic11.png and /dev/null differ diff --git a/docs/Android/assets/action/action_pic12.png b/docs/Android/assets/action/action_pic12.png deleted file mode 100644 index 3579cf81..00000000 Binary files a/docs/Android/assets/action/action_pic12.png and /dev/null differ diff --git a/docs/Android/assets/action/action_pic13.png b/docs/Android/assets/action/action_pic13.png deleted file mode 100644 index 92ad2c69..00000000 Binary files a/docs/Android/assets/action/action_pic13.png and /dev/null differ diff --git a/docs/Android/assets/action/action_pic2.png b/docs/Android/assets/action/action_pic2.png deleted file mode 100644 index 904016ef..00000000 Binary files a/docs/Android/assets/action/action_pic2.png and /dev/null differ diff --git a/docs/Android/assets/action/action_pic3.png b/docs/Android/assets/action/action_pic3.png deleted file mode 100644 index c0516d0c..00000000 Binary files a/docs/Android/assets/action/action_pic3.png and /dev/null differ diff --git a/docs/Android/assets/action/action_pic4.png b/docs/Android/assets/action/action_pic4.png deleted file mode 100644 index bf469bec..00000000 Binary files a/docs/Android/assets/action/action_pic4.png and /dev/null differ diff --git a/docs/Android/assets/action/action_pic5.png b/docs/Android/assets/action/action_pic5.png deleted file mode 100644 index 2c22c2d3..00000000 Binary files a/docs/Android/assets/action/action_pic5.png and /dev/null differ diff --git a/docs/Android/assets/action/action_pic6.png b/docs/Android/assets/action/action_pic6.png deleted file mode 100644 index 31c498c4..00000000 Binary files a/docs/Android/assets/action/action_pic6.png and /dev/null differ diff --git a/docs/Android/assets/action/action_pic7.png b/docs/Android/assets/action/action_pic7.png deleted file mode 100644 index 5cc6d05c..00000000 Binary files a/docs/Android/assets/action/action_pic7.png and /dev/null differ diff --git a/docs/Android/assets/action/action_pic8.png b/docs/Android/assets/action/action_pic8.png deleted file mode 100644 index 7e07cff2..00000000 Binary files a/docs/Android/assets/action/action_pic8.png and /dev/null differ diff --git a/docs/Android/assets/action/action_pic9.png b/docs/Android/assets/action/action_pic9.png deleted file mode 100644 index a6dfdf7d..00000000 Binary files a/docs/Android/assets/action/action_pic9.png and /dev/null differ diff --git a/docs/Android/assets/setting/Android_Setting_pic1.png b/docs/Android/assets/setting/Android_Setting_pic1.png deleted file mode 100644 index 90c1cb53..00000000 Binary files a/docs/Android/assets/setting/Android_Setting_pic1.png and /dev/null differ diff --git a/docs/Android/assets/setting/Android_Setting_pic10.png b/docs/Android/assets/setting/Android_Setting_pic10.png deleted file mode 100644 index d01cbccf..00000000 Binary files a/docs/Android/assets/setting/Android_Setting_pic10.png and /dev/null differ diff --git a/docs/Android/assets/setting/Android_Setting_pic11.png b/docs/Android/assets/setting/Android_Setting_pic11.png deleted file mode 100644 index fc58b725..00000000 Binary files a/docs/Android/assets/setting/Android_Setting_pic11.png and /dev/null differ diff --git a/docs/Android/assets/setting/Android_Setting_pic12.png b/docs/Android/assets/setting/Android_Setting_pic12.png deleted file mode 100644 index f9bebb61..00000000 Binary files a/docs/Android/assets/setting/Android_Setting_pic12.png and /dev/null differ diff --git a/docs/Android/assets/setting/Android_Setting_pic13.png b/docs/Android/assets/setting/Android_Setting_pic13.png deleted file mode 100644 index ffc72ebe..00000000 Binary files a/docs/Android/assets/setting/Android_Setting_pic13.png and /dev/null differ diff --git a/docs/Android/assets/setting/Android_Setting_pic14.png b/docs/Android/assets/setting/Android_Setting_pic14.png deleted file mode 100644 index abedfb73..00000000 Binary files a/docs/Android/assets/setting/Android_Setting_pic14.png and /dev/null differ diff --git a/docs/Android/assets/setting/Android_Setting_pic15.png b/docs/Android/assets/setting/Android_Setting_pic15.png deleted file mode 100644 index 6e91691e..00000000 Binary files a/docs/Android/assets/setting/Android_Setting_pic15.png and /dev/null differ diff --git a/docs/Android/assets/setting/Android_Setting_pic16.png b/docs/Android/assets/setting/Android_Setting_pic16.png deleted file mode 100644 index 18fcd26f..00000000 Binary files a/docs/Android/assets/setting/Android_Setting_pic16.png and /dev/null differ diff --git a/docs/Android/assets/setting/Android_Setting_pic17.png b/docs/Android/assets/setting/Android_Setting_pic17.png deleted file mode 100644 index 93c8440f..00000000 Binary files a/docs/Android/assets/setting/Android_Setting_pic17.png and /dev/null differ diff --git a/docs/Android/assets/setting/Android_Setting_pic18.png b/docs/Android/assets/setting/Android_Setting_pic18.png deleted file mode 100644 index 88cd82fe..00000000 Binary files a/docs/Android/assets/setting/Android_Setting_pic18.png and /dev/null differ diff --git a/docs/Android/assets/setting/Android_Setting_pic19.png b/docs/Android/assets/setting/Android_Setting_pic19.png deleted file mode 100644 index 37f384d5..00000000 Binary files a/docs/Android/assets/setting/Android_Setting_pic19.png and /dev/null differ diff --git a/docs/Android/assets/setting/Android_Setting_pic2.png b/docs/Android/assets/setting/Android_Setting_pic2.png deleted file mode 100644 index f181361e..00000000 Binary files a/docs/Android/assets/setting/Android_Setting_pic2.png and /dev/null differ diff --git a/docs/Android/assets/setting/Android_Setting_pic20.png b/docs/Android/assets/setting/Android_Setting_pic20.png deleted file mode 100644 index 37bf667c..00000000 Binary files a/docs/Android/assets/setting/Android_Setting_pic20.png and /dev/null differ diff --git a/docs/Android/assets/setting/Android_Setting_pic3.png b/docs/Android/assets/setting/Android_Setting_pic3.png deleted file mode 100644 index 5635e0ee..00000000 Binary files a/docs/Android/assets/setting/Android_Setting_pic3.png and /dev/null differ diff --git a/docs/Android/assets/setting/Android_Setting_pic4.png b/docs/Android/assets/setting/Android_Setting_pic4.png deleted file mode 100644 index 9c21a731..00000000 Binary files a/docs/Android/assets/setting/Android_Setting_pic4.png and /dev/null differ diff --git a/docs/Android/assets/setting/Android_Setting_pic5.png b/docs/Android/assets/setting/Android_Setting_pic5.png deleted file mode 100644 index ac060b4f..00000000 Binary files a/docs/Android/assets/setting/Android_Setting_pic5.png and /dev/null differ diff --git a/docs/Android/assets/setting/Android_Setting_pic6.png b/docs/Android/assets/setting/Android_Setting_pic6.png deleted file mode 100644 index b8031040..00000000 Binary files a/docs/Android/assets/setting/Android_Setting_pic6.png and /dev/null differ diff --git a/docs/Android/assets/setting/Android_Setting_pic7.png b/docs/Android/assets/setting/Android_Setting_pic7.png deleted file mode 100644 index bb88d384..00000000 Binary files a/docs/Android/assets/setting/Android_Setting_pic7.png and /dev/null differ diff --git a/docs/Android/assets/setting/Android_Setting_pic8.png b/docs/Android/assets/setting/Android_Setting_pic8.png deleted file mode 100644 index d70a4215..00000000 Binary files a/docs/Android/assets/setting/Android_Setting_pic8.png and /dev/null differ diff --git a/docs/Android/assets/setting/Android_Setting_pic9.png b/docs/Android/assets/setting/Android_Setting_pic9.png deleted file mode 100644 index 64f3b3ee..00000000 Binary files a/docs/Android/assets/setting/Android_Setting_pic9.png and /dev/null differ diff --git a/docs/Android/setting.mdx b/docs/Android/setting.mdx deleted file mode 100644 index 6f054919..00000000 --- a/docs/Android/setting.mdx +++ /dev/null @@ -1,164 +0,0 @@ ---- -sidebar_position: 2 -title: Настройки устройства -description: Как настроить устройство через ProjectMaker ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ -export const VideoSample = ({source}) => ( - -); - - -## Как добавить действие в проект? - -Для вызова контекстного меню нажимаем правой кнопкой мыши по пустому месту. -Затем **Добавить действие → Android → Действия с устройством**. - -![Добавить действие](./assets/action/action_pic0.png) -_______________________________________________ -## Как настроить идентификаторы устройства. - -С помощью данной функции можно изменить такие параметры как [IMEI](https://ru.wikipedia.org/wiki/IMEI), Android ID (идентификатор устройства), [IMSI](https://ru.wikipedia.org/wiki/IMSI), Sim Serial (серийный номер SIM карты). - -![идентификаторы устройства](./assets/setting/Android_Setting_pic1.png) -_______________________________________________ -## Как добавить сотового оператора? - -![mcc-mnc](./assets/setting/Android_Setting_pic3.png) - -Все данные для этого действия можно найти [**на этом сайте**](https://www.mcc-mnc.com/) - -### Доступные настройки: - -![сотового оператора](./assets/setting/Android_Setting_pic2.png) -- ***Страна***. Две буквы из колонки ISO. -- ***Код оператора***. Совокупность значений из колонок MCC и MNC (например, 25002 для Мегафона). -- ***Название оператора***. Колонка Network (Baykal Westcom, BeeLine/VimpelCom, MTS). -- ***Номер телефона***. Без знака "+" в начале, 79*** и так далее. -_______________________________________________ -## Как указать модель устройства? - -![модель устройства](./assets/setting/Android_Setting_pic4.png) -### Доступные настройки: -- ***Производитель***. Чье устройство эмулируем (Samsung, Huawei, Xiaomi, Google, Meizu и т.д.). -- ***Модель***. Какую модель используем. Можно найти в build.prop (подскажем как ниже). -- ***ro.product.brand***. Если в этом поле значение не указано, то дублируем его из Производитель. -- ***ro.product.board***. Для современных телефонов неактуально, можно оставить пустым. -- ***ro.hardware*** и ***ro.build.fingerprint***. Возьмем из build.prop. - -### Как найти данные в build.prop: -Для этого необходимо сделать запрос в поисковую систему следующего вида: -***build.prop phone_model*** *(например, build.prop Samsung s10)*. -Переходим по одному из результатов и в тексте сообщения находим интересующие нас данные: -`ro.product.brand=samsung` -`ro.hardware.chipname=exynos9820` -`ro.product.board = нет` -`ro.product.model` или `ro.product.system.model` -:::info **Как узнать параметры своего телефона?** -*Для этого нужно в терминале (например, [Terminal Emulator for Android](https://apkpure.com/terminal-emulator-for-android/jackpal.androidterm#google_vignette)) выполнить команду *getprop*.* -::: - -_______________________________________________ -## Как настроить MAC адрес Wi-Fi сети: -![MAC адрес](./assets/setting/Android_Setting_pic5.png) -Формат - через двоеточие: XX:XX:XX:XX:XX:XX, либо без него: XXXXXXXXXXXX (12 знаков) -_______________________________________________ -## Управление производительностью: -Здесь можно настроить объем выделяемых для устройства ресурсов компьютера. -![производительность](./assets/setting/Android_Setting_pic6.png) -### Доступные настройки: -:::warning **Перед изменением настроек убедитесь, что устройство выключено.** -::: - -- ***Процессоры***. Число выделяемых ядер процессора на работу эмулятора. -- ***ОЗУ (МБ)***. Количество оперативной памяти в МБ, которое может использовать эмулятор. *Минимально 512мб, максимум 65 636мб*. -**Важно!** Больше 4гб можно выделить только на Android x64, на х86 4гб — это максимум. -:::info **В большинстве случае достаточно связки 1/2 ЦПУ + 1/2ГБ ОЗУ.** -Так как для эмуляции используются ресурсы вашего компьютера, но при высоких значениях он может начать тормозить. Рекомендуем начать с минимальных показателей и увеличивать их по мере необходимости. -::: -_______________________________________________ -## Установить разрешение экрана: -В этой настройке можно задать **Ширину** и **Высоту** экрана, а также плотность пикселей на дюйм (**DPI**). -**Плотность (DPI)** — можно указать любые значения в диапазоне от 40 до 640, но лучше придерживаться стандартных показателей Memu. -![разрешение экрана](./assets/setting/Android_Setting_pic7.png) -:::warning **Осторожно.** -Изменение DPI может негативно повлиять на отображение элементов приложений. Они могут стать либо слишком большими, перекрывающими доступ к другим элементам, либо наоборот слишком мелкими. -::: -#### Например так: - -![dpi2](./assets/setting/Android_Setting_pic11.png)![dpi3](./assets/setting/Android_Setting_pic10.png) -_______________________________________________ -## Выбор режима рендеринга: -Переключение между OpenGL и DirectX. Данная настройках больше нужна при запуске игр через эмулятор. Оптимальное значение придётся вычислять экспериментальным путём, либо на основе того, что пишут в интернете. Так как одни игры лучше работают с OpenGL, а другие с DirectX. Также влияет видеокарта и ее драйвера. -![Рендер](./assets/setting/Android_Setting_pic12.png) -:::warning **Перед изменением настроек убедитесь, что устройство выключено.** -::: -_______________________________________________ -## Включение режима суперпользователя: -Позволяет включать и отключать **root-доступ** к устройству. -![Root](./assets/setting/Android_Setting_pic13.png) -:::warning **Перед изменением настроек убедитесь, что устройство выключено.** -::: -_______________________________________________ -## Доступ к общим папкам: -Здесь можно указать пути к общим папкам в Windows. Они позволяют легко пересылать файлы -в эмулятор и из него. -:::info **Для одной виртуальной машины можно настроить не более 4-ех общих папок.** -::: - -![Общие папки](./assets/setting/Android_Setting_pic14.png) -### Примеры: -- **В Memu**: */sdcard/Download*, **в Windows**: *C:\Users\USERNAME\Downloads\MeEmu Download* -- **В Memu**: */sdcard/Movies*, **в Windows**: *C:\Users\USERNAME\Videos\Memu Video* -- **В Memu**: */sdcard/Music*, **в Windows**: *C:\Users\USERNAME\Music\Memu Music* -- **В Memu**: */sdcard/Pictures*, **в Windows**: *C:\Users\USERNAME\Pictures\Memu Photo* - - ***USERNAME** — подставьте сюда имя пользователя, с которого запущен сеанс Windows.* -:::warning **Перед изменением настроек убедитесь, что устройство выключено.** -::: -_______________________________________________ -## Выбор языка системы: -Данная настройка меняет язык эмулятора. -Доступные значения: ***en, ko, de, ja, fr, ru, es, pt, hr, cn, sr, it, cs, th, in, pl, tr, uk, ar, vi, fil*** -![Выбор языка](./assets/setting/Android_Setting_pic15.png) -:::warning **Перед изменением настроек убедитесь, что устройство выключено.** -::: -_______________________________________________ -## Установка часового пояса: -Позволяет выбрать часовой пояс устройства. -Указывается в формате: ***Europe/Moscow*** или ***America/New_York*** и т.д. -![час пояс](./assets/setting/Android_Setting_pic16.png) -Список всех доступных временных зон можно посмотреть [**Здесь**](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) -_______________________________________________ -## Как задать дату и время: -Можно произвольно установить: **год, месяц, день, час, минуту и секунду**. -![время](./assets/setting/Android_Setting_pic17.png) -Если оставить все поля пустыми, то произойдет автоматическая синхронизация с текущим временем. -_______________________________________________ -## Смена типа камеры: -Какие доступны: -- **Физическая**. Реальная камера, подключенная к компьютеру. -- **Виртуальная**. Используется автоматически, если нет реальной. Она встроена в эмулятор и позволяет сканировать QR-коды с экрана. -![камера](./assets/setting/Android_Setting_pic18.png) -_______________________________________________ -## Выбрать способ подключения системного диска: -Доступные способы: -- **Общий диск**. Позволяет использовать один системный диск для всех эмуляторов, что значительно снижает занимаемое место. В этом случае диск работает в режиме -*Только для чтения*, то есть на него не получится записать информацию. -- **Независимый диск**. Выбрав эту настройку, мы сможем записывать информацию на системный раздел эмулятора (*/system*). -![сис диск](./assets/setting/Android_Setting_pic19.png) -_______________________________________________ -## Как поставить прокси: -Данная настройка позволяет установить прокси на весь эмулятор. -![прокси](./assets/setting/Android_Setting_pic20.png) -Формат для прокси: -- **С авторизацией**: `protocol://login:password@ip:port`. -- **Без авторизации**: `protocol://ip:port`. - Значения для **protocol**: ***http***, ***socks4*** или ***socks5***. Если не указать, то по умолчанию стоит ***http***. - :::warning **Важно.** -Лучше включать прокси до запуска эмулятора, иначе некоторые приложения успеют отправить данные через ваш реальный IP. -::: diff --git a/docs/Data/ContentCreator.mdx b/docs/Data/ContentCreator.mdx deleted file mode 100644 index 7083f57e..00000000 --- a/docs/Data/ContentCreator.mdx +++ /dev/null @@ -1,29 +0,0 @@ ---- -sidebar_position: 11 -title: Создание контента -description: Написание уникального текста. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ -## Описание. -**ZennoDroid** позволяет подключить и использовать сервисы для создания уникального текста: [**WordAI**](https://wordai.com/) и [**ArticleForge**](https://www.articleforge.com/). - -Эти сервисы используют искусственный интеллект для понимания текста. Они способны сделать автоматический рерайтинг, читабельность которого сравнима с текстом, написанным человеком. - -Но у них есть большой минус — **сервисы не поддерживают русский язык**. Поэтому их использование актуально только для тех, кто работает в англоязычном сегменте интернета. -_______________________________________________ -## Как добавить в проект? -Через контекстное меню: **Добавить действие → Данные → Создание контента**. - -![Добавить в проект](./assets/ContentCreator/ContentCreator_pic1.png) - -:::info **Не забудьте авторизоваться в сервисах через *Настройки программы*.** -![авторизоваться в сервисах](./assets/ContentCreator/ContentCreator_pic2.png) -::: -_______________________________________________ -## WordAi. -![WordAi](./assets/ContentCreator/ContentCreator_pic3.png) - -В поле **Текст** вводим текст, который хотим переписать (на английском). - diff --git a/docs/Data/DataBase.mdx b/docs/Data/DataBase.mdx deleted file mode 100644 index 0dce7f9e..00000000 --- a/docs/Data/DataBase.mdx +++ /dev/null @@ -1,104 +0,0 @@ ---- -sidebar_position: 5 -title: Базы данных -description: Подключение различных баз данных. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ -В ZennoDroid вы можете работать с различными типами баз данных. Например, с Microsoft SQL, MySql, PostgreSQL, SQLite и др. Вы можете подключаться к ним с локального компьютера или на удаленном сервере, а затем загружать туда нужные данные. -_______________________________________________ -## Как добавить в проект? -Через контекстное меню: **Добавить действие → Данные → Директории**. - -![Добавить в проект](./assets/DataBase/DataBase_pic1.png) -_______________________________________________ -## Внешний вид экшена. -![Внешний вид экшена](./assets/DataBase/DataBase_pic2.png) -_______________________________________________ -## Источник данных. -Для того чтобы корректно работать с базой данных, необходимо правильно настроить подключение. Требуемые параметры будут зависеть от конкретной ***СУБД** (Системы Управления Базами Данных)*. - -### Конструктор подключений. -![Конструктор подключений](./assets/DataBase/DataBase_pic3.png) - -Он предназначен для облегчения создания *Строки подключения*. Она будет сформирована после заполнения основных данных. Сначала нужно обозначить источник данных, а затем выбрать файл с базой. - -| ![расширенные настройки](./assets/DataBase/DataBase_pic4.png) | -| :----------------: | -| *Доступны также расширенные настройки* | - -:::warning **В *Конструкторе* недоступны макросы переменных.** -::: - -### Провайдер данных. -Доступно несколько провайдеров данных: -- **SqlClient**. -Провайдер для нативного подключения к Microsoft SQL Server; -- **MySqlClient**. -Провайдер для нативного подключения к MySQL от Oracle; -- **OleDb** *(Object Linking and Embedding Database)*. -Это технология для доступа к различным источникам данных через единый интерфейс (в том числе к SQL Server); -- **Odbc** *(Open Database Connectivity)*. -Это единый интерфейс для выполнения SQL-запросов, работающий независимо от используемой СУБД; - -### Строка подключения. -В ней указываются различные параметры входа (например, логин и пароль). Чтобы не составлять эту строку вручную, можно использовать Конструктор подключений, который описан выше. - -[**Примеры строк подключения для разных СУБД.**](https://www.connectionstrings.com/) -_______________________________________________ -## Запрос. -![Запрос](./assets/DataBase/DataBase_pic5.png) - -### Тип запроса. -#### Запрос без ответа. -Применяется для операций, которые не возвращают данные из БД (например **INSERT** или **DELETE**). В качестве ответа такие операции передают число задействованных в запросе записей. - -#### Скалярный запрос. -Позволяет получить единственное значение. Например, если нужно выполнить агрегатную функцию: `select sum(price) from fruit`. - -#### Обычный запрос. -Возвращает таблицу с данными. - -### Текст запроса. -Поле для ввода SQL запроса. - -### Использовать параметры в запросе. -Параметры используются, чтобы упростить создание запроса, так как они подставляются в заданные места текста. - -Существуют именованные и неименованные параметры. Для первых важно имя, а для вторых порядок переменных. Какой тип параметров использоваться зависит от конкретной СУБД. - -:::info **Текст автоматически экранируется внутри параметров.** -::: - -| ![Именованные](./assets/DataBase/DataBase_pic6.png) | ![Неименованные](./assets/DataBase/DataBase_pic7.png) | -| -------- | ------- | -| Именованные параметры | Неименованные параметры | -_______________________________________________ -## Обработка результатов. -В этом разделе мы выбираем, куда сохранить результат запроса. - -![Обработка результатов](./assets/DataBase/DataBase_pic8.png) - -### Положить результат в: -#### Переменную. -Все строки и колонки, которые будут получены в результате запроса, сохранятся в одну переменную. - -Так же необходимо выбрать разделители для отделения строк и колонок друг от друга. - -#### Список. -Сохраняет результат работы в список. Важно указать разделить для столбцов. В итоге каждая строчка из базы будет занесена в новый элемент списка, а между столбцами вставлен соответствующий разделитель. - -#### Таблицу. -При записи данных в таблицу ячейки заполнятся в соответствии с запросом. - -#### Переменные. -Этот вариант позволяет сохранить результат сразу в несколько переменных. - -![Переменные](./assets/DataBase/DataBase_pic9.png) - -**Номер строки**. В результате запроса может вернуться несколько строк, поэтому необходимо указать номер той, которую будем разбирать (нумерация с нуля). - -В таблице ниже выбирается номер ячейки в строке и переменная, в которую эта ячейка будет сохранена (нумерация с нуля!). - -![Номер строки](./assets/DataBase/DataBase_pic10.png) \ No newline at end of file diff --git a/docs/Data/Directories.mdx b/docs/Data/Directories.mdx deleted file mode 100644 index 307687ff..00000000 --- a/docs/Data/Directories.mdx +++ /dev/null @@ -1,157 +0,0 @@ ---- -sidebar_position: 4 -title: Директории -description: Работа с директориями. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ -## Описание. -Данный экшен предназначен для работы с директориями. Вот что он может делать с ними: -- *создавать*, -- *копировать*, -- *перемещать*, -- *удалять*, -- *получать из них один или несколько файлов. Например:* - - *файлы статей для постинга на канал или в блог*, - - *картинка для автарки при регистрации в приложениях или на сайтах*. -- *проверять, существует ли директория*. - -При парсинге можно создавать для каждого товара свою директорию, а затем сохранять туда картинки, описание и другую информацию. -_______________________________________________ -## Как добавить в проект? -Через контекстное меню: **Добавить действие → Данные → Директории**. - -![Добавить в проект](./assets/Directories/Directories_pic1.png) -_______________________________________________ -## Как работать с экшеном? -Для работы с директориями предусмотрены следующие действия, которые выбираются в окне свойств: - -![Как работать с экшеном](./assets/Directories/Directories_pic2.png) -_______________________________________________ -### Копировать. -Данное действие копирует директорию со всем содержимым и вставляет по новому пути. - -![Копировать](./assets/Directories/Directories_pic3.png) - -#### Путь к директории. -Здесь указываем путь к исходной папке. - -#### Новый путь. -А тут то место, куда хотим переместить директорию. - -:::warning **Обратите внимание.** -Если по новому пути уже существует такая же директория, то ничего не будет скопировано. Экшен при этом завершится успехом (зеленая ветка). -::: -_______________________________________________ -### Переместить. -Действие аналогичное прошлому. С той лишь разницей, что оно "забирает" директорию, не сохраняя копию по прежнему пути. -_______________________________________________ -### Получить список директорий. -С помощью этого экшена можно получить список всех директорий по указанному пути. - -![Получить список директорий](./assets/Directories/Directories_pic4.png) - -#### Путь к директории. -Указываем путь к папке. - -#### Искать в поддиректориях. -После включения этой опции поиск будет производиться во всех поддиректориях, не зависимо от их количества. - -Если же не ставить галочку, то возвратятся только папки из верхнего уровня вложенности. - -#### Фильтр по маске. -В этом поле можно указать маску для поиска. Их может быть несколько, разделенных символом `|`. - -#### Положить в список. -Результат работы можно сохранить в список. -_______________________________________________ -### Получить список файлов. -Действие аналогичное прошлому. Но в этом случае мы ищем не директории, а отдельные файлы. -_______________________________________________ -### Проверить существование директории. -Это действие позволяет узнать, существует ли директория по указанному пути. В случае успешного поиска выход пойдет по зеленой ветке, но если папка не будет найдена, то по красной. - -#### Путь к директории. -Указываем путь к папке, существование которой нужно проверить. - -#### Таймаут ожидания. -Время в секундах, которое экшен будет ждать обнаружения папки. -_______________________________________________ -### Путь к файлу. -Этот экшен получает путь к одному из файлов в выбранной директории. - -![Путь к файлу](./assets/Directories/Directories_pic5.png) - -#### Путь к директории. -Пишем путь к папке, в которой будем искать файл. - -#### Файл. -- **По номеру**. Указываем конкретный номер файла (нумерация с нуля). -- **Случайный**. Будет получен случайный файл из доступных. - -#### Сортировка по алфавиту. -Если поставить здесь галочку, то файл будет браться из списка, отсортированного в алфавитном порядке. - -#### Искать в поддиректориях. -После включения этой опции поиск файла будет производиться во всех поддиректориях, не зависимо от их количества. - -Если же не ставить галочку, то файл возьмется из основной папки, по которой мы выполняем поиск. - -#### Маска. -В этом поле можно указать маску поиска. Их может быть несколько, разделенных символом `|`. - -#### Положить в переменную. -Полученный файл можно привязать к переменной. -_______________________________________________ -### Создать. -С помощью этого экшена можно создать новую директорию по указанному пути. - -:::warning **Обратите внимание.** -Если по этому пути уже существует такая директория, то она не будет перезаписана. Экшен при этом завершится успехом (зеленая ветка). -::: -_______________________________________________ -### Удалить. -Это действие удаляет выбранную папку со всем ее содержимым. Если попытаться удалить несуществующую директорию, то экшен все равно выйдет по зеленой ветке. - -:::warning **Удалённые таким образом папки не попадают в Корзину, а удаляются безвозвратно!** -::: -_______________________________________________ -## Пример использования. -При регистрации на различных ресурсах часто требуется загрузить аватарку. Представим, что у нас есть папка с подготовленными картинками в расширениях *jpg*, *jpeg*, *png*, *tiff*. Нам нужно выбрать только одну из них. - -Ресурс, на котором мы создаем аккаунт, требует от нас файл именно в формате *PNG*. Поэтому при поиске мы воспользуемся маской `*.png`. А саму картинку выберем случайно. - -![Пример использования](./assets/Directories/Directories_pic6.png) - -После запуска данного экшена в переменной `avatar` сохранится абсолютный путь к файлу. - -:::tip **Системная переменная `{-Project.Directory-}`.** -В ней хранится полный путь к папке с файлом проекта. -::: -_______________________________________________ -## Поиск по маске. -Для задания маски можно использовать специальные символы: -- `?`. Может обозначать один любой символ кроме точки. -- `*`. Означает любое количество любых символов, включая точку. -- `|`. Используется для одновременного добавления нескольких масок. - -### Примеры. -| Написание | Пояснение | -| :---------------- | :------: | -| `*.*` | Любые файлы с любым расширением. | -| `*.jpg` | Файлы с расширением **.jpg** (`image.jpg`, `аватарка.jpg`, `1.jpg`). | -| `*.p*` | Файлы, у которых расширение начинается на **p.** (`document.pdf`, `презентация.ppt`, `документ.project`, `1.p`). | -| `кар*.*` | Файлы с любым расширением, но имя которых начинается на **кар.** (`карета.jpg`, `картинка.ico`, `картошка.html`). | -| `*mat?.html` | **.html** файлы, имя которых начинается с любой последовательности символов. Затем идёт часть **mat**, после которой **1 любой символ**. (`automate.html`, `tomato.html`, `mate.html`). | -| `doc?????.xls` | **.xls** файлы, начинающиеся на **doc**, после чего идёт **5 любых символов** (кроме точки). (`document.xls`, `doc-1208.xls`, `doctrine.xls`). | -| `???.??` | Файл с **3 символами в имени** и **2 в расширении**. (`abc.ps`, `job.ai`, `123.45`) | -| `?????` | Файл с **5 символами** в имени и **без расширения**. (`house`, `image`, `tasks`) | -| `*.xlsx` или `*.docx` | Любой **xlsx** и/или **docx** документ. (`invoice.docx`, `resume.docx`, `project.xlsx`, `default.xlsx`) | - - - - - - - diff --git a/docs/Data/Files.mdx b/docs/Data/Files.mdx deleted file mode 100644 index 85bedcfa..00000000 --- a/docs/Data/Files.mdx +++ /dev/null @@ -1,89 +0,0 @@ ---- -sidebar_position: 2 -title: Файлы -description: Автоматизация работы с файлами. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ -## Описание. -В ZennoDroid вы можете автоматизировать работу с файлами. Например: -- *вставлять заготовленный текст из файла при постинге на форумах, социальных сетях и мессенджерах;* -- *добавлять описание для объявлений на маркетплейсах и прочих сайтах;* -- *отправлять массовые комментарии и сообщения;* -- *записывать в файл данные при парсинге;* -- *вести подробное логирование с записью в файл;* -- *удаление и перемещение ненужных файлов.* -_______________________________________________ -## Как добавить в проект? -Через контекстное меню: **Добавить действие → Данные → Файлы**. - -![Добавить в проект](./assets/Files/Files_pic1.png) -_______________________________________________ -## Доступные действия. -![Доступные действия](./assets/Files/Files_pic2.png) -_______________________________________________ -### Взять текст. -![Взять текст](./assets/Files/Files_pic3.png) - -Позволяет скопировать текст из файла и записать его в переменную. - -Доступна опция удаления файла после выполнения экшена. -_______________________________________________ -### Записать текст. -![Записать текст](./assets/Files/Files_pic4.png) - -Это действие записывает указанный текст из поля в выбранный файл. - -#### Дописать в файл. -Если поставить здесь галочку, то новый текст будет **дописан** в файл. Тогда как без нее, мы **полностью перезапишем** текст в файле. - -#### Записать перенос строки в конец. -Эта опция добавляет в конец текста перенос строки с помощью `\r\n`. Это позволяет корректно записывать несколько строк данных в файл. -_______________________________________________ -### Переместить. -Перемещение файла в указанную директорию. Нужно указать текущий полный путь к существующему файлу, а затем новые путь и имя для него после переноса. - -![Переместить](./assets/Files/Files_pic5.png) - -Этим действием также можно просто переименовать файл. -_______________________________________________ -### Проверить существование. -Позволяет узнать, существует ли файл по указанному пути. -- **Результат**. Если файл существует, то экшен выйдет по зеленому пути, если отсутствует, то по красному. -- **Таймаут ожидания**. Указываем время в секундах, которое экщен будет ждать появления файла. -_______________________________________________ -### Скопировать. -Работает, как и **Переместить**, но без удаления исходного файла. -_______________________________________________ -### Удалить. -Этим действием вы можете удалить файл по указанному пути. -_______________________________________________ -## Пример использования. -**Скачаем картинку с сайта vk.com, переименуем ее и переместим в нужную папку.** - -Представим, что мы уже получили [**прямую ссылку на картинку**](https://sun9-40.userapi.com/impf/c848528/v848528810/1bd139/xdhmnuXGxLg.jpg?size=1200x800&quality=96&sign=d821afb870ed03538e551524acb1af31&type=album). Теперь, используя ***Get-запрос***, скачаем ее на устройство. В качестве переменной указываем `PicPath`. В ней появится прямой путь к файлу после выполнения экшена. - -![Get-запрос](./assets/Files/Files_pic6.png) - -После этого добавляем экшен ***Random*** для генерации имени файла. - -![Random](./assets/Files/Files_pic7.png) - -Далее создаем экшен **Файлы** с опцией *Переместить*. - -![Файлы](./assets/Files/Files_pic8.png) - -**Путь к файлу:** `{-Variable.PicPath-}` -**Новый путь:** `{-Project.Directory-}Деревенский_Котик\{-Variable.name_file-}.jpg` - -:::tip **`{-Project.Directory-}`.** -Это макрос для указания директории, в которой находится проект. -::: - -После выполнения этого действия файл переместится в нужную папку, а вы сможете приступить к загрузке следующей картинки. - -:::warning **Расширение файла.** -При работе с изображениями следует указывать то же расширение файла, что и было при загрузке. -::: - diff --git a/docs/Data/Images.mdx b/docs/Data/Images.mdx deleted file mode 100644 index 26816d46..00000000 --- a/docs/Data/Images.mdx +++ /dev/null @@ -1,131 +0,0 @@ ---- -sidebar_position: 9 -title: Обработка изображений -description: Редактирование и сохранение изображений. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ -## Описание. -Экшен используется для редактирование и сохранения изображений. Вот что можно делать с помощью него: -- визуально обрабатывать картинки; -- изменять или удалять метаданные изображения; -- сохранять скриншот приложения. -_______________________________________________ -## Как добавить в проект? -Через контекстное меню: **Добавить действие → Данные → Обработка изображений**. - -![Добавить в проект](./assets/Images/Images_pic1.png) -_______________________________________________ -## Источник изображения. -![Добавить в проект](./assets/Images/Images_pic2.png) - -### Скриншот инстанса. -Выполняет скриншот активного окна эмулятора/устройства. - -### Файл. -Обрабатывает выбранный файл, к которому указываем путь. Допустим использования макросов. - -### URL. -Работа будет производиться с картинкой, ссылку к которой мы укажем. - -:::warning **Скачивание картинки произойдет с вашего реального IP.** -Даже если в проекте установлены прокси! -::: -_______________________________________________ -## Обработка. -### Без обработки. -Изображение не будет как-либо изменяться. Эта опция полезна при сохранении скриншота или картинки из интернета. -_______________________________________________ -### Изменение размеров. -Позволяет изменить размер изображения. Доступные параметры: -- **Ширина и Высота**. Задаем цифровые значения для этих параметров. -- **Размеры**. Определяет тип двух верхних значений: *В процентах* от оригинального размера или же напрямую *Пиксели*. -- **Сохранять соотношение сторон**. В случае выбора этой опции **Ширина** и **Высота** будут принудительно привязаны к оригинальному соотношению сторон. Так что вы не сможете изменять их независимо. -- **Не увеличивать изображение**. Если указанные **Ширина** и **Высота** стали больше, чем оригинальные значения, то изменение размера не будет применено. -_______________________________________________ -### Обрезка. -С помощью этого действия можно обрезать изображение. Доступные опции: -- **Область**. Выбираем то, что будем обрезать. - - *Видимая*. Актуально только для **Скриншот инстанса**. Обрезает скриншот экрана по границам открытого окна. Это позволяет получить только видимую часть приложения. - - *Заданная*. Обрезает изображение по заданным параметрам, которые задаются ниже. -- **Слева / Сверху / Ширина / Высота**. Указываем значения в пикселях или процентах (выбираются ниже). -- **Размеры**. Определяет тип верхних значений: *В процентах* от оригинального размера или же напрямую *Пиксели*. -_______________________________________________ -### Поворот. -Поворачивает изображение на указанное количество градусов. -_______________________________________________ -### Водяной знак. -Накладывает текст или изображение на обрабатываемый файл. - -**Тип наложения:** -- *Горизонтально*. -- *По диагонали*. - -#### Подробнее про Горизонтальный тип наложения. -![Добавить в проект](./assets/Images/Images_pic3.png) - -- **Расположение**. -Выбираем расположение для текста/изображения: - - *В центре*; - - *Правый верх*; - - *Правый низ*; - - *Левый верх*; - - *Левый низ*; -- **Отступ**. -Указываем отступ слева или сверху в пикселях относительно **Расположения**, которое мы задали выше. -- **Знак**. - - **Изображение**. Указываем путь к файлу. - - **Текст**. Пишем необходимый текст и выбираем для него шрифт. - :::tip **Визуальный конструктор текста.** - Открывается нажатием специальной кнопки справа от поля **Шрифт**. - ![Добавить в проект](./assets/Images/Images_pic4.png) - ::: -- **Прозрачность**. -Процентное количество прозрачности наложенного текста или изображения. Чем выше значение, тем прозрачнее. - -#### Пример. -![Добавить в проект](./assets/Images/Images_pic7.png) - -С такими настройками, как на верхнем скриншоте, мы получим такой водный знак: - -![Добавить в проект](./assets/Images/Images_pic8.png) -_______________________________________________ -### Зеркальное отражение. -Позволяет отзеркалить изображение. Доступные типы отражения: -- **Горизонтальный**; -- **Вертикальный**; -- **Горизонтальный и Вертикальный**. -_______________________________________________ -### Очистить Exif. -Это действие может очистить все метаданные изображения. -_______________________________________________ -## Сохранить. -Раздел для настройки вывода изображения. - -### Качество. -Определяем его в процентах, где 1% — это очень пережатое, а 100% — оригинальное. - -### Путь к файлу. -Указываем путь на компьютере, куда мы хотим сохранить картинку. Необходимо также в конце добавить формат файла. Допустимо использования ***переменных***. -_______________________________________________ -## Редактирование метаданных (EXIF). -В этом блоке вы можете изменять различные метаданные. - -![Добавить в проект](./assets/Images/Images_pic5.png) - -:::info **Не работает с режимом *Очистить Exif*.** -::: -_______________________________________________ -## Пример использования. -Допустим, мы написали шаблон, но на каком-то этапе работы он завершается ошибкой. Чтобы попытаться понять причину, мы можем сделать скриншот в момент ошибки и визуально оценить ситуацию. - -Создаем экшен ***Random*** и генерируем случайно число или имя для *потока*. Кладем это в переменную `{-Variable.thread-}`. - -Теперь добавляем действие ***BadEnd*** и проводим от него ветку в **Обработку изображений**. Укажем настройки, как на этом скриншоте: - -![Добавить в проект](./assets/Images/Images_pic6.png) - -**Путь к файлу:** `{-Project.Directory-}{-Variable.thread-}\App_screenshot.jpg`. - -Сюда также можно добавить сохранение кода страницы `{-Page.Dom-}` через экшен ***Записать в файл***. Это позволит выявить ошибки, возникающие в ходе работы с браузером. \ No newline at end of file diff --git a/docs/Data/JSON_XML.mdx b/docs/Data/JSON_XML.mdx deleted file mode 100644 index 7ca1f962..00000000 --- a/docs/Data/JSON_XML.mdx +++ /dev/null @@ -1,220 +0,0 @@ ---- -sidebar_position: 8 -title: Обработка JSON и XML -description: Обработка JSON и XML. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ -## Описание. -Этот экшен нужен для работы с JSON и XML. Чаще всего эти форматы применяются в [API](https://ru.wikipedia.org/wiki/API) различных сервисов. Например, сервисы ***по распознаванию капчи*** или ***СМС сервисы*** обычно работают с одним из этих форматов (либо сразу с двумя). - -:::warning **Одновременно в проекте может обрабатываться только один JSON или XML объект.** -Если нужно обработать сразу несколько объектов, то сделать это можно только по очереди. -::: - -### Что такое JSON? -**JSON (JavaScript Object Notation)**. Простой и удобный для чтения формат обмена данными. Он позволяет хранить информацию в виде структурированного текста, который легко читается как компьютером, так и человеком. - -Его основная особенность в том, что информация записывается в пары `"ключ":значение`. Ключ используется для названия данных, а в значения можно поместить строки, числа, массивы, логику и объекты. - -#### Пример. -```js -{ - "имя": "Алексей", - "возраст": 28, - "город": "Москва", - "профессия": "Программист", - "опытРаботы": 5, - "владеетЯзыками": [ - "Python", - "JavaScript", - "C++" - ], - "удалённаяРабота": true, - "интересы": { - "спорт": "Футбол", - "музыка": "Рок", - "хобби": ["Фотография", "Путешествия", "Чтение"] - } -} -``` - -### Что такое XML? -**XML (eXtensible Markup Language)** — это язык разметки, который используется для хранения и передачи данных. Главное отличие от JSON в том, что XML использует **теги** для обозначения данных, а JSON — пары *ключ: значение*. -В отличие от HTML, где есть фиксированные теги (например, `
`, `

`), в XML вы сами создаете теги, которые описывают данные. - -#### Пример. -```js - - - Имперская Пародия - Боб Дилан - США - Колумбия - 10.90 - 1985 - - - Спрячь свое сердце - Бонни Тайлер - Соединенное Королевство - Записи си-би-эс - 9.90 - 1988 - - - Лучшие Хиты - Долли Партон - США - Ар-Си-Эй - 9.90 - 1982 - - -``` -_______________________________________________ -### Beautify. -Иногда сервисы возвращают не красиво отформатированный текст (как в примерах выше), а всё в одну строку. Это значительно затрудняет чтение. В таких случаях можно воспользоваться так называемыми *улучшателями (beautifier)*. Например, в **Тестере X/JSON Path** уже встроен этот компонент — **кнопка Beautify**. - -![Beautify](./assets/JSON_XML/JSON_XML_pic1.png) - -Однако, для экшена не важно, как записан текст — красиво или в одну строку. Главное, чтобы он был корректно составлен. - -_______________________________________________ -## Как добавить в проект? -Через контекстное меню: **Добавить действие → Данные → Обработка JSON/XML**. - -![Добавить в проект](./assets/JSON_XML/JSON_XML_pic2.png) -_______________________________________________ -## Доступные действия. -![Доступные действия](./assets/JSON_XML/JSON_XML_pic3.png) -_______________________________________________ -## Парсинг. -Это действие нужно для обработки полученных данных. - -![Парсинг](./assets/JSON_XML/JSON_XML_pic4.png) - -### Окно переменных. -Результат выполнения экшена заносится в переменную проекта Json или Xml. Содержимое можно посмотреть в ***Окне переменных***. Так как ранее в примере мы парсили XML, то и выбираем соответствующую вкладку: - -![Окно переменных](./assets/JSON_XML/JSON_XML_pic5.png) - -В переменной **Count (1)** хранится количество элементов. Так что ее удобно использовать в качестве ограничителя при обходе данных в цикле. - -Если бы в нашем примере ещё были тэги `` на одном уровне с ``, то была бы переменная `CATALOG.DVD.Count` с количеством тэгов ``: - -![CATALOG.DVD.Count](./assets/JSON_XML/JSON_XML_pic6.png) - -С помощью **специальных кнопок (2)** можно сразу скопировать макрос переменной в буфер обмена. - -### Макросы переменных. -Пример одного из макросов: `{-Xml.CATALOG.CD[1].ARTIST-}`. - -Внутри этого макроса можно использовать другие переменные: - -![Макросы переменных](./assets/JSON_XML/JSON_XML_pic7.png) - -:::tip **Быстрая вставка переменных.** -Нажмите `CTRL+ПРОБЕЛ` в любом текстовом поле для вызова выпадающего меню. Далее двойной клик по JSON или XML для их выбора и поставьте `.`, тем самым открыв меню со спарсенными переменными. - -![Быстрая вставка переменных](./assets/JSON_XML/JSON_XML_pic8.png) ![Быстрая вставка переменных](./assets/JSON_XML/JSON_XML_pic9.png) -::: - -### Обработать JsonPath/XPath. -Данная опция нужна для выделения подмножества из данных, которые спарсили. Чтобы она работала потребуется составить выражение XPath (для XML) или JsonPath (для JSON). С этим, опять же, поможет ***Тестер***. - -![Обработать JsonPath/XPath](./assets/JSON_XML/JSON_XML_pic10.png) - -В поле для вставки выражения можно использовать макросы. -_______________________________________________ -### Особенности XML. -![Особенности XML](./assets/JSON_XML/JSON_XML_pic11.png) - -У XML есть атрибуты узлов. Для доступа к ним нужно использовать в макросах квадратные скобки вместе со строковым значением: `{-Xml.CATALOG.CD[0]["item"]-}`. - -![атрибуты узлов](./assets/JSON_XML/JSON_XML_pic12.png) - -### Скорость обработки. -Парсинг большого текста JSON или XML во время отладки проекта в ProjectMaker может занимать длительное время. Но зато при работе в ZennoDroid парсинг будет проходить гораздо быстрей. -_______________________________________________ -## Добавить в список. -Данное действие используется для получения из всех данных **одного конкретного свойства** для каждого элемента. В нем можно использовать ***переменные***. - -| ![Добавить в список](./assets/JSON_XML/JSON_XML_pic13.png) | -| :----------------: | -| *В переменной `{-Variable.item_type-}` находится **CD*** | - -### Свойство. -Тут мы указываем поле, которое будем разбирать как массив. - -Есть возможность использования вложенности. Указывать параметры нужно через точку, например: `store.employees`. - -Если поле не является массивом, то в список занесется только один элемент. - -### Подсвойство. -Иногда в массивах могут находиться сложные объекты, поэтому есть возможность указать, какое именно значение брать из него для списка. -_______________________________________________ -## Добавить в таблицу. -Это действие похоже на предыдущее, но тут можно получить сразу несколько свойств. Также можно использовать ***переменные***. - -| ![Добавить в таблицу](./assets/JSON_XML/JSON_XML_pic14.png) | -| :----------------: | -| *В переменной `{-Variable.item_type-}` находится **CD**, а в `{-Variable.property-}` — **ARTIST*** | - -Столбцы именуются, как и в Excel — большие латинские буквы в алфавитном порядке. Если пропустить один из столбцов, то он просто останется пустым. Как, например, столбец **С** на скриншоте: - -![столбец С](./assets/JSON_XML/JSON_XML_pic15.png) -_______________________________________________ -## Работа с кодом. -В коде С# JSON и XML находятся в объекте *project* и имеют тип *dynamic*. Из-за этого редактор кода не может полноценно показывать выпадающие подсказки. - -### Пример 1. -```c -project.Xml.FromString(project.Variables["XmlText"].Value); -return project.Xml.PurchaseOrder.Address[0]["Type"]; -``` - -### Пример 2. -```c -var list = new List(); -for(int i = 0; i < project.Xml.PurchaseOrder.Address.Count; i++) -{ - list.Add(project.Xml.PurchaseOrder.Address[i].Name.Value); -} -return string.Join(", ", list); -``` - -### Пример 3. -```c -var list = new List(); -foreach(dynamic i in project.Xml.PurchaseOrder.Address) -{ - list.Add(i.Name.Value); -} -return string.Join(", ", list); -``` - -Аналогично происходит и с JSON. Однако стоит учесть, что доступ к свойствам происходит без использования `Value`. -Вот так: `return project.Json.employees[1].firstName;` -_______________________________________________ -## Пример с JSON. -Для тестирования возьмем сайт http://ip-api.com/, который использует простейший API для возврата подробной информации про ваш ip-адрес. В реальных сценариях это полезно: -- Для проверки, что проект работает через прокси, а не через основной IP. -- Для выбора страны/города при регистрации. - -Этот сайт [**может возвращать**](https://ip-api.com/docs) данные в разных форматах. Но мы будем использовать именно JSON. - -![Пример с JSON](./assets/JSON_XML/JSON_XML_pic16.png) - -Для получения информации делаем ***GET-запрос*** по адресу http://ip-api.com/json, а затем обрабатываем результат через действие *Парсить*. После этого можно работать с полученными данными. - -![GET-запрос](./assets/JSON_XML/JSON_XML_pic17.png) -_______________________________________________ -## Пример с XML и Обработка XPath. -Представим, что из всех данных нам нужны только названия альбомов. Тогда для этой задачи составим XPath выражение: `//CATALOG/CD/TITLE`. - -| ![Пример с XML](./assets/JSON_XML/JSON_XML_pic18.png) | -| :----------------: | -| *Настройки экшена и результат его работы (справа)* | - diff --git a/docs/Data/Random.mdx b/docs/Data/Random.mdx deleted file mode 100644 index 68eea5ea..00000000 --- a/docs/Data/Random.mdx +++ /dev/null @@ -1,99 +0,0 @@ ---- -sidebar_position: 6 -title: Random -description: Генерация случайных чисел. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ -## Описание. -Этот экшен используется для генерации случайных данных: строк, чисел и авторизационных логинов. - -### Его можно применить: -- для выбора случайного элемента на странице; -- для генерации пароля; -- для генерации даты рождения; -- для генерации почтового индекса; -- для генерации логинов. -_______________________________________________ -## Как добавить в проект? -Через контекстное меню: **Добавить действие → Данные → Random**. - -![Добавить в проект](./assets/Random/Random_pic4.png) -_______________________________________________ - -## Генерация логина. -![Генерация логина](./assets/Random/Random_pic1.png) - -Логин генерируется на основе заданной формулы. Доступно три предустановленных формата: -- `[Eng|4][RndNum|1970|1990]`; -- `[Jap|4][RndNum|1970|1990]`; -- `[Lat|4][RndNum|1970|1990]`; - -Между собой они отличаются только языком: `Eng` - английский, `Jap` - японский, `Lat` - латынь. - -`[Eng|4]` означает, что будет сгенерирован никнейм длиной в 4 английских слога. Есть вероятность, что слоги будут сочетаться также, как и в реальных словах. - -Давайте поэкспериментируем с формулой и создадим более сложную конструкцию: - -`[RndSym|[RndNum|0|4]|0123456789][Lat|3][RndSym|[RndNum|0|2]|-][Jap|1][RndText|2|D]` - -- `[RndSym|[RndNum|0|4]|0123456789]` — в начале нашего ника будет от 0 до 3 (4 не включается) случайных цифр; -- `[Lat|3]` — далее в логине идут три слога на латыни; -- `[RndSym|[RndNum|0|2]|-]` — есть вероятность генерация дефиса; -- `[Jap|1]` — следом будет добавлен один японский слог; -- `[RndText|2|D]` — завершат ник случайные 2 буквы или цифры. - -

-*Пример того, какие будут сгенерированы ники.* - -- 053bomenca-iem -- 7lialeme-nozr -- 46atbemig-poex -- simpvido-se8f -- 3afosuxhif6 -- frigulimdeif -- misssefu-yucn -- 5grasacin-maew -- trodalcelfu88 -- 6nasercia-risc -
-_______________________________________________ -## Генерация текста. -:::info **Используются только символы английского алфавита.** -::: -![Генерация текста](./assets/Random/Random_pic2.png) - -### Длина. -Здесь мы задаем минимальную и максимальную длину итоговой строки. Верхняя граница указывается **не включительно**, то есть при генерации строки случайной длины от 3 до 10 символов мы сможем получить максимум 9 символов. - -### Дополнительные параметры. -- **Заглавные**. -- **Строчные**. -- **Цифры**. - -Отмечаем те пункты, которые хотим использовать в итоговой строке. - -### Свои символы. -Если включаем эту опцию, то в специальное поле справа нужно ввести символы, которые будут содержаться в генерируемой строке. Прочие символы использоваться не будут. - -### Обязательное использование всех перечисленных параметров. -Когда отмечен данный чекбокс, итоговая строка будет содержать как минимум один символ каждого прошлого пункта *(Заглавные, Строчные, Цифры, Свои символы)*. -_______________________________________________ -
-*Примеры ответов, которые можно получить, включив все опции и выставив длину от 5 до 9.* - -- w6ZxAw -- 0M5oke7 -- ZlE3SY -- Tos6KRZ -- l5a640Pk -
-_______________________________________________ -## Генерация числа. -![Генерация числа](./assets/Random/Random_pic3.png) - -- **От**. Нижняя граница генерируемого числа. -- **До**. Максимальное значение, **НЕ ВКЛЮЧИТЕЛЬНО**. - -*Пример:* при генерации числа от **3** до **6** может быть сгенерировано только одно из этих чисел: **3**, **4**, **5**. diff --git a/docs/Data/SMS_Services.mdx b/docs/Data/SMS_Services.mdx deleted file mode 100644 index 32239d1d..00000000 --- a/docs/Data/SMS_Services.mdx +++ /dev/null @@ -1,97 +0,0 @@ ---- -sidebar_position: 3 -title: Сервисы для обработки SMS -description: Получение SMS на выделенный номер. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: - - -Данный экшен используется для работы с SMS. Он позволяет получать номер из выбранного сервиса и использовать его в работе. Это может пригодится, например, для регистрации на сайтах, требующих SMS-подтверждения. -_______________________________________________ -## Как добавить в проект? -Через контекстное меню: **Добавить действие → Данные → SMS-сервисы**. - -![Добавить в проект](./assets/SMS_Services/SMS_Services_pic1.png) -_______________________________________________ -## Как пользоваться экшеном? -:::info **Для начала работы потребуется подключить API-ключ одного из СМС-сервисов в настройках программы.** -![подключить API-ключ](./assets/SMS_Services/SMS_Services_pic2.png) -::: -_______________________________________________ -### SMS-сервис. -![SMS-сервис](./assets/SMS_Services/SMS_Services_pic3.png) - -Выбор одного из SMS-сервисов для работы. -_______________________________________________ -### Действие — Получить номер. -![Получить номер](./assets/SMS_Services/SMS_Services_pic4.png) - -#### Сервис. -Сайт или приложение, для которого надо получить номер. Это значение можно уточнить в документации выбранного сервиса активации. - -#### Оператор (страна). -В этом поле указываем код страны, номер которой нужно получить. - -Коды стран отличаются от сервиса к сервису, поэтому их также уточняем в документации. - -#### Выполнить переадресацию. -Отмечаем, нужно ли выполнять переадресацию. Ее возможность тоже зависит от конкретного сервиса. - -#### Положить ID активации в переменную. -В указанную здесь переменную сохранится ID активации. Он понадобится в дальнейшем, когда проект будет ожидать получения СМС. -_______________________________________________ -### Действие — Изменить статус. -Уведомление сервиса об изменении статуса номера. - -![Изменить статус](./assets/SMS_Services/SMS_Services_pic5.png) - -#### ID активации. -Тут указываем ID активации, который был получен в действии **Получить номер**. Можно использовать макрос переменной. - -#### Статус: -- **SMS отправлено**. Сообщение было успешно отправлено на указанный номер. -- **Повторный запрос кода**. При необходимости отправить СМС еще раз. -- **Отмена запроса**. Используется, когда номер больше не нужен. В некоторых случаях сервисы возвращают использованные деньги. -- **Номер уже использовался**. Нужен для уведомления сервиса о том, что номер не подходит по причине его занятости. -- **Завершение**. Сообщает сервису, что задача, для которой брался номер, успешно выполнена. - -#### Переадресация. -Здесь пишем номер, на который будет происходить переадресация. -_______________________________________________ -### Действие — Получить статус. -С помощью этого действия можно узнать состояние номера. - -Программа ожидает получение СМС в течение 3 минут. Если за это время оно не было получено, то в итоговую переменную попадет значение `Wait`. А это действие придется повторить заново. Учитывайте, что некоторые сервисы имеют долгое время отклика на СМС (до 15 минут). - -![Получить статус](./assets/SMS_Services/SMS_Services_pic6.png) - -#### ID активации. -Тут указываем ID активации, который был получен в действии **Получить номер**. Можно использовать макрос переменной. -_______________________________________________ -### Дополнительные параметры. -У некоторых сервисов также есть дополнительные параметры, которые не входят в общие настройки экшена. Их можно задать в специальном поле, используя вот такой формат: `параметр=значение`. - -Можно передавать сразу несколько параметров. Друг от друга они должны отделяться символом `&`. Вот так: `параметр1=значение1&параметр2=значение2&параметрN=значениеN`. - -У каждого сервиса свои названия параметров, поэтому их нужно узнавать в документации выбранного сервиса. -_______________________________________________ -### Положить в переменную. -Как и в прочих экшенах, это поле служит для указания перменной, в которую будет сохранен результат работы. -_______________________________________________ -## Алгоритм работы. -**1.** Заказать номер и получить его. -**2.** Отправить на полученный номер SMS сообщение. -**3.** Уведомить сервис, что сообщение отправлено. -**4.** Ожидать получения сообщения. -**5.** Завершить сессию. - -| ![Алгоритм работы](./assets/SMS_Services/SMS_Services_pic7.png) | -|:--:| -| *Примерная схема работы с SMS-сервисом* | - -:::warning **Не используйте в своих проектах бесконечные циклы.** -Это приведет к зависанию шаблона и потере денег. Например, если проект не сможет выйти из цикла на получение номера, то он будет постоянно запрашивать номера, пока не кончатся деньги. -::: - - diff --git a/docs/Data/Text.mdx b/docs/Data/Text.mdx deleted file mode 100644 index 08d627f3..00000000 --- a/docs/Data/Text.mdx +++ /dev/null @@ -1,380 +0,0 @@ ---- -sidebar_position: 7 -title: Обработка текста -description: Манипуляции с текстом. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ -## Описание. -Данный экшен нужен для различных манипуляций с текстом. Например, обработать спарсенный текст, очистить его от мусора или даже перевести на другие языки – всё это, и многое другое, может данный «кубик». - -### Как добавить в проект? -Через контекстное меню **Добавить действие → Данные → Обработка текста**: - -![Добавить в проект](./assets/Text/Text_pic1.png) - -### Внешний вид экшена. -![Добавить в проект](./assets/Text/Text_pic2.png) - -Окно состоит из трех областей: -**1.** Входная строка. Сюда можно поместить текст, переменную или их комбинацию. -**2.** Действия над строкой и ее свойства, а также их настройки. -**3.** Строка с выводом результата в переменную. - -Если установить курсор в поле входной строки и нажать **Ctrl+Пробел**, то появится выпадающий список с полезными константами и переменными проекта. - -![Добавить в проект](./assets/Text/Text_pic3.png) -_______________________________________________ -## Escape строки (Экранирование символов). -Этот экшен экранирует пробел и символы: `*` `+` `?` `|` `{` `[` `(` `)` `^` `$` `.` `#`. То есть он размещает слэш `\` перед каждым из этих символов. - -Данный метод часто используется для работы с запросами. Также это помогает обработчику ***регулярных выражений*** использовать символы буквально, а не как команды или метасимволы. -_______________________________________________ -## Regex (Обработка текста регулярными выражениями). -![Добавить в проект](./assets/Text/Text_pic4.png) - -С помощью регулярных выражений очень удобно парсить строки по заданному паттерну для нахождения нужной. Этот экшен может спарсить не только первое найденное значение, но и всю группу, а также сохранить значения в переменные или таблицу. - -### Поле ввода Regex. -В данное поле необходимо ввести регулярное выражение, с помощью которого будет производиться поиск по тексту. Пример: `(?<=).*(?=)`. - -:::tip **В составлении регулярных выражений поможет *Тестер регулярных выражений*.** -![Добавить в проект](./assets/Text/Text_pic5.png) -::: - -### Ошибка при пустом ответе. -Когда включена данная настройка, экшен завершается ошибкой, если регулярное выражение **не находит ничего** в тексте. - -**Обратите внимание** на то, что если регулярное выражение **вернёт пустую строку**, то даже при включении этой настройки экшен все равно **выйдет по зеленой ветке**. Например, на сайте нет ничего в теге *title*: ``. Тогда регулярное выражение `(?<=).*(?=)` сработает, но вернёт пустую строку, а экшен завершится успехом. А вот если в тексте совсем нет *title*, то действие завершится ошибкой. - -### Что брать. -![Добавить в проект](./assets/Text/Text_pic6.png) - -#### Первое. -В переменную сохранится первое найденное совпадение. - -#### Все. -Сохранить весь результат поиска в список. - -#### Одно совпадение. -Сохраняет только одно совпадение, которое выбирается исходя из порядкового номера (**нумерация с нуля**). - -Также можно выбрать **Последнее** или **Случайное (*Random*)** значение. - -![Добавить в проект](./assets/Text/Text_pic7.png) - -#### Номера совпадений. -Позволяет сохранить в список только номера совпадений, которые указаны через запятую (**нумерация с нуля**). - -#### В переменные. -Данная функция используется при работе с групповыми регулярными выражениями. - -
-**Для лучшего понимания мы подготовили развернутый пример.** - -Представим, что есть следующий текст: -``` -21.01.2003, 11:34:00.9299 -11.12.2013, 01:22:55.3021 -04.01.2007, 08:00:06.0032 -``` -И нам нужно разобрать его на составляющие. Для этого воспользуемся таким регулярным выражением: -`(\d{2}).(\d{2}).(\d{4}), (\d{2}):(\d{2}):(\d{2}).(\d{4})` - -Вот как выглядит результат выполнения в ***Тестере регулярных выражений***: - -![Добавить в проект](./assets/Text/Text_pic8.png) - -Теперь нам надо взять в переменные: день, месяц и год из второй строки. Вот как это можно сделать: - -![Добавить в проект](./assets/Text/Text_pic9.png) - -**Номер совпадения** в этом случае — номер строки. Так как нумерация начинается с нуля, то пишем `1`, чтобы взять вторую строку. - -Далее нужно указать номер группы и переменную, в которую сохранится результат. В группе **0** находится вся найденная строка: `11.12.2013, 01:22:55.3021`. Так что для получения раздельных данных указываем следующие номера групп: `1` для дня, `2` для месяца, `3` для года. -
- -#### В таблицу. -Сильно похоже на предыдущую функцию, но с тем отличием, что здесь сохраняется не один результат, а сразу все и именно в таблицу. Но из итогового результата можно исключить некоторые группы. - -
-**Здесь также рассмотрим пример.** - -Текст оставим из прошлого примера: -``` -21.01.2003, 11:34:00.9299 -11.12.2013, 01:22:55.3021 -04.01.2007, 08:00:06.0032 -``` -И регулярное выражение тоже: -`(\d{2}).(\d{2}).(\d{4}), (\d{2}):(\d{2}):(\d{2}).(\d{4})` - -Вот как выглядит результат выполнения в ***Тестере регулярных выражений***: - -![Добавить в проект](./assets/Text/Text_pic8.png) - -В итоговой таблице нам не нужны секунды и миллисекунды: - -![Добавить в проект](./assets/Text/Text_pic10.png) - -В группе под индексом **0** находится вся найденная строка, поэтому ее исключаем. Также игнорируем группы **6** и **7**, так как там лежат секунды и миллисекунды соответственно. -
- -### Пример использования Regex. -В этом примере мы выполним парсинг ссылок с помощью регулярных выражений, которые составим через ***конструктор***. - -**Задача:** получить ссылки на профили активных пользователей [**форума ZennoLab**](https://zenno.club/discussion/) - -![Добавить в проект](./assets/Text/Text_pic11.png) - -**1.** С помощью действия **Взятие значения** получаем HTML-код элемента, в котором размещены ссылки на пользователей, находящихся в статусе *Онлайн*. -**2.** Добавляем экшен **Regex**. Для составления паттерна используем ***Конструктор регулярных выражений***. -**3.** В свойства экшена на вход добавляем переменную *html*, а результат сохраняем в список *urls*. -**4.** После запуска кубика мы получим в списке уникальные id, которые можно использовать для формирования URL с профилями юзеров. -_______________________________________________ -## Spintax (Рандомизация и уникализация текста). -С помощью этого инструмента удобно создавать синонимизацию текстов. Это такая конструкция из обрамляющих фигурных скобок и вертикальных слэшей, которая позволяет в случайном порядке подставлять строки. - -В простейшем варианте спинтакс выглядит так: `{вариант1|вариант2|вариант3}`. При выполнении этого действия в результирующую переменную случайно попадет один из трёх вариантов. Однако конструкции спинтакса бывают более сложными и обладают многоуровневой вложенностью, так что из одного текста можно получить тысячи разных вариантов. - -![Добавить в проект](./assets/Text/Text_pic12.png) - -### Расширенный синтаксис. -- `{Red|White|Blue}` — в этом случае в результирующий текст попадает одно из значений, например: **White**. -- `[ Red| White| Blue]` — в результате будет выполнена перестановка значений: **White Blue Red**. -- `[+_+Red|White|Blue]` — значения также будут перетасованы, но уже с наличием разделителя между ними: **White_Red_Blue**. - -Хотим отметить, что вложенность шаблонов неограничена: `[+{_|-}+Red|White|Blue {1|2}]` = **White-Blue 2-Red**. -Спец. символы можно экранировать: `[+\++Red|\[White\]|Blue]` = **[White]+Red+Blue**. -_______________________________________________ -## Split (Разделение текста). -Разделение выполняется через специальный символ (делиметер). В результате обработки строка превратиться в массив из строк. По сути это более простой аналог RegExp для разделения строки символами. - -### Разделители. -Здесь мы указываем символы, через которые будут разбиваться данные. - -![Добавить в проект](./assets/Text/Text_pic13.png) - -### Разрешить пустые значения. -Эту опцию легче рассмотреть на примере: - -![Добавить в проект](./assets/Text/Text_pic14.png) - -Здесь у нас есть строка в формате: `имя;фамилия;пол;год рождения`. Если вы пропустите одно из значений, например, не указав пол: `Андрей;Павлов;;1988`, то `1988` запишется именно в переменную **пол (sex)**, а не в **год (year)**, как ожидается. - -Чтобы это избежать, нужно включить настройку *Разрешить пустые значения*. Тогда появится возможность записывать в переменные пустые строки. - -### Пример использования Split. -Разобьем строки с прокси на составляющие части. - -Покупные прокси обычно имеют подобный формат: `логин:пароль@хост:порт`. То есть тут сразу два разделителя — `:` и `@`. Настройки экшена в этом случае могут выглядеть вот так: - -![Добавить в проект](./assets/Text/Text_pic15.png) -_______________________________________________ -## ToChar (Преобразование целого числа в Unicode). -Каждый символ Юникод имеет свой цифровой код. И именно эта особенность позволяет конвертировать любое числовое значение в соответствующие символы. Например, у символа ♛ числовое значение `9819`. - -![Добавить в проект](./assets/Text/Text_pic16.png) -_______________________________________________ -## ToLower (К нижнему регистру). -Это действие меняет регистр букв на нижний в зависимости от выбранного свойства. - -![Добавить в проект](./assets/Text/Text_pic17.png) - -### Все. -Заменит все символы верхнего регистра в тексте на нижний. - -| **Было** | **Стало** | -| -------- | ------- | -| МЕНЯЕТ РЕГИСТР БУКВ НА НИЖНИЙ | меняет регистр букв на нижний | - -### Начало слов. -Меняет регистр на нижний только у первого символа каждого слова в тексте. - -| **Было** | **Стало** | -| -------- | ------- | -| МЕНЯЕТ РЕГИСТР БУКВ НА НИЖНИЙ | мЕНЯЕТ рЕГИСТР бУКВ нА нИЖНИЙ | - -### Первый символ. -Станет маленькой только первая буква первого слова. - -| **Было** | **Стало** | -| -------- | ------- | -| МЕНЯЕТ РЕГИСТР БУКВ НА НИЖНИЙ | мЕНЯЕТ РЕГИСТР БУКВ НА НИЖНИЙ | -_______________________________________________ -## ToUpper (К верхнему регистру). -Это действие меняет регистр букв на верхний в зависимости от выбранного свойства. - -![Добавить в проект](./assets/Text/Text_pic18.png) - -### Все. -Заменит все символы нижнего регистра в тексте на верхний. - -| **Было** | **Стало** | -| -------- | ------- | -| текст в нижнем регистре | ТЕКСТ В НИЖНЕМ РЕГИСТРЕ | - -### Начало слов. -Меняет регистр на верхний только у первого символа каждого слова в тексте. - -| **Было** | **Стало** | -| -------- | ------- | -| текст в нижнем регистре | Текст В Нижнем Регистре | - -### Первый символ. -Станет большой только первая буква первого слова. - -| **Было** | **Стало** | -| -------- | ------- | -| текст в нижнем регистре | Текст в нижнем регистре | -_______________________________________________ -## Trim (Удаление символов в начале/конце строки). -Эта функция используется для удаления лишних символов в начале и\или конце переданной строки. - -Чаще всего приходит на помощь, когда нужно очистить строку от лишних пробелов, переносов и табуляций, которые остаются после парсинга. - -### Что обрезать. -Тут мы выбираем символы, которые нужно удалить. Это может быть предустановленный вариант для всех типов пробельных символов, либо укажите нужные вам. - -### Где обрезать. -Определяем, где надо удалить символы: -- *Начало строки*; -- *Конец*; -- *Начало **и** Конец*. -_______________________________________________ -## UrlDecode (Декодировка). -Декодирует строку закодированную с помощью UrlEncode (описано ниже). - -![Добавить в проект](./assets/Text/Text_pic19.png) - -Наиболее наглядно этот экшен выглядит при раскодировании кириллицы: -**Было:** `%D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82%2C%20%D0%BC%D0%B8%D1%80%21`. -**Стало:** `Привет, мир!`. -_______________________________________________ -## UrlEncode (Кодировка). -В URL разрешается использовать только латинские буквы, цифры и несколько знаков пунктуации. Все остальные символы, которые передаются в HTTP-запросах, должны быть закодированы с помощью **UrlEncode**. Иначе сервер неправильно интерпретирует запрос. - -### Кодировать только значения в переменных. -Эта опция пригодится при формировании ***HTTP запросов***. Так как кодировать надо только параметры, но не адрес сайта. -Вот как могут выглядеть настройки экшена: - -![Добавить в проект](./assets/Text/Text_pic20.png) - -В переменной `{-Variable.keyword-}` находится текст *`что такое urlencode`*. А после выполнения в переменную `{-Variable.url-}` запишется такая строка: -`https://www.google.com/search?q=%d1%87%d1%82%d0%be+%d1%82%d0%b0%d0%ba%d0%be%d0%b5+urlencode` -_______________________________________________ -## В переменную. -Это действие просто сохраняет всё что вы добавите во входное окно – переменные, текст, символы, константы проекта, в *одну* отдельную переменную. - -![Добавить в проект](./assets/Text/Text_pic21.png) -_______________________________________________ -## В список. -Данный экшен разбивает текст на строки с помощью указанного разделителя, а затем записывает их в список. - -![Добавить в проект](./assets/Text/Text_pic22.png) - -### Разделитель. -- **Enter**. Символ новой строки. -- **Пробел**. -- **Свой текст**. Здесь можно указать как единичный символ (например `;`), так и несколько символов (но при этом они будут рассматриваться **как один разделитель!**). -- **Свой Regex**. Будет использовано регулярное выражение. -_______________________________________________ -## В таблицу. -Данное действие разбивает переданный текст на строки и столбцы через указанные разделители, а затем помещает данные в таблицу. - -### Разделители -- **Enter**. Символ новой строки. -- **Пробел**. -- **Свой текст**. Здесь можно указать как единичный символ (например `;`), так и несколько символов (но при этом они будут рассматриваться **как один разделитель!**). -- **Свой Regex**. Будет использовано регулярное выражение. -_______________________________________________ -## Замена. -Это действие заменяет одну строку на другую, а получившийся результат сохраняет в переменную. - -![Добавить в проект](./assets/Text/Text_pic23.png) - -### Что искать. -Здесь указываем строку, которую нужно найти. Либо Regex, если выбран соответствующий вариант. - -### На что заменить. -Каким текстом мы заменим то, что нашли в прошлом пункте. - -### Тип поиска. -- *Text*. Будет в точности искаться заданный текст. -- *Regex*. В этом случае мы пишем регулярное выражение, по которому будет искаться совпадение. - -### Что заменять. -#### Первое. -Будет заменено первое найденное совпадение. - -#### Все. -Заменятся сразу все совпадения. - -#### Одно совпадение. -![Добавить в проект](./assets/Text/Text_pic24.png) - -В этом случае заменится только указанное совпадение (или *Последнее* найденное). - -#### Номера совпадений. -Указываем номера совпадений для замены через запятую (*нумерация с нуля*). -_______________________________________________ -## Перевод. -Этот экшен переводит строки с одного языка на другой. - -![Добавить в проект](./assets/Text/Text_pic26.png) - -### Сервис перевода. -Доступно сразу несколько вариантов, что помогает сделать текст наиболее качественным и уникальным. -- [**Baidu**](https://www.npmjs.com/package/baidu-translate-api) -- [**DeepL**](https://www.deepl.com/ru/docs-api/) -- [**Google**](https://cloud.google.com/translate) -- [**Google через веб-интерфейс**](https://translate.google.com/) -- [**Microsoft**](https://www.microsoft.com/en-us/translator/business/translator-api/) -- [**Yandex**](https://tech.yandex.com/translate/) - -
-**Ключи API для сервисов нужно добавить через *Настройки программы*.** - -![Добавить в проект](./assets/Text/Text_pic25.png) -
- -### Язык оригинала/Язык назначения. -Тут указываем, с какого и на какой язык нужно перевести текст. - -:::tip Можно указать язык «*auto*». -Тогда система *попробует* сама определить язык, но **результат не гарантируется**. -::: - -Писать нужно именно код языка, а не его привычное название. Например: -- *Английский: **en*** -- *Испанский: **es*** -- *Немецкий: **de*** -- *Русский: **ru*** -- *И так далее. [**Полный список**](http://www.loc.gov/standards/iso639-2/php/code_list.php).* - -:::warning **Коды языков отличаются для каждого сервиса.** -Для полного и достоверного списка кодов рекомендуем обратиться к документации выбранного сервиса. -::: -_______________________________________________ -## Подготовка JavaScript. -Это действие нужно для обработки строки под корректное использование в JavaScript. В основном, оно экранирует кавычки, апострофы и другие спец. символы. В результате текст будет подготовлен для вставки в экшены ***JavaScript*** и ***IF***. - -**Было:** ``. -**Стало:** ``. - -:::tip Протестировать код можно через ***тестер JavaScript***. -![Добавить в проект](./assets/Text/Text_pic27.png) -::: -_______________________________________________ -## Подстрока. -Берет из строки заданный кусок текста. Интервал задается с помощью значений **От** и **До**, в них мы указываем номера символов. - -![Добавить в проект](./assets/Text/Text_pic28.png) - -В примере выше мы берем подстроку **с 95 символа** по **Конец текста**, получая в итоге *«до другого.»*. -_______________________________________________ -## Транслитерация. -В редких случах до сих пор требуется *perevesti* кириллицу в латиницу. Для этого и нужен данный экшен. - -![Добавить в проект](./assets/Text/Text_pic29.png) \ No newline at end of file diff --git a/docs/Data/WorkWithProfile.mdx b/docs/Data/WorkWithProfile.mdx deleted file mode 100644 index 0bae4e25..00000000 --- a/docs/Data/WorkWithProfile.mdx +++ /dev/null @@ -1,127 +0,0 @@ ---- -sidebar_position: 1 -title: Операции над профилем -description: Операции над профилем. ---- - -export const VideoSample = ({source}) => ( - -); - -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ -## Описание. -Для работы в интернете ZennoDroid имеет специальную сущность — **Профиль проекта**. Его можно сохранять и загружать в шаблон, а затем использовать отличающиеся личности для работы на различных ресурсах. В профиле хранятся многие часто используемые параметры. Например: -- **Виртуальная личность**: - - *Имя и фамилия*; - - *Дата рождения*; - - *Местоположение (страна, регион, город и почтовый индекс)*; - - *Email и Никнейм*; - - *Прочие параметры*. -- **Виртуальный телефон**: - - *IMEI*; - - *Количество CPU и объем RAM*; - - *Номер телефона и информация об операторе*; - - *Производитель и модель*; - - *Размер экрана*; - - *Wi-Fi и Bluetooth MAC*. - -:::info **Профиль генерируется каждый раз заново при новом запуске/выполнении проекта.** - -::: - -### Настройки по умолчанию. -Некоторые из параметров можно задать для использования по умолчанию при каждой новой генерации. Делается это через **Панель статических блоков → Профиль**. - -![Добавить в проект](./assets/WorkWithProfile/WorkWithProfile_pic1.png) - -### Текущий профиль. -Для ознакомления с характеристиками нынешнего профиля нужно нажать на кнопку **Текущий профиль** на верхней панели. - -![Добавить в проект](./assets/WorkWithProfile/WorkWithProfile_pic2.png) -_______________________________________________ -## Как добавить в проект? -Через контекстное меню: **Добавить действие → Данные → Операции над профилем**. - -![Добавить в проект](./assets/WorkWithProfile/WorkWithProfile_pic3.png) -_______________________________________________ -## Сохранить профиль. -![Добавить в проект](./assets/WorkWithProfile/WorkWithProfile_pic4.png) - -Вы можете воспользоваться этим действием, если по тем или иным причинам хотите сохранить все данные текущего профиля для использования в других проектах. Например, после регистрации на каком-либо ресурсе. В файле профиля (`*.zpprofile`) при этом сохранятся все параметры личности и телефона. - -:::warning **Сохранять переменные.** -Если сохранить профиль с этой опцией, то при следующей его загрузке значения выбранных переменных будут перезаписаны. Для корректного выполнения шаблона мы рекомендуем сохранять только необходимые значения. -::: -_______________________________________________ -## Загрузить профиль. -![Добавить в проект](./assets/WorkWithProfile/WorkWithProfile_pic5.png) - -С помощью этого экшена можно загрузить ранее сохраненные профили для использования в текущем проекте. - -### Создать недостающие переменные. -При включении данной настройки в проекте автоматически создадутся недостающие переменные, которые имеются в загружаемом профиле. - -### Выводить ошибку при загрузке несовместимого профиля. -Данная функция будет удалена в будущих обновлениях, а в данный момент не оказывает никакого эффекта при включении. -_______________________________________________ -## Переназначить поля. -С помощью этого действия можно вручную редактировать параметры профиля. Для некоторых значения задаются с нуля, а для других перегенерируются. - -![Добавить в проект](./assets/WorkWithProfile/WorkWithProfile_pic6.png) - -### Что можно делать? -- **Задавать кастомные параметры телефона**; -- **Устанавливать желаемые имена, фамилии, даты рождения и прочую Личную информацию;** -- **Придумывать логины, пароли, адреса почтовых ящиков; -- **Любыми иными способами модернизировать данные профиля под свои нужды.** -_______________________________________________ -## Использование данных. -В своей работе вы можете использовать данных из профиля в других действиях. Например, в экшене ***Обработка переменных***. Для этого вам пригодятся макросы ***переменных окружения***, такие как `{-Profile.Name}`. - -![Добавить в проект](./assets/WorkWithProfile/WorkWithProfile_pic7.png) - -:::tip **Возможные варианты.** -Вам достаточно написать фрагмент переменной, а ProjectMaker сам предложит возможные варианты в виде всплывающего списка. -::: -_______________________________________________ -## Практический пример. -Представим, что мы пользуемся каким-либо сервисом, где есть подписчики. И после завершения работы хотим сохранять последние дату и время в переменную `LastActivity`. Для этого воспользуемся экшеном ***Обработка переменных***, в поле которого укажем макрос `{-TimeNow.Date-}`. - -:::info **Подробнее о доступных макросах читайте в статье об *Окне переменных*.** -::: - -Продолжим. В переменную `OldSubcribers` положим информацию о количестве подписчиков, которое мы получили при работе шаблона. - -А в `PhoneNum` сохраним номер телефона, привязанный к аккаунту. - -![Добавить в проект](./assets/WorkWithProfile/WorkWithProfile_pic8.png) - -Теперь при сохранении профиля указываем переменные, которые хотим оставить: - -![Добавить в проект](./assets/WorkWithProfile/WorkWithProfile_pic9.png) - -Так как переменные `token` и `UserNameLastSub` нам не нужны по тем или иным причинам, мы их не сохраняем. - -В дальнейшем мы сможем **Загрузить профиль** и сразу получить нужные переменные. Их можно использовать для собственного логирования действий. Добавим экшен ***Оповещение*** и укажем в нем этот текст: -``` -Загружен профиль. -Имя профиля: {-Profile.Name-}; -Последняя активность профиля: {-Variable.LastActivity-}; -Количество подписчиков после предыдущей проверки: {-Variable.OldSubcribers-}; -Номер телефона: {-Variable.PhoneNum-}. -``` -В результате получим следующий текст в логе: - -![Добавить в проект](./assets/WorkWithProfile/WorkWithProfile_pic10.png) - -Также при сохранении и загрузке профиля можно использовать пользовательские переменные и переменные окружения, а также их сочетания. - -Например, если вставить в *Путь к файлу* следующую строку: -`{-Project.Directory-}ProfilesZenno\{-Profile.Login-}.zpprofile` -то профиль сохранится в файл с названием `rosenhydo1987.zpprofile`. - -![Добавить в проект](./assets/WorkWithProfile/WorkWithProfile_pic11.png) \ No newline at end of file diff --git a/docs/Data/WorkWithVariables.mdx b/docs/Data/WorkWithVariables.mdx deleted file mode 100644 index 238fc913..00000000 --- a/docs/Data/WorkWithVariables.mdx +++ /dev/null @@ -1,77 +0,0 @@ ---- -sidebar_position: 10 -title: Обработка переменных -description: Обработка переменных. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ -## Описание. -**Переменная** — это контейнер в памяти, который может принимать заданное или вычисляемое значение. Это основа любого проекта в программировании. - -В ZennoDroid переменные можно создавать и удалять, менять им названия, а также присваивать им различные значения. Удобнее всего заниматься этим через ***Окно переменных***. - -Мы рекомендуем разделять переменные C#, которые строго типизированы, с переменными проекта, которые напротив не имеют строгой типизации. Однако значения этих двух типов всегда можно конвертировать без потери и искажения данных. - -**Экшен можно использовать для:** -- *установки и изменения значений переменных*; -- *увеличения или уменьшения значения счётчика*. -_______________________________________________ -## Как добавить в проект? -Через контекстное меню: **Добавить действие → Данные → Обработка переменных**. - -![Добавить в проект](./assets/WorkWithVariables/WorkWithVariables_pic1.png) -_______________________________________________ -## Как работать с экшеном? -### Установить значение. -![Как работать с экшеном?](./assets/WorkWithVariables/WorkWithVariables_pic2.png) - -Можно присваивать статические строки, числа, значения других переменных, а также все перечисленные данные вместе. -_______________________________________________ -### Увеличить/Уменьшить счётчик. -![Увеличить/Уменьшить счётчик](./assets/WorkWithVariables/WorkWithVariables_pic3.png) - -Режим счетчика работает как на увеличение, так и на уменьшение значения. При этом регулировать его можно не только по единице, а на любое число указанное в поле **Значение**. - -В **Имя переменной** указываем ту, значения которой собираемся изменять. -_______________________________________________ -### Очистить переменные. -С помощью этого действия можно удалить содержимое переменных. - -![Очистить переменные](./assets/WorkWithVariables/WorkWithVariables_pic4.png) - -Доступно три режима очистки: -- **Все**; -- **Перечисленные**; -- **Все, кроме перечисленных**. - -Удаление содержимого, например, может пригодиться перед началом новой итерации, когда шаблон работает в цикле, а мы не хотим, чтобы значения из предыдущей фазы попали в новую. -_______________________________________________ -### Пространство имён. -**Локальные** переменные видны только **в пределах одного потока**. То есть если проект работает в многопоточном режиме, то у каждого потока будет своя независимая переменная. - -**Глобальные** же переменные, напротив, **доступны для всех проектов и их потоков**. - -**Пространство имён** было придумано как дополнительное свойство для избежания путаницы. Его нужно указывать при создании глобальных переменных и при обращении к ним. -_______________________________________________ -## Примеры использования. -Рассмотрим два практических примера использования переменных в проектах. -_______________________________________________ -### Присвоение значения. -Значения переменных можно присваивать или изменять. Делается это в ***Окне переменных***, либо с помощью данного экшена **Обработка переменных**. - -![Присвоение значения](./assets/WorkWithVariables/WorkWithVariables_pic5.png) - -В данном примере формируется адрес электронной почты на основе строковых переменных: *логин* и *домен сайта*. -_______________________________________________ -### Работа со счётчиком. -Представим задачу, в которой требуется составить список десяти текущих отметок времени. - -![Работа со счётчиком](./assets/WorkWithVariables/WorkWithVariables_pic6.png) - -**1.** Создаём переменную `count`, которая выступит счётчиком. Присвоим ей значение `0`. -**2.** Теперь получим текущую отметку времени с помощь ***переменной окружения*** под названием `{-TimeNow.TimeNow-}`. Добавим её к переменной `time` и сохраним полученное значение туда же. -**3.** Далее нам нужно повторить процедуру из прошлого пункта еще **9 раз**. Для этого сравниваем экшеном ***IF*** значение нашего счётчика `count` с максимальным значением `9`. -**4.** Если условие не выполнено (счетчик меньше или равен `9`), то увеличиваем `count` на `1` (действие **Увеличить счётчик**) и повторяем *пункт 2*. -**5.** Когда условие выполнится (счетчик более `9`), завершим обработку и выведем в лог полученное значение переменной `time`. Мы можем увидеть результат работы проекта в ***Окне переменных***. - diff --git a/docs/Data/_category_.json b/docs/Data/_category_.json deleted file mode 100644 index b591018b..00000000 --- a/docs/Data/_category_.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "label": "Данные", - "position": 5, - "link": { - "type": "generated-index", - "title": "Какие данные есть в редакторе?" - } - } - \ No newline at end of file diff --git a/docs/Data/assets/ContentCreator/ContentCreator_pic1.png b/docs/Data/assets/ContentCreator/ContentCreator_pic1.png deleted file mode 100644 index 0f93aea9..00000000 Binary files a/docs/Data/assets/ContentCreator/ContentCreator_pic1.png and /dev/null differ diff --git a/docs/Data/assets/ContentCreator/ContentCreator_pic2.png b/docs/Data/assets/ContentCreator/ContentCreator_pic2.png deleted file mode 100644 index fd9f52c0..00000000 Binary files a/docs/Data/assets/ContentCreator/ContentCreator_pic2.png and /dev/null differ diff --git a/docs/Data/assets/ContentCreator/ContentCreator_pic3.png b/docs/Data/assets/ContentCreator/ContentCreator_pic3.png deleted file mode 100644 index 7b70b472..00000000 Binary files a/docs/Data/assets/ContentCreator/ContentCreator_pic3.png and /dev/null differ diff --git a/docs/Data/assets/DataBase/DataBase_pic1.png b/docs/Data/assets/DataBase/DataBase_pic1.png deleted file mode 100644 index 3d41be4c..00000000 Binary files a/docs/Data/assets/DataBase/DataBase_pic1.png and /dev/null differ diff --git a/docs/Data/assets/DataBase/DataBase_pic10.png b/docs/Data/assets/DataBase/DataBase_pic10.png deleted file mode 100644 index ba862ce7..00000000 Binary files a/docs/Data/assets/DataBase/DataBase_pic10.png and /dev/null differ diff --git a/docs/Data/assets/DataBase/DataBase_pic2.png b/docs/Data/assets/DataBase/DataBase_pic2.png deleted file mode 100644 index 02946e82..00000000 Binary files a/docs/Data/assets/DataBase/DataBase_pic2.png and /dev/null differ diff --git a/docs/Data/assets/DataBase/DataBase_pic3.png b/docs/Data/assets/DataBase/DataBase_pic3.png deleted file mode 100644 index 95d2ba24..00000000 Binary files a/docs/Data/assets/DataBase/DataBase_pic3.png and /dev/null differ diff --git a/docs/Data/assets/DataBase/DataBase_pic4.png b/docs/Data/assets/DataBase/DataBase_pic4.png deleted file mode 100644 index 0ff2547e..00000000 Binary files a/docs/Data/assets/DataBase/DataBase_pic4.png and /dev/null differ diff --git a/docs/Data/assets/DataBase/DataBase_pic5.png b/docs/Data/assets/DataBase/DataBase_pic5.png deleted file mode 100644 index cfe63c03..00000000 Binary files a/docs/Data/assets/DataBase/DataBase_pic5.png and /dev/null differ diff --git a/docs/Data/assets/DataBase/DataBase_pic6.png b/docs/Data/assets/DataBase/DataBase_pic6.png deleted file mode 100644 index e24ebe39..00000000 Binary files a/docs/Data/assets/DataBase/DataBase_pic6.png and /dev/null differ diff --git a/docs/Data/assets/DataBase/DataBase_pic7.png b/docs/Data/assets/DataBase/DataBase_pic7.png deleted file mode 100644 index fe740e70..00000000 Binary files a/docs/Data/assets/DataBase/DataBase_pic7.png and /dev/null differ diff --git a/docs/Data/assets/DataBase/DataBase_pic8.png b/docs/Data/assets/DataBase/DataBase_pic8.png deleted file mode 100644 index afaefdba..00000000 Binary files a/docs/Data/assets/DataBase/DataBase_pic8.png and /dev/null differ diff --git a/docs/Data/assets/DataBase/DataBase_pic9.png b/docs/Data/assets/DataBase/DataBase_pic9.png deleted file mode 100644 index 0b807775..00000000 Binary files a/docs/Data/assets/DataBase/DataBase_pic9.png and /dev/null differ diff --git a/docs/Data/assets/Directories/Directories_pic1.png b/docs/Data/assets/Directories/Directories_pic1.png deleted file mode 100644 index f8ed8f83..00000000 Binary files a/docs/Data/assets/Directories/Directories_pic1.png and /dev/null differ diff --git a/docs/Data/assets/Directories/Directories_pic2.png b/docs/Data/assets/Directories/Directories_pic2.png deleted file mode 100644 index 023866e5..00000000 Binary files a/docs/Data/assets/Directories/Directories_pic2.png and /dev/null differ diff --git a/docs/Data/assets/Directories/Directories_pic3.png b/docs/Data/assets/Directories/Directories_pic3.png deleted file mode 100644 index 4976388c..00000000 Binary files a/docs/Data/assets/Directories/Directories_pic3.png and /dev/null differ diff --git a/docs/Data/assets/Directories/Directories_pic4.png b/docs/Data/assets/Directories/Directories_pic4.png deleted file mode 100644 index 7dc45abc..00000000 Binary files a/docs/Data/assets/Directories/Directories_pic4.png and /dev/null differ diff --git a/docs/Data/assets/Directories/Directories_pic5.png b/docs/Data/assets/Directories/Directories_pic5.png deleted file mode 100644 index 94e40a53..00000000 Binary files a/docs/Data/assets/Directories/Directories_pic5.png and /dev/null differ diff --git a/docs/Data/assets/Directories/Directories_pic6.png b/docs/Data/assets/Directories/Directories_pic6.png deleted file mode 100644 index d01e32e1..00000000 Binary files a/docs/Data/assets/Directories/Directories_pic6.png and /dev/null differ diff --git a/docs/Data/assets/Files/Files_pic1.png b/docs/Data/assets/Files/Files_pic1.png deleted file mode 100644 index f0c46151..00000000 Binary files a/docs/Data/assets/Files/Files_pic1.png and /dev/null differ diff --git a/docs/Data/assets/Files/Files_pic2.png b/docs/Data/assets/Files/Files_pic2.png deleted file mode 100644 index e15137af..00000000 Binary files a/docs/Data/assets/Files/Files_pic2.png and /dev/null differ diff --git a/docs/Data/assets/Files/Files_pic3.png b/docs/Data/assets/Files/Files_pic3.png deleted file mode 100644 index 1c064323..00000000 Binary files a/docs/Data/assets/Files/Files_pic3.png and /dev/null differ diff --git a/docs/Data/assets/Files/Files_pic4.png b/docs/Data/assets/Files/Files_pic4.png deleted file mode 100644 index 11816639..00000000 Binary files a/docs/Data/assets/Files/Files_pic4.png and /dev/null differ diff --git a/docs/Data/assets/Files/Files_pic5.png b/docs/Data/assets/Files/Files_pic5.png deleted file mode 100644 index 40b76956..00000000 Binary files a/docs/Data/assets/Files/Files_pic5.png and /dev/null differ diff --git a/docs/Data/assets/Files/Files_pic6.png b/docs/Data/assets/Files/Files_pic6.png deleted file mode 100644 index 58a0d6a1..00000000 Binary files a/docs/Data/assets/Files/Files_pic6.png and /dev/null differ diff --git a/docs/Data/assets/Files/Files_pic7.png b/docs/Data/assets/Files/Files_pic7.png deleted file mode 100644 index 01a194c2..00000000 Binary files a/docs/Data/assets/Files/Files_pic7.png and /dev/null differ diff --git a/docs/Data/assets/Files/Files_pic8.png b/docs/Data/assets/Files/Files_pic8.png deleted file mode 100644 index c690076b..00000000 Binary files a/docs/Data/assets/Files/Files_pic8.png and /dev/null differ diff --git a/docs/Data/assets/Images/Images_pic1.png b/docs/Data/assets/Images/Images_pic1.png deleted file mode 100644 index d80e0957..00000000 Binary files a/docs/Data/assets/Images/Images_pic1.png and /dev/null differ diff --git a/docs/Data/assets/Images/Images_pic2.png b/docs/Data/assets/Images/Images_pic2.png deleted file mode 100644 index 7de47a86..00000000 Binary files a/docs/Data/assets/Images/Images_pic2.png and /dev/null differ diff --git a/docs/Data/assets/Images/Images_pic3.png b/docs/Data/assets/Images/Images_pic3.png deleted file mode 100644 index 6a978ebb..00000000 Binary files a/docs/Data/assets/Images/Images_pic3.png and /dev/null differ diff --git a/docs/Data/assets/Images/Images_pic4.png b/docs/Data/assets/Images/Images_pic4.png deleted file mode 100644 index 9ca75998..00000000 Binary files a/docs/Data/assets/Images/Images_pic4.png and /dev/null differ diff --git a/docs/Data/assets/Images/Images_pic5.png b/docs/Data/assets/Images/Images_pic5.png deleted file mode 100644 index 80ca0341..00000000 Binary files a/docs/Data/assets/Images/Images_pic5.png and /dev/null differ diff --git a/docs/Data/assets/Images/Images_pic6.png b/docs/Data/assets/Images/Images_pic6.png deleted file mode 100644 index 7f4b2b4e..00000000 Binary files a/docs/Data/assets/Images/Images_pic6.png and /dev/null differ diff --git a/docs/Data/assets/Images/Images_pic7.png b/docs/Data/assets/Images/Images_pic7.png deleted file mode 100644 index f3cc4adc..00000000 Binary files a/docs/Data/assets/Images/Images_pic7.png and /dev/null differ diff --git a/docs/Data/assets/Images/Images_pic8.png b/docs/Data/assets/Images/Images_pic8.png deleted file mode 100644 index 3e343fa2..00000000 Binary files a/docs/Data/assets/Images/Images_pic8.png and /dev/null differ diff --git a/docs/Data/assets/JSON_XML/JSON_XML_pic1.png b/docs/Data/assets/JSON_XML/JSON_XML_pic1.png deleted file mode 100644 index ea8eebda..00000000 Binary files a/docs/Data/assets/JSON_XML/JSON_XML_pic1.png and /dev/null differ diff --git a/docs/Data/assets/JSON_XML/JSON_XML_pic10.png b/docs/Data/assets/JSON_XML/JSON_XML_pic10.png deleted file mode 100644 index 4351a491..00000000 Binary files a/docs/Data/assets/JSON_XML/JSON_XML_pic10.png and /dev/null differ diff --git a/docs/Data/assets/JSON_XML/JSON_XML_pic11.png b/docs/Data/assets/JSON_XML/JSON_XML_pic11.png deleted file mode 100644 index 9c2b0610..00000000 Binary files a/docs/Data/assets/JSON_XML/JSON_XML_pic11.png and /dev/null differ diff --git a/docs/Data/assets/JSON_XML/JSON_XML_pic12.png b/docs/Data/assets/JSON_XML/JSON_XML_pic12.png deleted file mode 100644 index 03fe78a1..00000000 Binary files a/docs/Data/assets/JSON_XML/JSON_XML_pic12.png and /dev/null differ diff --git a/docs/Data/assets/JSON_XML/JSON_XML_pic13.png b/docs/Data/assets/JSON_XML/JSON_XML_pic13.png deleted file mode 100644 index f66f934c..00000000 Binary files a/docs/Data/assets/JSON_XML/JSON_XML_pic13.png and /dev/null differ diff --git a/docs/Data/assets/JSON_XML/JSON_XML_pic14.png b/docs/Data/assets/JSON_XML/JSON_XML_pic14.png deleted file mode 100644 index 578824a4..00000000 Binary files a/docs/Data/assets/JSON_XML/JSON_XML_pic14.png and /dev/null differ diff --git a/docs/Data/assets/JSON_XML/JSON_XML_pic15.png b/docs/Data/assets/JSON_XML/JSON_XML_pic15.png deleted file mode 100644 index 588c8b59..00000000 Binary files a/docs/Data/assets/JSON_XML/JSON_XML_pic15.png and /dev/null differ diff --git a/docs/Data/assets/JSON_XML/JSON_XML_pic16.png b/docs/Data/assets/JSON_XML/JSON_XML_pic16.png deleted file mode 100644 index f39fb246..00000000 Binary files a/docs/Data/assets/JSON_XML/JSON_XML_pic16.png and /dev/null differ diff --git a/docs/Data/assets/JSON_XML/JSON_XML_pic17.png b/docs/Data/assets/JSON_XML/JSON_XML_pic17.png deleted file mode 100644 index b74261e2..00000000 Binary files a/docs/Data/assets/JSON_XML/JSON_XML_pic17.png and /dev/null differ diff --git a/docs/Data/assets/JSON_XML/JSON_XML_pic18.png b/docs/Data/assets/JSON_XML/JSON_XML_pic18.png deleted file mode 100644 index a28a90ba..00000000 Binary files a/docs/Data/assets/JSON_XML/JSON_XML_pic18.png and /dev/null differ diff --git a/docs/Data/assets/JSON_XML/JSON_XML_pic2.png b/docs/Data/assets/JSON_XML/JSON_XML_pic2.png deleted file mode 100644 index 68bcc13c..00000000 Binary files a/docs/Data/assets/JSON_XML/JSON_XML_pic2.png and /dev/null differ diff --git a/docs/Data/assets/JSON_XML/JSON_XML_pic3.png b/docs/Data/assets/JSON_XML/JSON_XML_pic3.png deleted file mode 100644 index 30da4568..00000000 Binary files a/docs/Data/assets/JSON_XML/JSON_XML_pic3.png and /dev/null differ diff --git a/docs/Data/assets/JSON_XML/JSON_XML_pic4.png b/docs/Data/assets/JSON_XML/JSON_XML_pic4.png deleted file mode 100644 index 383350bb..00000000 Binary files a/docs/Data/assets/JSON_XML/JSON_XML_pic4.png and /dev/null differ diff --git a/docs/Data/assets/JSON_XML/JSON_XML_pic5.png b/docs/Data/assets/JSON_XML/JSON_XML_pic5.png deleted file mode 100644 index 24e16e7c..00000000 Binary files a/docs/Data/assets/JSON_XML/JSON_XML_pic5.png and /dev/null differ diff --git a/docs/Data/assets/JSON_XML/JSON_XML_pic6.png b/docs/Data/assets/JSON_XML/JSON_XML_pic6.png deleted file mode 100644 index c64d035b..00000000 Binary files a/docs/Data/assets/JSON_XML/JSON_XML_pic6.png and /dev/null differ diff --git a/docs/Data/assets/JSON_XML/JSON_XML_pic7.png b/docs/Data/assets/JSON_XML/JSON_XML_pic7.png deleted file mode 100644 index 561aad25..00000000 Binary files a/docs/Data/assets/JSON_XML/JSON_XML_pic7.png and /dev/null differ diff --git a/docs/Data/assets/JSON_XML/JSON_XML_pic8.png b/docs/Data/assets/JSON_XML/JSON_XML_pic8.png deleted file mode 100644 index 12553260..00000000 Binary files a/docs/Data/assets/JSON_XML/JSON_XML_pic8.png and /dev/null differ diff --git a/docs/Data/assets/JSON_XML/JSON_XML_pic9.png b/docs/Data/assets/JSON_XML/JSON_XML_pic9.png deleted file mode 100644 index a8d2e16d..00000000 Binary files a/docs/Data/assets/JSON_XML/JSON_XML_pic9.png and /dev/null differ diff --git a/docs/Data/assets/Random/Random_pic1.png b/docs/Data/assets/Random/Random_pic1.png deleted file mode 100644 index 8bc79975..00000000 Binary files a/docs/Data/assets/Random/Random_pic1.png and /dev/null differ diff --git a/docs/Data/assets/Random/Random_pic2.png b/docs/Data/assets/Random/Random_pic2.png deleted file mode 100644 index 4c15cc81..00000000 Binary files a/docs/Data/assets/Random/Random_pic2.png and /dev/null differ diff --git a/docs/Data/assets/Random/Random_pic3.png b/docs/Data/assets/Random/Random_pic3.png deleted file mode 100644 index 2f6beee6..00000000 Binary files a/docs/Data/assets/Random/Random_pic3.png and /dev/null differ diff --git a/docs/Data/assets/Random/Random_pic4.png b/docs/Data/assets/Random/Random_pic4.png deleted file mode 100644 index f691c2c7..00000000 Binary files a/docs/Data/assets/Random/Random_pic4.png and /dev/null differ diff --git a/docs/Data/assets/SMS_Services/SMS_Services_pic1.png b/docs/Data/assets/SMS_Services/SMS_Services_pic1.png deleted file mode 100644 index 958251f3..00000000 Binary files a/docs/Data/assets/SMS_Services/SMS_Services_pic1.png and /dev/null differ diff --git a/docs/Data/assets/SMS_Services/SMS_Services_pic2.png b/docs/Data/assets/SMS_Services/SMS_Services_pic2.png deleted file mode 100644 index 30aad415..00000000 Binary files a/docs/Data/assets/SMS_Services/SMS_Services_pic2.png and /dev/null differ diff --git a/docs/Data/assets/SMS_Services/SMS_Services_pic3.png b/docs/Data/assets/SMS_Services/SMS_Services_pic3.png deleted file mode 100644 index 46a9f204..00000000 Binary files a/docs/Data/assets/SMS_Services/SMS_Services_pic3.png and /dev/null differ diff --git a/docs/Data/assets/SMS_Services/SMS_Services_pic4.png b/docs/Data/assets/SMS_Services/SMS_Services_pic4.png deleted file mode 100644 index 93c3d409..00000000 Binary files a/docs/Data/assets/SMS_Services/SMS_Services_pic4.png and /dev/null differ diff --git a/docs/Data/assets/SMS_Services/SMS_Services_pic5.png b/docs/Data/assets/SMS_Services/SMS_Services_pic5.png deleted file mode 100644 index b9181eda..00000000 Binary files a/docs/Data/assets/SMS_Services/SMS_Services_pic5.png and /dev/null differ diff --git a/docs/Data/assets/SMS_Services/SMS_Services_pic6.png b/docs/Data/assets/SMS_Services/SMS_Services_pic6.png deleted file mode 100644 index 392162c6..00000000 Binary files a/docs/Data/assets/SMS_Services/SMS_Services_pic6.png and /dev/null differ diff --git a/docs/Data/assets/SMS_Services/SMS_Services_pic7.png b/docs/Data/assets/SMS_Services/SMS_Services_pic7.png deleted file mode 100644 index 4f139063..00000000 Binary files a/docs/Data/assets/SMS_Services/SMS_Services_pic7.png and /dev/null differ diff --git a/docs/Data/assets/Text/Text_pic1.png b/docs/Data/assets/Text/Text_pic1.png deleted file mode 100644 index 0b85d993..00000000 Binary files a/docs/Data/assets/Text/Text_pic1.png and /dev/null differ diff --git a/docs/Data/assets/Text/Text_pic10.png b/docs/Data/assets/Text/Text_pic10.png deleted file mode 100644 index 7bfe9045..00000000 Binary files a/docs/Data/assets/Text/Text_pic10.png and /dev/null differ diff --git a/docs/Data/assets/Text/Text_pic11.png b/docs/Data/assets/Text/Text_pic11.png deleted file mode 100644 index 8fc6964b..00000000 Binary files a/docs/Data/assets/Text/Text_pic11.png and /dev/null differ diff --git a/docs/Data/assets/Text/Text_pic12.png b/docs/Data/assets/Text/Text_pic12.png deleted file mode 100644 index f85e93c9..00000000 Binary files a/docs/Data/assets/Text/Text_pic12.png and /dev/null differ diff --git a/docs/Data/assets/Text/Text_pic13.png b/docs/Data/assets/Text/Text_pic13.png deleted file mode 100644 index 2f4910c8..00000000 Binary files a/docs/Data/assets/Text/Text_pic13.png and /dev/null differ diff --git a/docs/Data/assets/Text/Text_pic14.png b/docs/Data/assets/Text/Text_pic14.png deleted file mode 100644 index 467a6a49..00000000 Binary files a/docs/Data/assets/Text/Text_pic14.png and /dev/null differ diff --git a/docs/Data/assets/Text/Text_pic15.png b/docs/Data/assets/Text/Text_pic15.png deleted file mode 100644 index eafc1f72..00000000 Binary files a/docs/Data/assets/Text/Text_pic15.png and /dev/null differ diff --git a/docs/Data/assets/Text/Text_pic16.png b/docs/Data/assets/Text/Text_pic16.png deleted file mode 100644 index 53948173..00000000 Binary files a/docs/Data/assets/Text/Text_pic16.png and /dev/null differ diff --git a/docs/Data/assets/Text/Text_pic17.png b/docs/Data/assets/Text/Text_pic17.png deleted file mode 100644 index 496df4d9..00000000 Binary files a/docs/Data/assets/Text/Text_pic17.png and /dev/null differ diff --git a/docs/Data/assets/Text/Text_pic18.png b/docs/Data/assets/Text/Text_pic18.png deleted file mode 100644 index 4bd037e6..00000000 Binary files a/docs/Data/assets/Text/Text_pic18.png and /dev/null differ diff --git a/docs/Data/assets/Text/Text_pic19.png b/docs/Data/assets/Text/Text_pic19.png deleted file mode 100644 index 92793bb2..00000000 Binary files a/docs/Data/assets/Text/Text_pic19.png and /dev/null differ diff --git a/docs/Data/assets/Text/Text_pic2.png b/docs/Data/assets/Text/Text_pic2.png deleted file mode 100644 index 8537de21..00000000 Binary files a/docs/Data/assets/Text/Text_pic2.png and /dev/null differ diff --git a/docs/Data/assets/Text/Text_pic20.png b/docs/Data/assets/Text/Text_pic20.png deleted file mode 100644 index c4c6cf45..00000000 Binary files a/docs/Data/assets/Text/Text_pic20.png and /dev/null differ diff --git a/docs/Data/assets/Text/Text_pic21.png b/docs/Data/assets/Text/Text_pic21.png deleted file mode 100644 index 58c6c59e..00000000 Binary files a/docs/Data/assets/Text/Text_pic21.png and /dev/null differ diff --git a/docs/Data/assets/Text/Text_pic22.png b/docs/Data/assets/Text/Text_pic22.png deleted file mode 100644 index 88aa4afe..00000000 Binary files a/docs/Data/assets/Text/Text_pic22.png and /dev/null differ diff --git a/docs/Data/assets/Text/Text_pic23.png b/docs/Data/assets/Text/Text_pic23.png deleted file mode 100644 index a39e109f..00000000 Binary files a/docs/Data/assets/Text/Text_pic23.png and /dev/null differ diff --git a/docs/Data/assets/Text/Text_pic24.png b/docs/Data/assets/Text/Text_pic24.png deleted file mode 100644 index b2e07947..00000000 Binary files a/docs/Data/assets/Text/Text_pic24.png and /dev/null differ diff --git a/docs/Data/assets/Text/Text_pic25.png b/docs/Data/assets/Text/Text_pic25.png deleted file mode 100644 index 224c9ef0..00000000 Binary files a/docs/Data/assets/Text/Text_pic25.png and /dev/null differ diff --git a/docs/Data/assets/Text/Text_pic26.png b/docs/Data/assets/Text/Text_pic26.png deleted file mode 100644 index 867590af..00000000 Binary files a/docs/Data/assets/Text/Text_pic26.png and /dev/null differ diff --git a/docs/Data/assets/Text/Text_pic27.png b/docs/Data/assets/Text/Text_pic27.png deleted file mode 100644 index 0f8857f5..00000000 Binary files a/docs/Data/assets/Text/Text_pic27.png and /dev/null differ diff --git a/docs/Data/assets/Text/Text_pic28.png b/docs/Data/assets/Text/Text_pic28.png deleted file mode 100644 index 49b98fc5..00000000 Binary files a/docs/Data/assets/Text/Text_pic28.png and /dev/null differ diff --git a/docs/Data/assets/Text/Text_pic29.png b/docs/Data/assets/Text/Text_pic29.png deleted file mode 100644 index 1793f7f8..00000000 Binary files a/docs/Data/assets/Text/Text_pic29.png and /dev/null differ diff --git a/docs/Data/assets/Text/Text_pic3.png b/docs/Data/assets/Text/Text_pic3.png deleted file mode 100644 index b62f5769..00000000 Binary files a/docs/Data/assets/Text/Text_pic3.png and /dev/null differ diff --git a/docs/Data/assets/Text/Text_pic4.png b/docs/Data/assets/Text/Text_pic4.png deleted file mode 100644 index a10c107b..00000000 Binary files a/docs/Data/assets/Text/Text_pic4.png and /dev/null differ diff --git a/docs/Data/assets/Text/Text_pic5.png b/docs/Data/assets/Text/Text_pic5.png deleted file mode 100644 index f3075201..00000000 Binary files a/docs/Data/assets/Text/Text_pic5.png and /dev/null differ diff --git a/docs/Data/assets/Text/Text_pic6.png b/docs/Data/assets/Text/Text_pic6.png deleted file mode 100644 index c8699bb5..00000000 Binary files a/docs/Data/assets/Text/Text_pic6.png and /dev/null differ diff --git a/docs/Data/assets/Text/Text_pic7.png b/docs/Data/assets/Text/Text_pic7.png deleted file mode 100644 index d9153fbd..00000000 Binary files a/docs/Data/assets/Text/Text_pic7.png and /dev/null differ diff --git a/docs/Data/assets/Text/Text_pic8.png b/docs/Data/assets/Text/Text_pic8.png deleted file mode 100644 index 739ecacc..00000000 Binary files a/docs/Data/assets/Text/Text_pic8.png and /dev/null differ diff --git a/docs/Data/assets/Text/Text_pic9.png b/docs/Data/assets/Text/Text_pic9.png deleted file mode 100644 index 36c37fd2..00000000 Binary files a/docs/Data/assets/Text/Text_pic9.png and /dev/null differ diff --git a/docs/Data/assets/WorkWithProfile/WorkWithProfile_pic1.png b/docs/Data/assets/WorkWithProfile/WorkWithProfile_pic1.png deleted file mode 100644 index aae14e31..00000000 Binary files a/docs/Data/assets/WorkWithProfile/WorkWithProfile_pic1.png and /dev/null differ diff --git a/docs/Data/assets/WorkWithProfile/WorkWithProfile_pic10.png b/docs/Data/assets/WorkWithProfile/WorkWithProfile_pic10.png deleted file mode 100644 index ff9d0546..00000000 Binary files a/docs/Data/assets/WorkWithProfile/WorkWithProfile_pic10.png and /dev/null differ diff --git a/docs/Data/assets/WorkWithProfile/WorkWithProfile_pic11.png b/docs/Data/assets/WorkWithProfile/WorkWithProfile_pic11.png deleted file mode 100644 index 7ab9767c..00000000 Binary files a/docs/Data/assets/WorkWithProfile/WorkWithProfile_pic11.png and /dev/null differ diff --git a/docs/Data/assets/WorkWithProfile/WorkWithProfile_pic2.png b/docs/Data/assets/WorkWithProfile/WorkWithProfile_pic2.png deleted file mode 100644 index ae5e0d25..00000000 Binary files a/docs/Data/assets/WorkWithProfile/WorkWithProfile_pic2.png and /dev/null differ diff --git a/docs/Data/assets/WorkWithProfile/WorkWithProfile_pic3.png b/docs/Data/assets/WorkWithProfile/WorkWithProfile_pic3.png deleted file mode 100644 index 9f22e1c5..00000000 Binary files a/docs/Data/assets/WorkWithProfile/WorkWithProfile_pic3.png and /dev/null differ diff --git a/docs/Data/assets/WorkWithProfile/WorkWithProfile_pic4.png b/docs/Data/assets/WorkWithProfile/WorkWithProfile_pic4.png deleted file mode 100644 index 685eefc6..00000000 Binary files a/docs/Data/assets/WorkWithProfile/WorkWithProfile_pic4.png and /dev/null differ diff --git a/docs/Data/assets/WorkWithProfile/WorkWithProfile_pic5.png b/docs/Data/assets/WorkWithProfile/WorkWithProfile_pic5.png deleted file mode 100644 index bdccf449..00000000 Binary files a/docs/Data/assets/WorkWithProfile/WorkWithProfile_pic5.png and /dev/null differ diff --git a/docs/Data/assets/WorkWithProfile/WorkWithProfile_pic6.png b/docs/Data/assets/WorkWithProfile/WorkWithProfile_pic6.png deleted file mode 100644 index 66629170..00000000 Binary files a/docs/Data/assets/WorkWithProfile/WorkWithProfile_pic6.png and /dev/null differ diff --git a/docs/Data/assets/WorkWithProfile/WorkWithProfile_pic7.png b/docs/Data/assets/WorkWithProfile/WorkWithProfile_pic7.png deleted file mode 100644 index 4def6642..00000000 Binary files a/docs/Data/assets/WorkWithProfile/WorkWithProfile_pic7.png and /dev/null differ diff --git a/docs/Data/assets/WorkWithProfile/WorkWithProfile_pic8.png b/docs/Data/assets/WorkWithProfile/WorkWithProfile_pic8.png deleted file mode 100644 index 611f9a6c..00000000 Binary files a/docs/Data/assets/WorkWithProfile/WorkWithProfile_pic8.png and /dev/null differ diff --git a/docs/Data/assets/WorkWithProfile/WorkWithProfile_pic9.png b/docs/Data/assets/WorkWithProfile/WorkWithProfile_pic9.png deleted file mode 100644 index 692e1678..00000000 Binary files a/docs/Data/assets/WorkWithProfile/WorkWithProfile_pic9.png and /dev/null differ diff --git a/docs/Data/assets/WorkWithVariables/WorkWithVariables_pic1.png b/docs/Data/assets/WorkWithVariables/WorkWithVariables_pic1.png deleted file mode 100644 index 49542aac..00000000 Binary files a/docs/Data/assets/WorkWithVariables/WorkWithVariables_pic1.png and /dev/null differ diff --git a/docs/Data/assets/WorkWithVariables/WorkWithVariables_pic2.png b/docs/Data/assets/WorkWithVariables/WorkWithVariables_pic2.png deleted file mode 100644 index 62aa4815..00000000 Binary files a/docs/Data/assets/WorkWithVariables/WorkWithVariables_pic2.png and /dev/null differ diff --git a/docs/Data/assets/WorkWithVariables/WorkWithVariables_pic3.png b/docs/Data/assets/WorkWithVariables/WorkWithVariables_pic3.png deleted file mode 100644 index 893e7b64..00000000 Binary files a/docs/Data/assets/WorkWithVariables/WorkWithVariables_pic3.png and /dev/null differ diff --git a/docs/Data/assets/WorkWithVariables/WorkWithVariables_pic4.png b/docs/Data/assets/WorkWithVariables/WorkWithVariables_pic4.png deleted file mode 100644 index f1d34e57..00000000 Binary files a/docs/Data/assets/WorkWithVariables/WorkWithVariables_pic4.png and /dev/null differ diff --git a/docs/Data/assets/WorkWithVariables/WorkWithVariables_pic5.png b/docs/Data/assets/WorkWithVariables/WorkWithVariables_pic5.png deleted file mode 100644 index 0d36a782..00000000 Binary files a/docs/Data/assets/WorkWithVariables/WorkWithVariables_pic5.png and /dev/null differ diff --git a/docs/Data/assets/WorkWithVariables/WorkWithVariables_pic6.png b/docs/Data/assets/WorkWithVariables/WorkWithVariables_pic6.png deleted file mode 100644 index 0827911f..00000000 Binary files a/docs/Data/assets/WorkWithVariables/WorkWithVariables_pic6.png and /dev/null differ diff --git a/docs/Disclaimer.mdx b/docs/Disclaimer.mdx deleted file mode 100644 index 6e54f5ac..00000000 --- a/docs/Disclaimer.mdx +++ /dev/null @@ -1,18 +0,0 @@ ---- -sidebar_position: 100 -title: Правила использования материалов на данном ресурсе -description: Правила использования материалов на данном ресурсе ---- -:::info **Пожалуйста, ознакомьтесь.** -::: -Данный программный продукт в некоторых юрисдикциях может относиться к разряду **потенциально опасного** программного обеспечения. -_______________________________________________ -В материалах на данном ресурсе **мы рассматриваем возможности** программного обеспечения. -_______________________________________________ -Данные материалы **нельзя интерпретировать** как безоговорочную инструкцию к действию. -_______________________________________________ -**Вы сами принимаете решения** об использовании указанного программного обеспечения в тех юрисдикциях, в которых Вы находитесь и/или планируете использовать данное программное обеспечение. -_______________________________________________ -**Мы призываем изучить законодательство** той страны, в которой Вы собираетесь использовать данное программное обеспечение и **использовать его только в законных целях**. -_______________________________________________ -Изучая материалы ресурса и/или ссылаясь на него и/или пересказывая в устной форме неограниченному кругу лиц информацию о данном программном обеспечении, **Вы соглашаетесь с тем, что были ознакомлены с приведенной выше информацией и не сможете этого отрицать**. diff --git a/docs/Installation/Frida.mdx b/docs/Installation/Frida.mdx deleted file mode 100644 index 22f462dd..00000000 --- a/docs/Installation/Frida.mdx +++ /dev/null @@ -1,200 +0,0 @@ ---- -sidebar_position: 8 -title: Сервер Frida -description: Установка и запуск сервера Frida ---- - -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ -export const VideoSample = ({source}) => ( - -); - -## Что такое Frida? -[**Frida**](https://frida.re/) — это набор инструментов для динамического кода. Позволяет легко внедрять собственный код в другие приложения. -Frida умеет работать с приложениями, написанными для всех популярных ОС, включая Windows, Linux, macOS, iOS и даже QNX. -Мы же будем использовать ее для модификации приложений под Android. -:::info **Для работы Frida на реальном устройстве необходим Root.** -::: -_________________ - -## Как открыть Frida Toolkit? -![Как открыть](./assets/Frida/Frida_pic1.png) - -В левом верхнем углу приложения на панели находим ***Инструменты → в самом низу Frida toolkit***. - -![Окно](./assets/Frida/Frida_pic2.png) -:::info **Перед началом работы необходимо запустить устройство или эмулятор.** -::: -_________________ -## Описание доступных окон. -![Окна](./assets/Frida/Frida_pic3.png) -### Устройства (1): -Список всех устройств, подключенных через ADB. Он автоматически обновляется при подключении/отключении новых устройств или эмуляторов. -В версии ZennoDroid Enterprise можно переключаться между разными устройствами, при этом в остальных версиях работа возможна только с запущенным в основном окне эмулятором. -#### Доступные кнопки: -- **Обновить**. Принудительно обновляет список устройств. -- **Запустить frida**. Запускает сервер Frida на устройстве. После нажатия необходимо дождаться уведомления в информационном окне «*Сервер запущен*». При первом запуске происходит автоматическая установка сервера на устройство, что занимает некоторое время (~5-10 сек). -- **Остановить frida**. Останавливает сервер, но не удаляет его, поэтому последующие запуски будут происходить значительно быстрее, чем в первый раз. -_________________ -### Приложения (2): -Здесь выводится список всех установленных приложений, для которых есть возможность запуска. Приложения, которые нельзя запустить (без стартовых activity), не отображаются в списке. -#### Категории: -- **Id**. Тут можно посмотреть уникальный идентификатор приложения (package name). -- **Название**. Понятное название приложения, которое обычно отображается на иконке. -#### Доступные кнопки: -- **Обновить**. Нажав на нее, можно обновить список приложений. Ее необходимо использовать после установки или удаления приложений. -- **Активное**. После нажатия в таблице будет выбрано приложение, которое в данный момент отображается на экране устройства. -- **Запустить**. Эта кнопка запускает выбранное приложение и автоматически подключается к его процессу. Если приложение уже было запущено, оно будет остановлено, а затем запущено заново. -- **Возобновить**. Снимает с паузы приложение, которое ранее было приостановлено. -_________________ -### Процессы (3): -Здесь можно посмотреть все запущенные процессы на устройстве. -#### Категории: -- **Pid**. Идентификатор процесса (Process id). -- **Название**. Имя процесса. Так как к одному приложению могут относиться несколько процессов, -то их названия обычно содержат уточнения. Например, **com.android.settings** дает нам понять, -что речь идет о **Настройках**. -#### Доступные кнопки: -- **Обновить**. Нажав на нее, можно обновить список текущих процессов. Необходимо использовать после запуска или остановки приложений. -- **Самый верхний**. В таблице будет выбран основной процесс приложения, которое отображается на экране устройства. -- **Подключить**. Подключается к выбранному процессу. После этого становятся доступными операции создания и загрузки скрипта. -- **Отключиться**. Отключается от процесса. Если приложение завершило работу, то отключение от процесса произойдет автоматически. -_________________ -### Скрипт (4): -Окно работы со скриптом. Поддерживаются макросы. -#### Доступные кнопки: -- **Выбрать**. Открывает форму загрузки файлов. Файл скрипта должен иметь расширение *.js* -- **Сохранить**. Сохранение содержимого окна в файл с расширением *.js* -- **Создать**. Компиляция скрипта. Если скрипт содержит ошибки, то в окно информации будет выдано соответствующее уведомление. Ошибки на данном этапе обычно связаны с неправильным синтаксисом. -(*Действие становится активным после подключения к процессу приложения.*) -- **Загрузить**. Непосредственная загрузка скрипта. Если скрипт содержит ошибки, то в окно информации будет выдано соответствующее уведомление. Ошибки на данном этапе обычно связаны непосредственно с выполнением скрипта, например, из-за отсутствия в коде приложения нужного класса. -(*Действие становится активным только после успешного выполнения кнопки **Создать**.*) - - **Выгрузить**. Выгружает скрипт. Он также выгружается автоматически при завершении процесса приложения. - _________________ - ### Информация (5): - В это окно выводится различная служебная информация и сообщения, возникающие в процессе выполнения скрипта, а также ошибки и т.д. - #### Горячие клавиши: - - **(Ctrl + C)**. Скопировать выделенные сообщения. - - **(Del)**. Удалить выделенные сообщения. - - **(Ctrl + Del)**. Удалить все сообщения. - _________________ - - ## Как проверить, что сервер Frida запустился и работает? - 1. Нажать кнопку **«Запустить frida»** и дождаться уведомления в информационном окне: *«Сервер запущен»*. - 2. На панели *Процессы* нажать **«Самый верхний»**. После этого будет выбран активный процесс. - 3. Нажать **«Подключиться»**. - 4. На панели *Скрипт* ввести код: `console.log('Hello, World!');` - 5. Нажать **«Создать»**, а потом **«Загрузить»**. - 6. Если все прошло успешно, то в информационном окне появится сообщение: `["type":"log","level":"info","payload":"Hello, World!"]` - 7. После этого можно нажать **«Выгрузить»**. Сервер Frida работает! - _________________ - - ## Стандартные сценарии. - ### Приложение будет перезапущено даже если уже запущено. - 1. На панели *Приложения* выбрать нужное (по названию или с помощью кнопки **«Активное»**). - 2. Нажать кнопку **«Запустить»**. Приложение запустится *(или перезапустится если уже было запущено)*, а затем встанет на паузу. Произойдет автоматическое подключение к его процессу. - 3. На панели *Скрипт* нажать **«Выбрать»** и в появившейся форме открыть нужный скрипт (файл - с расширением .js). - 4. Нажить кнопку **«Возобновить»**. Приложение продолжит работу. - ### Подключаемся к процессу запущенного приложения. - 1. На панели *Процессы* нажать **«Самый верхний»**, будет выбран активный процесс. - 2. Нажать **«Подключиться»**. - 3. На панели *Скрипт* нажать **«Выбрать»** и в появившейся форме открыть нужный скрипт (файл - с расширением .js). - 4. Нажать **«Создать»**, а потом **«Загрузить»**. - _________________ - - ## Перехват трафика с помощью Frida и Burp Suite. - - -_________________ - ### 1. Скачать и установить. -
-1. Выбрать **Burp Suite Community Edition** и нажать **«Download»** - -![Download](./assets/Frida/Frida_pic4.png) -
- -
-2. Создаем временный **(Temporary)** проект. - - ![Next](./assets/Frida/Frida_pic5.png) -
- -
-3. Используем **настройки по умолчанию (Use Burp defaults)** для проекта. - - ![StartBurp](./assets/Frida/Frida_pic6.png) -
- - ### 2. Настроить Burp Suite на обработку трафика с локальной сети компьютера. -
-1. Заходим в **настройки (Settings)** - - ![Find out](./assets/Frida/Frida_pic7.png) -
- -
-2. Выбираем **Tools → Proxy** и нажимаем **«Import / Export CA certificate»**. - - ![Import](./assets/Frida/Frida_pic8.png) -
- -
-3. Затем выбираем ***Certificate and private key from PKCS#12 keystore*** → выбрать файл **zenno.pfx** (*пароль **123***). - -![private kay](./assets/Frida/Frida_pic9.png) -_________________ -![private kay](./assets/Frida/Frida_pic10.png) -
- - ### 3. Выбрать необходимое устройство и запустить в Project Maker. - ![projmaker](./assets/Frida/Frida_pic11.png) -:::info **Важно.** -*В версии ZennoDroid Enterprise необходимо, чтобы в настройках Android было включено использование интернет-подключения компьютера или использование Proxifier.* -::: -_________________ -### 4. Перенаправить трафик с устройства в Burp Suite. -![suite](./assets/Frida/Frida_pic12.png) - -Нужно выполнить экшен *Перенаправить трафик в Burp*. Для проверки, что все работает правильно, можно с помощью экшена открыть в браузере страницу **http://proxifier.com** (важно чтобы страница была **http://**, -а не http**s**://). Запрос к сайту должен отобразиться в Burp Suite (на вкладке *Proxy - Http history* или *Target Site map*). -_________________ -### 5. Установить сертификат на устройство. -Сначала нужно выполнить экшен *Установить сертификат*. После этого сертификат Zenno появится в списке **Надежных сертификатов (Trusted credentials)** - -![Надежные сертификаты](./assets/Frida/Frida_pic13.png) - -
-При использовании эмулятора LDPlayer необходимо **включить Root** и разрешить доступ через ADB. - - ![Рут](./assets/Frida/Frida_pic14.png) -
- -### 6. Выполнить скрипт в Frida для снятия ssl-pinning -1. Запустить **Frida** на панели инструментов. -2. Нажать кнопку **«Запустить frida»**. -3. На панели *Приложения* выбрать нужное. -4. Нажать кнопку **«Запустить»**. -5. На панели *Скрипт* нажать **«Выбрать»** и в появившейся форме открыть скрипт `[*sslUnpin.js*]`. -6. Нажать **«Создать»**, а потом **«Загрузить»**. -7. Нажать кнопку **«Возобновить»**. - -![скрипт](./assets/Frida/Frida_pic15.png) - -Запросы приложения должны отобразиться в окне Burp Suite. В информационном окне будет написано: `[*"type":"log","level":"info","payload":"Bypassing SSL Pinning"*]`. -_________________ -### 7. Завершение анализа трафика -1. Нажать кнопку **«Выгрузить»** на панели *Скрипт*. -2. Нажать кнопку **«Отключиться»** на панели *Процессы*. -3. Выполнить экшен *Отключить перенаправление трафика в Burp*. -_________________ -## Полезные ссылки. -- *Официальный источник [**скриптов для Frida**](https://codeshare.frida.re/)*. -- *[**Шаблон и все необходимые файлы**](https://www.dropbox.com/scl/fi/2d61v0e0rnsiwz8rww06x/Frida-Burp.zip?rlkey=asbr6w5eqlarbbfjoq4lc34e8&dl=0) (пароль на zenno.pfx - 123)*. -- *Подключение реального устройства к ZennoDroid*. - \ No newline at end of file diff --git a/docs/Installation/Hyper-V.mdx b/docs/Installation/Hyper-V.mdx deleted file mode 100644 index 2537d200..00000000 --- a/docs/Installation/Hyper-V.mdx +++ /dev/null @@ -1,55 +0,0 @@ ---- -sidebar_position: 5 -title: Выключение Hyper-V -description: Как выключить Hyper-V в Windows ---- - -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ -Hyper-V позволяет запускать несколько операционных систем в виде виртуальных машин в Windows. Также он предоставляет возможность выполнять виртуализацию оборудования. Но при работе с ZennoDroid и эмуляторами Hyper-V может мешать, поэтому в этой статье мы расскажем, как его отключить. -_________________ -## Включен ли Hyper-V? -Сначала проверим, запущена ли эта низкоуровневая оболочка: -**1.** В поиске приложений введите ***msinfo32.exe*** -**2.** Выберите Сведения о системе. -**3.** В окне сведений найдите эту запись: -*«Обнаружена низкоуровневая оболочка. Функции, необходимые для Hyper-V, отображены не будут»*. - -![Включен ли Hyper-V?](./assets/HyperV/HyperV_pic1.png) -_________________ -## Отключение через командную строку. -**1.** Нажмите на строку поиска и введите **Командная строка**. -> *Или нажмите Win+R, введите ***cmd***, затем нажмите **Ok** или **Enter**.* - -**2.** В командной строке введите эту команду и нажмите Enter: -`bcdedit /set hypervisorlaunchtype off` -**3.** Готово, Hyper-V отключен 😎 - -![через командную строку](./assets/HyperV/HyperV_pic2.gif) -_________________ -## Отключение через Панель управления. -**1.** Заходим в Панель управления → Программы → Программы и компоненты → нажимаем на -**Включение или отключение компонентов Windows**. - -![через Панель управления](./assets/HyperV/HyperV_pic3.jpeg) - -**2.** Теперь нам нужно снять галочки со следующих строк: - - *Hyper V* - - *Платформа низкоуровневой оболочки Windows* - - *Песочница Windows* - - *Платформа виртуальной машины* - - *Подсистема Windows для Linux* - -![снять галочки](./assets/HyperV/HyperV_pic4.gif) - -**3.** После этого нажмите **Ок** и перезагрузите компьютер. - -![перезагрузите компьютер](./assets/HyperV/HyperV_pic5.gif) -_________________ -## Отключение целостности памяти. -Для корректной работы без Hyper-V нам также нужно отключить целостность памяти. -1. В поиске Windows введите **Изоляция ядра** и нажмите **Enter**. -2. В настройках изоляции ядра отключите **Целостность памяти**. - -![перезагрузите компьютер](./assets/HyperV/HyperV_pic6.gif) diff --git a/docs/Installation/LSPosed.mdx b/docs/Installation/LSPosed.mdx deleted file mode 100644 index 0c54a979..00000000 --- a/docs/Installation/LSPosed.mdx +++ /dev/null @@ -1,88 +0,0 @@ ---- -sidebar_position: 9 -title: Настройка LSPosed -description: Настройка модуля ZennoDroid для LSPosed ---- - -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ -export const VideoSample = ({source}) => ( - -); - -## Описание. -Модуль ZennoDroid необходим для подмены основных параметров устройства: IMEI, Android ID, сотового оператора, модели, WiFi, Bluetooth и других. -:::info **Важно.** -Поддерживаются телефоны с Android 8.1-14. Для функционирования модуля необходимы **Root права** -::: -_________________ -## Установка LSPosed Framework. - -
-Для установки модуля необходим телефон с [**Magisk**](https://github.com/topjohnwu/Magisk) и активным [**LSPosed Framework**](https://github.com/LSPosed/LSPosed). - - ![Magisk](./assets/LSPosed/LSPosed_pic1.png) ![zygisk](./assets/LSPosed/LSPosed_pic2.png) -
-:::tip *Используйте версию для *zygisk*. Разработка *riru* прекращена.* -::: -
-[**Последнюю версию LSPosed**](https://github.com/LSPosed/LSPosed/releases/tag/v1.9.2) нужно скачать на телефон в папку **sdcard/Download/** и установить с помощью стандартного меню. - -![Из хранилища](./assets/LSPosed/LSPosed_pic3.png) ![LSposed](./assets/LSPosed/LSPosed_pic4.png) -
-:::warning **По умолчанию модуль LSPosed Framework не имеет иконки и открывается нажатием на уведомление.** -![Шторка](./assets/LSPosed/LSPosed_pic5.png) -::: - -_________________ -## Установка модуля ZennoDroid. -Модуль ZennoDroid устанавливается автоматически при первой попытке изменить параметры устройства. -При первом запуске на экране устройства возникнет запрос прав суперпользователя. -Необходимо нажать на кнопку **«Разрешить»**. - -![Разрешить](./assets/LSPosed/LSPosed_pic6.png) -_________________ -Если Вы не успели этого сделать или случайно нажали на кнопку **«Запретить»**, необходимо открыть **Magisk**, перейти на вкладку **Superuser (Суперпользователь)** и включить *автоматическую выдачу прав суперпользователя для ZennoDroid*. - -![Вручную](./assets/LSPosed/LSPosed_pic7.png) -_________________ -После запуска модуля на экране устройства появится уведомление о том, что он выключен. - -![Модуль выключен](./assets/LSPosed/LSPosed_pic8.png) -_________________ -Чтобы это исправить необходимо запустить LSPosed через меню в шторке, переключиться на вкладку *Модули* и включить *модуль ZennoDroid*. - - ![Шторка открыть](./assets/LSPosed/LSPosed_pic9.png) ![Включить модуль](./assets/LSPosed/LSPosed_pic10.png) - -После этого можно будет выбрать программы, к которым будет применяться подмена параметров устройства. -_________________ -#### Важная информация. -- Рекомендуется добавлять в список подмены только те приложения, для которых требуется изменять данные. Также для корректной работы часто требуется добавить в список *Сервисы Google Play (com.google.android.gms)*. Не нужно добавлять в список системный фреймворк (system framework). -- Если после активации Вы удалили приложение, а затем установили его повторно, необходимо обязательно заново активировать приложение в списке подмены (снять и установить галочку). - -:::tip **В LSPosed есть визуальный баг.** -После удаления приложения оно автоматически удаляется из списка подменяемых. После повторной установки приложение автоматически не попадает в список подменяемых (галочка при этом стоит, но подмены не работают). -::: - -- По умолчанию в списке программ отображаются не все приложения. Если вы не видите нужного, например, Google Play Services или Chrome, то нужно зайти в меню *Скрывать* и убрать галочку с нужной группы. - -![Системные](./assets/LSPosed/LSPosed_pic11.png) - -- После выбора приложений для подмены нужно вернуться в модуль ZennoDroid и нажать на кнопку **«Перезапустить»**. После перезапуска на экране устройства будет выведено уведомление о том, что модуль готов к работе. Можно менять параметры устройства с помощью экшенов. - -![Модуль включен](./assets/LSPosed/LSPosed_pic12.png) -- Завершите работу нужных приложений после подмены параметров устройства. Предпочтительно делать это экшеном **«Закрыть приложение»**. Если в список подмены добавлены *Сервисы Google Play (com.google.android.gms)*, то их также необходимо закрыть. -:::tip **Можно закрывать приложения и до подмены.** -Но тогда некоторые системные приложения тут же перезапускаются, поэтому могут считать старые параметры. -::: -_________________ -## Полезные ссылки. -- Шаблон для подмены параметров устройства с помощью экшенов и API: [**fakeDeviceBrief.droid**](https://www.dropbox.com/scl/fi/xkyhg4e72l9su4xvqsdn9/fakeDeviceBrief.droid?rlkey=583ltzuficlyh0kxrma83qodb&dl=0) -- [**Последняя версия LSPosed Framework**](https://github.com/LSPosed/LSPosed/releases/tag/v1.9.2) -- Подключение реального устройства к ZennoDroid. -- Настройки устройства. - - \ No newline at end of file diff --git a/docs/Installation/Memu_Install.mdx b/docs/Installation/Memu_Install.mdx deleted file mode 100644 index b564a183..00000000 --- a/docs/Installation/Memu_Install.mdx +++ /dev/null @@ -1,62 +0,0 @@ ---- -sidebar_position: 3 -title: Установка Memu -description: Как установить эмулятор? ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ -## Что такое Memu? -Это эмулятор Android, который позволяет устанавливать, использовать и удалять любые приложения, как если бы вы работали с физическим устройством. Этот эмулятор обладает богатыми возможностями. Такими как: интеллектуальное управление, создание инстансов, отображение клавиш-макросов, поддержка контроллеров, автоматизация игр и приложений, запись экрана, имитация поведения GPS, а также использования командной строки. - -![Что такое Memu?](./assets/Memu_Install/MEmu_Install_pic1.png) - -С точки зрения Android, MEmu полностью эмулирует работу устройства, включая процессор, память, ориентацию экрана, Rom, SD-карту, WiFi, батарею, камеру, GPS, акселерометр и т. д. Все это моделируется программно. - -А для Windows это обычное приложение, вроде блокнота. Все данные от виртуального Android-устройства хранятся в нескольких файлах в определенной папке Windows. Например, содержимое SD-карты - это, скорее всего, файл размером 10 Гб. -_______________________________________________ -## Системные требования. -### Минимальные: -- **Процессор**: Двухядерный чип х86 или х64 от AMD или Intel. -- **Операционная система**: Windows 7 или выше. Не рекомендуем использовать на Server/Enterprise версиях. -- **Драйвера**: последние версии DirectX 11 или OpenGL 2.0. -- **Включенная аппаратная виртуализация (VT)**. -- **ОЗУ (RAM)**: 2гб для x86 и 4гб для x64. -- **Свободное место**: 5гб. -### Рекомендуемые: -- **Операционная система**: Windows 10 с включенной виртуализацией. -- **Процессор**: балл [**PassMark**](https://www.cpubenchmark.net/singleThread.html) в однопоточном режиме не менее 1500. -- **Видеокарта**: балл [**PassMark**](https://www.cpubenchmark.net/singleThread.html) не менее 750. -- **Драйвера**: последние версии DirectX 11 или OpenGL 4.5. -- **ОЗУ (RAM)**: не менее 8гб. -- **Накопитель**: SSD с не менее 10гб свободного пространства. -- **Интернет**: соединение с низкой задержкой. -#### Примечание: -- Чем выше версия эмулированного Android, тем больше нужно ОЗУ и места на диске. -- Не рекомендуем запускать Memu на еще одной виртуальной машине. -- Советуем обновить графический драйвер или сменить видеокарту, если есть проблемы с совместимостью. -_______________________________________________ -## Как установить Memu? -![Как установить Memu?](./assets/Memu_Install/MEmu_Install_pic2.png) -1. Скачиваем официальный [**Установщик Memu**](https://www.memuplay.com/download.php?file_name=Memu-Setup&from=official_release). -2. Запускаем его с правами Администратора. -3. Включаем Memu и ищем необходимое приложение в Google Play. -_______________________________________________ -## Безопасен ли Memu? -| Тезис | Факт | -| ----------- | ----------- | -| Безопасен ли Memu? | Да | -| Можно ли подцепить вирус через Memu? | Нет | -| Можно ли работать с Memu на различных компьютерах? | Да | -| Безопасно ли использовать свой Google аккаунт? | Да | -| Могут ли забанить за использование Memu? | Нет | -| Майнит ли Memu крипту через ваше устройство на фоне | Нет | -| Продает ли Memu ваши данные? | Нет | -_______________________________________________ -## Краткий обзор интерфейса. -![Краткий обзор интерфейса.](./assets/Memu_Install/MEmu_Install_pic3.png) -_______________________________________________ -## Полезные ссылки. -- [**Установка Root-прав**](./Root). -- [**Включение виртуализации**](./Virtualization). -- [**Выключение Hyper-V**](./Hyper-V). \ No newline at end of file diff --git a/docs/Installation/ProxyCheckerZD.mdx b/docs/Installation/ProxyCheckerZD.mdx deleted file mode 100644 index ce96b0af..00000000 --- a/docs/Installation/ProxyCheckerZD.mdx +++ /dev/null @@ -1,138 +0,0 @@ ---- -sidebar_position: 10 -title: ProxyChecker для ZD -description: Как работать с ProxyChecker. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ -## Что такое **ZennoProxyChecker**? -Это наш продукт, предназначенный для загрузки прокси, их хранения, автоматической перепроверки и предоставления их разными способами в соответствии с гибкими критериями. -Он существует как в виде отдельного приложения, так и **прямо внутри ZennoDroid**. -### Основные возможности: -
-**Добавление** - - -Добавление прокси возможно различными способами: как вручную, прямой вставкой адресов прокси, так и автоматически, когда программа сама ищет и собирает (парсит) адреса прокси с web-страниц или локальных файлов со списками прокси. -
- -
-**Проверка** - - -ProxyChecker может проверять прокси примерно по 20 параметрам, отфильтровывая опасные и выбирая самые лучшие и быстрые. Кроме того, в программе можно делать проверку на URL, отбирая прокси для работы с нужными web-ресурсами. -
- -
-**Выдача** - - -Программа позволяет настроить несколько каналов выдачи прокси, так, чтобы разным шаблонам предоставлялись прокси с разными параметрами. Списки прокси также можно сохранять в локальные файлы и выкладывать на сетевые ресурсы, выдавая свежие прокси с определенной периодичностью. -
-_______________________________________________ -## Быстрый старт. -Основная задача программы — проверить прокси и отобрать из них рабочие для использования в проектах. -Рассмотрим основные шаги, которые для этого требуются: -
-**1.** Открываем вкладку **Источники** → **Добавить прокси**. -Формат адреса прокси - `ip:port` для обычных прокси, и `login:password@ip:port` для прокси с авторизацией. - - -![Быстрый старт. Источники](./assets/ProxyChecker/ProxyCheck_pic01.png) -
- -
-**2.** Переходим на вкладку **Управление** → нажимаем на кнопки **Загружать прокси** и **Проверять прокси** → запускаем кнопкой **Старт**. - - -![Быстрый старт. Загружать и проверять](./assets/ProxyChecker/ProxyCheck_pic02.png) -
- -
-**3.** Получим проверенные прокси на вкладке **Прокси**. Там же можно задать *Правила* для отбора подходящих прокси. - - -![Быстрый старт. Список прокси](./assets/ProxyChecker/ProxyCheck_pic03.png) -
- -
-**4.** Полученные прокси можно **Cкопировать в буфер** или **Cохранить в файл**. - - -![Быстрый старт. Копировать, сохранить, очистить](./assets/ProxyChecker/ProxyCheck_pic04.png) -
-_______________________________________________ -## Настройки ProxyChecker. -![Настройки ProxyChecker](./assets/ProxyChecker/ProxyCheck_pic05.png) -### Адрес сервера проверки проксей. -![Адрес сервера проверки проксей](./assets/ProxyChecker/ProxyCheck_pic06.png) - -Здесь мы выбираем сервера из списка, которые будут проверять наши прокси. -#### Список. -URL адреса, которые программа использует для проверки прокси. По умолчанию здесь указаны пять адресов, но вы можете добавить свои. -#### Кнопка **Тест**. -После её нажатия программа последовательно будет проверять адреса из **Списка** на работоспособность. Тест завершится, когда будет найден первый рабочий сервер проверки. Либо когда кончатся адреса в списке. -#### Выбран. -Здесь будет указан адрес, с помощью которого будут проверяться все прокси на предмет того живы они или нет. Сюда попадает первый рабочий адрес из **Списка**. -_________________ -### Настройки поведения. -![Настройки поведения](./assets/ProxyChecker/ProxyCheck_pic07.png) -#### Считать неанонимные прокси мёртвыми. -Программа будет фильтровать неанонимные прокси и выдавать только анонимные. -#### Удалить прокси при закрытии программы. -Очистка списка прокси при закрытии программы. -#### Число потоков на процесс. -Задаёт число потоков, используемых для проверки. -:::warning **Для применения изменений нужно перезапустить программу.** -::: -_______________________________________________ -### Настройки парсинга прокси. -![Настройки парсинга прокси](./assets/ProxyChecker/ProxyCheck_pic08.png) -С помощью конструктора можно добавить новые структуры (регулярные выражения) для парсинга прокси или отредактировать существующие. Нажмите **Открыть конструктор**, чтобы начать работу. - -![Список структур](./assets/ProxyChecker/ProxyCheck_pic09.png) -#### Вкладка **Список структур**. -По умолчанию сюда уже внесены 2 регулярных выражения. Также можно **Добавить (1)** или **Удалить(2)** свои структуры. А с помощью кнопки **Справка по полям структур (3)** можно получить описание используемых полей. - -![Кнопки структур](./assets/ProxyChecker/ProxyCheck_pic10.png) - -На некоторых сайтах может встретиться своя разметка прокси, поэтому, при необходимости, можно создать свою структуру парсинга практически для любого вида и протестировать на конкретном источнике с помощью тестера. -#### Вкладка **Тестировать источник**. -![Тестировать источник](./assets/ProxyChecker/ProxyCheck_pic11.png) -- **Адрес источника**. Tут нужно указать адрес сайта, с которого будет происходить парсинг проксей. -- **Выбранная структура**. Необходимо выбрать добавленное ранее условие для парсинга из вкладки **Список структур**. -- Кнопка **Тест**. Запускает тестирование. -- Окно **Результат теста**. Здесь вы увидите полученные в соответствии с условиями парсинга прокси. -:::warning **Результаты парсинга не сохраняются.** -После закрытия окна **Конструктора** или нажатии кнопки **Отмена**. -::: -_______________________________________________ -### Настройки автопоиска. -![Настройки автопоиска](./assets/ProxyChecker/ProxyCheck_pic12.png) -#### Подробный лог работы автопоиска. -Поставив здесь галочку, вы будете видеть подробный отчет о работе ZennoProxyChecker в режиме автопоиска. -#### Останавливать, если в очереди на проверку более *XXX* прокси. -При превышении данного количества прокси в очереди, автопоиск будет остановлен. -#### Останавливать, если в базе более *XXX* прокси. -При превышении данного количества прокси в базе, автопоиск будет остановлен. -#### Останавливать, если в базе более *XXX* источников -При превышении данного количества источников, автопоиск будет остановлен. -#### Настройки источников по-умолчанию. -Здесь указываются настройки, которые будут применены ко всем вновь добавленным источникам. -_________________ -### Настройки проверки прокси. -![Настройки проверки прокси](./assets/ProxyChecker/ProxyCheck_pic13.png) -#### Использовать для проверки прокси .NET процесс. -Если параметр установлен, то прокси будут проверяться с помощью .NET реализации CheckingProcessor (***требуется перезапуск***). -_________________ -## Как получить актуальную базу GeoIP? -### 1. [Зарегистрироваться на сайте](https://www.maxmind.com/en/account/login) -### 2. Выбрать раздел «Downloads». -![Выбрать раздел «Downloads».](./assets/ProxyChecker/ProxyCheck_pic31.png) -### 3. Скачать базу «GeoLite2 City». -![Скачать базу «GeoLite2 City»](./assets/ProxyChecker/ProxyCheck_pic32.png) -### 4. Разархивировать и положить файл `GeoLite2-City.mmdb` в папку: -`C:\Users\{имя_пользователя}\AppData\Roaming\ZennoLab\ZennoDroid\2\Data\` -### 5. Задать файлу `GeoLite2-City.mmdb` права только на чтение. -![права только на чтение](./assets/ProxyChecker/ProxyCheck_pic33.png) \ No newline at end of file diff --git a/docs/Installation/ProxyCheckerZD_Interface.mdx b/docs/Installation/ProxyCheckerZD_Interface.mdx deleted file mode 100644 index acdd8e2e..00000000 --- a/docs/Installation/ProxyCheckerZD_Interface.mdx +++ /dev/null @@ -1,102 +0,0 @@ ---- -sidebar_position: 11 -title: Обзор интерфейса ProxyChecker для ZD -description: Познакомимся с интерфейсом ProxyChecker ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ -![Обзор интерфейса ProxyChecker для ZD](./assets/ProxyChecker/ProxyCheck_pic14.png) -## Панель Управления. -Это окно открыто по умолчанию. Через него осуществляется контроль сбора прокси, а также настройка каждого этапа. - -![Панель Управления](./assets/ProxyChecker/ProxyCheck_pic15.png) -- **Старт\Стоп**. C помощью данных кнопок запускается\останавливается сбор и проверка прокси. -- **Фильтры**. Набор правил, которые применяются к прокси после загрузки их с источника, но до занесения в базу программы. -- **Правила**. Набор условий, по которым можно взять прокси из списка *живых*. -- **Сетевой монитор**. С помощью этой встроенной утилиты можно протестировать интернет подключение на максимальное количество одновременных потоков -- **Справка**. Открывает в браузере Справку по продукту. -_________________ -### Источники прокси. -![Источники прокси.](./assets/ProxyChecker/ProxyCheck_pic16.png) - -Здесь настраивается загрузка прокси из источников. На значок планеты можно нажать, он перенаправит вас во вкладку **Источники**. -_________________ -#### Количество источников. -![Количество источников](./assets/ProxyChecker/ProxyCheck_pic17.png) - -Верхнее число отображает количество живых (рабочих) источников, а нижнее общее их количество. -#### Кнопка Загружать прокси. -При нажатии будет запущен сбор прокси из источников. - -![Кнопка Загружать прокси.](./assets/ProxyChecker/ProxyCheck_pic18.png) - -С помощью кнопки с шестеренкой вы можете регулировать сколько потоков будет задействовано в загрузке прокси из источников. -#### Включить автопоиск. -![Включить автопоиск.](./assets/ProxyChecker/ProxyCheck_pic19.png) -:::warning **Кнопка активна только тогда, когда включена Загрузка прокси.** -::: -После нажатия данной кнопки ProxyChecker будет самостоятельно искать в интернете источники с прокси. При нажатии на шестеренку можно гибко настроить параметры автопоиска. -_________________ -### База прокси. -![База прокси.](./assets/ProxyChecker/ProxyCheck_pic20.png) - -Собственно, здесь и запускается процесс проверки прокси. На значок круглых ячеек можно нажать, он перенаправит вас во вкладку **Источники**. -#### Кнопка Проверять прокси. -![Кнопка Проверять прокси.](./assets/ProxyChecker/ProxyCheck_pic21.png) - -Она запускает процесс проверки. Рядом также расположена уже привычная шестеренка, которая отвечает за настройки проверки. Тут можно задать число потоков для проверки и ограничение на количество живых прокси, по достижении которого проверка будет остановлена. -_________________ -### Живые прокси. -![Живые прокси.](./assets/ProxyChecker/ProxyCheck_pic22.png) - -Тут можно увидеть количество живых прокси, а также настроить время, в течение которого они будут считаться таковыми. На значок монитора можно нажать, он перенаправит вас во вкладку **Прокси**. -#### Кнопка Очищать список. -![Кнопка Очищать список](./assets/ProxyChecker/ProxyCheck_pic23.png) - -При нажатии список живых прокси будет очищаться согласно настройке времени жизни, которую можно задать, кликнув на шестеренку. -_________________ -## Панель источники. -![Панель источники.](./assets/ProxyChecker/ProxyCheck_pic24.png) -### Помощник. -![Помощник.](./assets/ProxyChecker/ProxyCheck_pic25.png) -Он предназначен для упрощения добавления **Источников парсинга** в программу. -#### Что нужно добавить? -![Что нужно добавить?](./assets/ProxyChecker/ProxyCheck_pic26.png) - -Доступно четыре сценария: -- **Вставить прокси в программу напрямую.** При выборе этого сценария, откроется пустое окно для внесения прокси. -- **Источник прокси.** Здесь можно указать **Путь к файлу** или **Адрес URL (веб-страницу)**, откуда будут собираться прокси. -- **Список источников прокси.** Буквально то же самое, что и первый вариант, но с возможностью указать сразу несколько источников. -- **Путь к списку источников прокси.** Здесь как и во втором варианте, но указываются сразу несколько путей. -_________________ -### Главное окно Источников. -На данной вкладке отображаются все добавленные в программу источники прокси. Также здесь находятся элементы управления, которые позволяют менять настройки источников, удалять их, добавлять, увидеть количество прокси и др. - -![Главное окно Источников.](./assets/ProxyChecker/ProxyCheck_pic27.png) -#### Доступные кнопки: -- **Добавить прокси.** Позволяет добавить прокси списком. -- **Добавить источник.** Нужна для добавления источника сбора прокси. -- **Настройки источника.** Данная кнопка изменяет настройки уже добавленных источников. -- **Удалить**. С помощью нее можно удалить ненужные источники. -:::warning **Удаление источника также повлечет удаление всех проксей этого источника.** -::: -- **Сохранить**. Эта кнопка сохраняет адреса источников в файл. -- **Загрузить прокси**. Загружает прокси из источника. -- **Проверить прокси**. Запускает процесс проверки прокси на живых. -- **Допроверить живые**. Позволяет повторно проверить уже найденные живые прокси источников. -- **Развернуть**. Разворачивает группу со списком источников, если она была до этого в свёрнутом виде. -- **Свернуть**. Сворачивает список. -- **Панель авто-режима**. С помощью данной кнопки можно активировать панель для быстрого управления загрузкой и проверкой прокси. Появляется данная панель над списком источников: - -![Панель авто-режима](./assets/ProxyChecker/ProxyCheck_pic28.png) - -В левой части панели отображено количество источников (живые источники/общее количество). А справа расположены кнопки для загрузки, поиска и проверки прокси. -- **Время загрузки**. Добавляет три новых столбца в таблицу. - -![Время загрузки](./assets/ProxyChecker/ProxyCheck_pic29.png) - -- **Удалить все прокси**. Удаляет все прокси из программы. -- **Чёрный список**. Если прокси не подходят для выполнения проекта или сам источник не вызывает доверия, то его можно добавить в черный список. - -![Чёрный список](./assets/ProxyChecker/ProxyCheck_pic30.png) \ No newline at end of file diff --git a/docs/Installation/Root.mdx b/docs/Installation/Root.mdx deleted file mode 100644 index 7028f5d1..00000000 --- a/docs/Installation/Root.mdx +++ /dev/null @@ -1,127 +0,0 @@ ---- -sidebar_position: 7 -title: Установка Root-прав -description: Как получить расширенный доступ к телефону ---- - -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ -## Что такое Root-права и зачем они нужны? -![Что такое Root-права](./assets/Root/Root_pic5.jpg) - -Простыми словами — это права суперпользователя, с которыми приложения могут использовать команду `su` и обходить стандартные ограничения Android, получать доступ к системным файлам и папкам, внедряться в память других процессов и так далее. - -Зачастую, в схеме root имеются 2 части — **сервер**, который выполняет основную программную работу, и **клиент**, который необходим для взаимодействия пользователя с первым, позволяя гибко настраивать систему выдачи этих самых прав. - -Но, как говорится, с великой силой приходит великая ответственность. При неумелом использовании Root-права могут нанести вред системе и вовсе превратить смартфон в «кирпич». - -#### Когда не нужно получать Root? -- Ваш телефон на гарантии. -- Вы не можете сформулировать, зачем они вам нужны. -- Вы работаете на телефоне с информацией содержащую банковскую/государственную/иную тайну. -- У вас нет возможности сделать полный backup всех разделов системы, равно как и нет возможности восстановить устройство в случае утраты работоспособности из-за root-прав. -_________________ -## ADB и как с ним работать? -Это инструмент, который позволяет вам управлять устройством Android с компьютера, чтобы вы могли устанавливать и удалять приложения, передавать файлы, смотреть логи. - -1. Прежде всего, нам нужно установить Android SDK на свой компьютер [**с официального сайт**](https://developer.android.com/tools/releases/platform-tools). - -![Android SDK](./assets/Root/Root_pic1.png) - -2. Затем включаем на телефоне режим разработчика: **"Настройки → Система → О телефоне → нажимаем на Номер сборки несколько раз подряд**. Теперь в подразделе «**Система**» появится новый пункт «**Для разработчиков**». Находим «**Отладка по USB** (USB Debugging)» и включаем ее. - -![Номер сборки](./assets/Root/Root_pic3.jpg) - -3. Теперь открываем папку, в которую мы установили ADB (обычно это будет папка ***platform-tools*** в каталоге Android SDK). Зажимаем ***Shift*** и кликаем правой кнопкой мыши по свободному месту окна, выбираем параметр «**Открыть окно PowerShell**». Подключите смартфон к компьютеру. Измените режим USB на режим «**передачи файлов (MTP)**». В окне командной строки введите команду `adb devices`. - -![ADB](./assets/Root/Root_pic4.jpg) - -На экране телефона вы увидите всплывающее окошко — нажимайте ***разрешить доступ для отладки по USB***. Наконец, повторно введите команду `adb devices`. Если все прошло успешно, вы должны увидеть серийный номер вашего устройства в командной строке. Теперь вы можете запускать любую команду ADB на своем устройстве. -#### Полезные команды. -- `adb install <путь к файлу APK>`. Эта команда устанавливает приложение APK на ваше устройство. -- `adb uninstall <пакет приложения>`. Удаляет приложение с вашего устройства. -- `adb shell`. Позволяет войти в оболочку (командную строку) вашего устройства Android прямо с компьютера. -- `adb reboot`. Перезагружает устройство. -- `adb pull <удаленный путь> <локальный путь>`. Копирует файлы с устройства на компьютер. -- `adb push <локальный путь> <удаленный путь>`. Копирует файлы с компьютера на устройство. -- `adb reboot recovery`. Загружает устройство в режим Recovery. -_________________ -## Разблокировка загрузчика. -Что за загрузчик и зачем его разблокировать? **Загрузчик** или **Bootloader** – это относительно небольшой кусочек программного кода, который занимается запуском установленной системы. Сам по себе он — незаменимая часть устройства, но в его функции также входит реализация технологии **Verified Boot**. Эта технология призвана ограничить установку ОС до авторизованных производителем (путем проверки подписи файла). Наша цель — отключить механизм **Verified Boot**. - -Увы, универсальной инструкции для всех телефонов не существует. Более того – какие-то устройства вообще не имеют способа разблокировки загрузчика, а некоторые наоборот не блокируются производителем изначально. Проверить факт блокировки загрузчика можно с помощью ***adb*** в режиме **fastboot** - `fastboot oem device-info` (что это и как пользоваться этим инструментом разберем ниже). При ответе `true` – загрузчик заблокирован, иначе – нет. - -![Разблокировка загрузчика.](./assets/Root/Root_pic6.jpg) - -Если по результатам проверки вы обнаружили, что загрузчик заблокирован, вам придется искать инструкцию в интернете конкретно под ваш телефон. Мы рекомендуем воспользоваться сайтом производителя, форумом [**4PDA**](https://4pda.to/forum) или поисковиком в браузере (Google, DuckDuckGo и прочие). -_________________ -### Установка стороннего Recovery. -Раздел **Recovery** – аналог **BIOS** на компьютере, также именуется как «*Режим восстановления*». Этакая *подсистема*, которая призвана помочь в восстановлении работоспособности устройства. Заменить установленный производителем **recovery** необходимо потому, что он не даст вам ничего установить. -#### Какие бывают Recovery? -Существует 2 основных проекта стороннего **Recovery** – [***TWRP***](https://twrp.me/) и [***CWM***](https://www.clockworkmod.com/), а также все, что на них основано. Если на официальных сайтах этих проектов вы не нашли своего устройства, с высокой вероятностью вы найдете его на **4PDA** в теме своего аппарата. -:::tip **Мы рекомендуем использовать именно TWRP-recovery.** -Он сильно превосходит в функциональности и удобстве **CWM**. -::: - -![TWRP-recovery](./assets/Root/Root_pic7.png) -_________________ -После скачивания Recovery вы должны получить файл образа раздела android с расширением *.img*. Чтобы прошить новый раздел Recovery, необходимо перевести телефон в особый режим загрузчика – ***fastboot***. На большинстве устройств это делается с помощью зажатия **кнопки Питания + Громкость вниз** при включении телефона. Успешным входом в этот режим будет считаться черный экран с белой строкой ***fastboot mode***. После этого необходимо подключить устройство к компьютеру при помощи USB-кабеля. - -![fastboot mode](./assets/Root/Root_pic8.jpg) - -Для прошивки раздела Recovery нам понадобится единственная ADB-команда: -`fastboot flash partition PathToFile`. -- `fastboot` — путь к файлу fastboot.exe, поставляется вместе с ADB; -- `partition` — доступный для прошивки раздел Android. Мы шьем recovery; -- `PathToFile`— путь к .img-образу recovery, который вы скачали; -В итоге команда может выглядеть примерно так: `C:\adb\fastboot flash recovery C:\recovery.img` -:::tip **Интересно.** -*Некоторые recovery поставляются с автоматическими установщиками и ADB — вам нужно лишь запустить bat-файл.* -::: - -После того, как в консоли появилось сообщение об успешном окончании процесса, можно пробовать запустить только что установленный Recovery. Через ADB-командну `adb reboot recovery` или нажатием **кнопки Питания + Громкость вверх** при включении телефона. -_________________ -## Получение Root-прав. -### Установка Magisk. -![Magisk](./assets/Root/Root_pic9.png) - -Первым делом нам необходимо, как обычно, сделать полный бекап разделов системы на внешний носитель -(например, sd-карту), чтобы при возникновении проблем, вернуть все как было. - -Далее скачиваем [**Magisk**](https://github.com/topjohnwu/Magisk/releases). Это OpenSource-проект, который дает возможность внесистемного внесения изменений с помощью подключаемых модулей. Это означает, что с выключением Magisk-модуля, отменяются все изменения в системе, которые вносил этот модуль. В корне файловой системы создается *зеркало* раздела data (так и называется — ***data_mirror***), и необходимые изменения вносятся в систему посредством создания символических ссылок на этот раздел. - -Если ваш Recovery позволяет устанавливать **APK** как **zip-архивы**, то скачанный файл в исходном виде копируем на внешнюю память устройства. Так как внутренняя память зачастую шифруется, и вы в итоге не сможете достать этот файл. Если же ваш Recovery не умеет открывать APK-файлы, то Magisk.apk необходимо переименовать в **Magisk.zip** и таким же образом скопировать на устройство. - -![boot.img](./assets/Root/Root_pic10.png) - -Теперь необходимо загрузиться в Recovery и сделать отдельно резервную копию раздела ***boot.img***. Если вдруг какой-то модуль выведет систему из строя, и у вас не будет возможности загрузиться в систему, то станет сложно отключить этот самый модуль или даже весь Magisk. Но имея на руках **boot** исходной системы (без Magisk), мы сможем восстановить конкретно этот раздел, а также работоспособность всей системы. - -После создания бекапов прошиваем установочный файл Magisk, как любой другой архив через Recovery (просто открываем его). После прошивки и загрузки системы в меню приложений появится приложение **Magisk**, которое при первом запуске обновится и сразу будет работать. -_________________ -### Настройка Magisk. -
-С устройства переходим в настройки Magisk и активируем два пункта: **Zygisk** и **DenyList**. - - -![Настройки Magisk](./assets/Root/Root_pic11.png) -
- -Для корректной работы этих функций нужно также установить два модуля из Github: [**Universal SafetyNet**](https://github.com/kdrag0n/safetynet-fix) и [**Shamiko**](https://github.com/LSPosed/LSPosed.github.io/releases). Теперь переходим в **Настройки DenyList** и ставим галочки рядом с приложениями, от которых мы хотим скрыть Root (например, банковские приложения). -:::info **Если для каких-то приложений это не сработало.** -Тогда открываем список компонентов приложения и ставим галочки напротив каждого из них. -::: - -Также в настройках Magisk нажимаем на **Скрыть приложение Magisk**, поскольку его наличие можно вычислить элементарно по списку установленных приложений (так, например, делает MirPay). Вводим любое подменное название и нажимаем *Ок*. После проделанных действий перезагружаем телефон. Загрузка может быть слегка дольше, чем обычно. - -![Скрыть приложение Magisk](./assets/Root/Root_pic12.png) - -:::warning **Скрытие root для приложения необходимо делать до первого запуска целевого приложения!** -::: -_________________ -## Полезные модули для Magisk. -- ***Busybox***. Дает доступ приложениям к встроенному busybox от Magisk. Это компактная исполняемая программа, которая содержит набор утилит командной строки (например, ls, cp, mv, rm, и т. д.). Она объединяет множество стандартных утилит в единый исполняемый файл, что делает ее полезной для систем с ограниченными ресурсами. -- ***No Storage Restricts***. Убирает ограничения в выборе папок в файловом менеджере. -- ***LuckyPatcher***. Нужен для переноса приложений в системный раздел. -- ***Move Certificates***. Перенос пользовательских сертификатов в систему. -- ***NFC Screen Off***. Включает работу NFC при выключенном экране. \ No newline at end of file diff --git a/docs/Installation/SysReq.mdx b/docs/Installation/SysReq.mdx deleted file mode 100644 index 37e520b8..00000000 --- a/docs/Installation/SysReq.mdx +++ /dev/null @@ -1,49 +0,0 @@ ---- -sidebar_position: 1 -title: Системные требования -description: Требования к системе для работы с ZD ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ -## Для версий Lite и Professional. -### Как минимум вам понадобятся: -- **Процессор:** Intel или AMD от 2 ядер, частотой от 2 ГГц каждое. -- **RAM:** не менее 4 Гб. -- **Место на накопителе:** не менее 6 Гб. -- **Видеопамять:** не менее 1024 Мб. -- **Наличие Direct X 11+ или OpenGL 2.0.** -- **Операционная система:** Windows 10 x64 и более поздние версии (Server Core не поддерживается). -- **Наличие .Net Framework 2.0, 3.5 и 4.6.2+.** -- **Также Visual C++ redistributable 2008, 2010, 2013, 2015, 2017, 2019 x86 или x64.** -- **Права администратора.** Они понадобятся для установки и запуска программы. -- **Аппаратная виртуализация.** -- **Интернет.** Обязателен. Без него не получится работать. -:::warning **Hyper-V должен быть отключён!** -::: -_______________________________________________ -## Для версии Enterprise. -### Как минимум вам понадобятся: -- **Процессор:** Intel или AMD от 2 ядер, частотой от 2 ГГц каждое. -- **RAM:** не менее 4 Гб. -- **Место на накопителе:** не менее 6 Гб. -- **Видеопамять:** дискретная видеокарта. -- **Операционная система:** Windows 10 x64 и более поздние версии (Server Core не поддерживается). -- **Наличие .Net Framework 4.6.2+.** -- **Также Visual C++ redistributable 2013, 2015, 2017, 2019, 2022.** -- **Права администратора.** Они понадобятся для установки и запуска программы. -- **Интернет.** Обязателен. Без него не получится работать. -_______________________________________________ -## Как узнать о системе с помощью Memu? -Запустите эмулятор, зайдите в меню и выберите пункт **Информация о системе**. - -![Меню Мему](./assets/SysReq/SysReq_pic1.png) - -Выглядеть она будет вот так: - -![Меню Мему](./assets/SysReq/SysReq_pic2.png) -_______________________________________________ -## Полезные ссылки. -- [**Установка Memu**](./Memu_Install). -- [**Установка ZennoDroid**](./ZD_Install). -- [**Демо версия ZennoDroid**](./ZD_Demo). diff --git a/docs/Installation/Useful_Tips.mdx b/docs/Installation/Useful_Tips.mdx deleted file mode 100644 index e6fd2aec..00000000 --- a/docs/Installation/Useful_Tips.mdx +++ /dev/null @@ -1,44 +0,0 @@ ---- -sidebar_position: 6 -title: Полезные советы -description: Полезная информация для работы с ZD ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ -## Информация о прошивках. -- Google предоставляет [**Чистую прошивку Android (GSIs)**](https://developer.android.com/topic/generic-system-image) для разработчиков. Есть вариант как с Root, так и обычной пользовательской. Смартфон должен быть совместим с [**Treble**](https://github.com/phhusson/treble_experimentations/wiki). -- **Индийская прошивка Samsung** обновляется чаще, поэтому обычно она свежее других и имеет дополнительные функции (например, запись звонков). Происходит это потому, что Индия является регионом для тестирования. -- Некоторые прошивки (в том числе GSI) и загрузчики **могут содержать скрытые настройки**. Одна из таких `fastboot oem off-mode-charge 0`, которая включает смартфон при подключении кабеля питания вместо отображения анимации зарядки. -- Также иногда в прошивках встречается свойство (prop) для бэкдора: `debug.rootbackdoor=1`, с уже **вшитыми сторонними ключами доступа**. Подробнее об этом можно прочесть на [**4PDA**](https://4pda.to/forum/index.php?showtopic=908196&view=findpost&p=95402137). -_________________ -## Информация об устройствах. -- Иногда для экономии денег в работе **можно использовать демонстрационные версии смартфонов**. В них обычно отсутствует модуль связи, а сами аппараты продают использованными (с витрин). -- Устройства с процессорами на основе MediaTek до сих пор **поддерживают заливку полного образа флэш памяти**. Эта платформа считается дешёвой, вероятно поэтому там настолько прямой путь. -- Почти все смартфоны Huawei используют процессоры собственного проивзодства — **Kirin**. -_________________ -## Советы по установке и настройкам. -- Enterprise версия работает через ADB, поэтому **можно использовать любые эмуляторы**. Однако их настройку вам придётся реализовывать самим. -### Удаление пакетов. -**Android можно облегчить**, удалив некоторые пакеты (в том числе системные). Для этого используется команда `pm uninstall --user 0 путь.к.пакету`. Это можно сделать не только для физических устройств, но и для виртуальных машин (как минимум рекламные пакеты). - -Если понадобится восстановить системные пакеты, то можно выполнить полный сброс, либо установить отдельные пакеты командой: -`cmd package install-existing путь.к.пакету` - -Список всех пакетов можно получить через *pm-команду*: -`pm list packages + дополнительные аргументы`. - -#### Пакеты, которые мы рекомендуем удалить: -1. [**Для Android 12**](https://gist.github.com/Zymlex/f0b58104dd2f9504a14ffd9bdc3799ac) -2. [**Для Android 11**](https://gist.github.com/Zymlex/51a8ed0d5864122614e6db021be8c9e9) - -:::warning **Мы советуем внимательно изучить информацию о конкретном устройстве.** -Удаление определенных пакетов на некоторых смартфонах может привести к серьезной потери функционала или даже к Bootloop (бесконечная перезагрузка). -::: -________________ -### Разметка разделов. -Перед редактированием разметки разделов на физическом устройстве сначала сделайте полный дамп флэш памяти со всеми разделами. А затем протестируйте тот способ, которым вы будете заливать этот дамп обратно. Если устройство в этом случае работает нормально, то можете приступать к редактированию. -#### Какие есть способы? -- **Recovery**. Предоставляет довольно широкий доступ и функционал. Но без собственного раздела, а также без bootloader, она не сможет запуститься. -- [**Fastboot**](https://android.googlesource.com/platform/system/core/+/master/fastboot/README.md). Поддерживает создание логических разделов, но не все устройства имеют его. Так, например, в Samsung он используется в качестве заглушки, а по факту используется собственный кастомный протокол. -- **Bootloader**. Его возможности обычно минимальны. Это обнуление уже существующих разделов, а также заливка образов поверх уже имеющихся разделов. diff --git a/docs/Installation/Virtualization.mdx b/docs/Installation/Virtualization.mdx deleted file mode 100644 index ee31957f..00000000 --- a/docs/Installation/Virtualization.mdx +++ /dev/null @@ -1,61 +0,0 @@ ---- -sidebar_position: 4 -title: Включение виртуализации -description: Как включить аппаратную виртуализацию (VT) ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ -## Что такое виртуализация и зачем её включать? - -Виртуализация позволяет запускать на вашем устройстве различные операционные системы, например Android. В том числе ZennoDroid использует эту виртуальную среду для более эффективной работы с эмулятором. Мы настоятельно рекомендуем включать виртуализацию, так как вы получите более высокую производительность при работе с эмулированными устройствами. -
-***Так можно узнать, включена ли уже виртуализация.*** - - ![Проверка](./assets/Virtualization/Virtualization_pic3.jpg) -
- _______________________________________________ -## Проверим, доступна ли виртуализация. -### Компьютеры с процессорами (CPU) от Intel. -Скачайте и установите [**Intel Processor Identification Utility**](https://www.intel.com/content/www/us/en/download/12136/28539/intel-processor-identification-utility-windows-version.html?v=t), откройте вкладку **CPU Technologies**. Галочка рядом с -*Intel® Virtualization Technology* указывает на доступность включения виртуализации. - -![Intel® Virtualization](./assets/Virtualization/Virtualization_pic1.png) -### Компьютеры с CPU от AMD. -Скачайте [**AMD-V Detection Utility**](https://download.amd.com/techdownloads/AMD-VwithRVI_Hyper-V_CompatibilityUtility.zip) и распакуйте файлы. Запустите **.exe** как администратор. Программа сообщит, доступна ли вашему устройству функция виртуализации. - -![AMD-V Detection](./assets/Virtualization/Virtualization_pic2.png) -_______________________________________________ -## Как войти BIOS? -![Как войти BIOS](./assets/Virtualization/Virtualization_pic4.gif) -1. Зайдите в меню **Пуск** и перейдите в **Параметры/Настройки Windows**. -2. Нажмите на **Центр обновления Windows** и выберите **Восстановление**, затем **Перезагрузить сейчас**. -3. Выберите **Troubleshoot** и **Расширенные опции**. -4. Выберите **UEFI Firmware settings** и нажмите **Перезагрузить сейчас**. - -Также вы можете попасть в BIOS, нажав на кнопку доступа во время включения компьютера: - -![Кнопки доступа](./assets/Virtualization/Virtualization_pic5.png) - -Мы собрали ряд самых популярных производителей для вашего удобства в этой таблице. Однако если вы не видите вашего варианта в списке, то мы рекомендуем уточнить информацию в инструкции к оборудованию. -_________________ -## Включаем виртуализацию. -:::tip *Содержание и внешний вид BIOS отличаются у разных производителей, но общая логика сохраняется.* -::: -> -### Intel CPU -![Intel CPU](./assets/Virtualization/Virtualization_pic6.gif) -1. Нажмите **F7** или на вкладку **Advanced Mode (расширенные настройки)**. -2. Там выберите **CPU Configuration**. -3. Перейдите к строке **Intel Virtualization Technology** и нажмите на параметр **Disabled** чтобы сменить его на **Enabled**. -4. Нажмите на **Exit** и выберите **Save changes & reset**, чтобы включить виртуализацию. -:::warning **Обязательно сохраните изменение перед выходом, чтобы оно применилось.** -::: -### AMD CPU -![AMD CPU](./assets/Virtualization/Virtualization_pic7.gif) -1. Нажмите **F7** или на вкладку **Advanced Mode (расширенные настройки)**. -2. Там выберите **CPU Configuration**. -3. Перейдите к строке **SVM Mode** и выберите **Enabled** из выпадающего меню. -4. В конце нажмите на **Exit** и **OK**, чтобы применить настройки. -:::warning **Обязательно сохраните изменение перед выходом, чтобы оно применилось.** -::: \ No newline at end of file diff --git a/docs/Installation/ZD_Demo.mdx b/docs/Installation/ZD_Demo.mdx deleted file mode 100644 index 99b3b127..00000000 --- a/docs/Installation/ZD_Demo.mdx +++ /dev/null @@ -1,47 +0,0 @@ ---- -sidebar_position: 13 -title: Демо версия ZennoDroid -description: Что доступно и как получить демо? ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ -## Как получить Демо? -**1.** Откройте сайт [**ZennoDroid**](https://zennolab.com/ru/products/zennodroid/) и нажмите **Скачать Демо**. - -![Скачать Демо](./assets/ZD_Demo/ZD_Demo_pic1.png) -_______________________________________________ -**2.** Вас перебросит на отдельную страницу с демо, там потребуется еще раз нажать на кнопку **Скачать демоверсию**. - -![Скачать Демо](./assets/ZD_Demo/ZD_Demo_pic2.png) -_______________________________________________ -**3.** Начнется загрузка файла-установщика, по завершению запустите его. -Читаем условия [***Лицензионного соглашения***](https://zennolab.com/ru/terms-of-service/) и ставим галочку, если согласны с ними. - -![Скачать Демо](./assets/ZD_Demo/ZD_Demo_pic3.png) -_______________________________________________ -**4.** Выбираем путь для установки и вводим данные от [**аккаунта ZennoLab**](https://account.zennolab.com/personal-area-main). - -![Скачать Демо](./assets/ZD_Demo/ZD_Demo_pic4.png) -_______________________________________________ -**5.** Установка завершена. -_______________________________________________ -## Ограничения Демоверсии. -- Программа работает только 14 дней. -- Для выполнения доступен лишь 1 поток. -- Использование прокси заблокировано. -- Капчи вводятся вручную, использовать сервисы для автоматическое распознавания нельзя (например, [CapMonster.Cloud](https://capmonster.cloud/ru/)). -- Если вы не авторизовались в аккаунт во время установки, то проекты не получится передать другим пользователям. После окончания Демоверсии все проекты станут недоступны. -- Нельзя использовать .bat файлы для запуска проектов. -_______________________________________________ -### В чем отличие от Lite-версии? -Lite — это полноценная программа и демоверсия не сможет ее заменить. Например, при выполнении проекта (отладки) запускается счетчик в 10 минут, который отсчитывает время работы автоматизации. При истечении этого времени пользователю нужно будет вручную ввести капчу, чтобы продолжить работу. Но тестировать функции и писать шаблоны можно без подобных ограничений. -_______________________________________________ -### Как продлить демо? -По истечению пробного периода работа программы будет приостановлена. Вы не сможете запускать или создавать проекты. Если срок демо лицензии истек, вы сможете попробовать снова через 16 дней. -_______________________________________________ -### Могу ли я продолжить работать с демо-проектами после покупки лицензии? -Да, но только если вы авторизовались во время установки демо. -:::info **Напишите нам.** -Если проекты, сделанные в демоверсии, перестали открываться в новой демке или в лицензионной версии, можете прислать их нам в **support@zennolab.com**. Мы поможем восстановить доступ. -::: diff --git a/docs/Installation/ZD_Install.mdx b/docs/Installation/ZD_Install.mdx deleted file mode 100644 index aeba70c3..00000000 --- a/docs/Installation/ZD_Install.mdx +++ /dev/null @@ -1,59 +0,0 @@ ---- -sidebar_position: 2 -title: Установка ZennoDroid -description: Как установить ZennoDroid? ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ -## Разберем по шагам: -**1.** Скачиваем установочный файл из своего [**Личного кабинета**](https://account.zennolab.com/personal-area-main/my-products) и запускаем его. - -![Скачиваем установочный файл](./assets/ZD_Install/ZD_Install_pic1.png) -_______________________________________________ -**2.** Внимательно читаем условия [***Лицензионного соглашения***](https://zennolab.com/ru/terms-of-service/) и ставим галочку, если согласны с ними. Нажимаем на кнопку **Установить**. - -![Условия и установка](./assets/ZD_Install/ZD_Install_pic2.png) -_______________________________________________ -**3.** Если на компьютере есть старые версии ZD, то установщик предложит обновить одну из них. Также вы можете произвести отдельную установку, так как поддерживается наличие сразу нескольких версий программы. - -![Условия и установка](./assets/ZD_Install/ZD_Install_pic3.png) -_______________________________________________ -**4.** Выберите путь для установки или оставьте по умолчанию, а затем нажмите **Продолжить**. -:::info **Оставьте путь по умолчанию, чтобы избежать возможных ошибок.** -::: -![Путь установки](./assets/ZD_Install/ZD_Install_pic4.png) -_______________________________________________ -**5.** Если в одной из предыдущих версий вы использовали внешние `dll` библиотеки и копировали их в папку **ExternalAssemblies**, то на этом шаге будет предложено автоматически скопировать их в новую установку. - -![Внешние сборки](./assets/ZD_Install/ZD_Install_pic5.png) -_______________________________________________ -**6.** Далее введите свой *email* и *пароль* от [**Личного кабинета**](https://auth.zennolab.com/auth/realms/zennolab/account/password) и нажмите **Продолжить**. - -![Лог ин](./assets/ZD_Install/ZD_Install_pic6.png) -:::tip **Забыли пароль от учётной записи?** -Нажмите **Напомнить пароль**. Будет открыт браузер по умолчанию на [странице восстановления пароля](https://auth.zennolab.com/auth/realms/zennolab/login-actions/reset-credentials). -::: -_______________________________________________ -**7.** Когда куплено несколько копий программы, на этом этапе вы сможете выбрать необходимую лицензию. - -![Выбор лицензии](./assets/ZD_Install/ZD_Install_pic8.png) -:::info **Количество установленных экземпляров.** -Указано в скобках для конкретной лицензии. **2/3** означает, что программа уже была установлена на **два компьютера**, а максимальное количество установок - 3 (для **Lite** версии 1). -::: -_______________________________________________ -**8.** По завершению установки вы сразу можете запустить программу. - -![Завершение](./assets/ZD_Install/ZD_Install_pic7.png) -_______________________________________________ -## Где хранятся настройки программы и проектов? -Большая часть настроек хранится в папке **AppData**. Чтобы быстро попасть в эту директорию вызовите утилиту **Выполнить** нажатием `Win+R`, а затем введите `%appdata%\ZennoLab` и кликните на **ОК**. - -![Настройки](./assets/ZD_Install/ZD_Install_pic9.png) -_______________________________________________ -## Полезные ссылки. -- [**Системные требования**](./SysReq). -- [**Демо версия ZennoDroid**](./ZD_Demo). -- [**Установка Memu**](./Memu_Install). - - diff --git a/docs/Installation/ZD_Unistall.mdx b/docs/Installation/ZD_Unistall.mdx deleted file mode 100644 index 0da8f2c5..00000000 --- a/docs/Installation/ZD_Unistall.mdx +++ /dev/null @@ -1,40 +0,0 @@ ---- -sidebar_position: 12 -title: Удаление ZennoDroid -description: Как удалить программу с компьютера? ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ -## Разберем удаление по пунктам: -**1.** Открываем **Панель управления** и переходим в пункт **Удаление программы**. - -![Панель управления](./assets/ZD_Unistall/ZD_Unistall_pic1.png) -_______________________________________________ -**2.** Находим **ZennoDroid**, выбираем нужную версию и нажимаем **Удалить/Изменить**. - -![Удалить/Изменить](./assets/ZD_Unistall/ZD_Unistall_pic2.png) -_______________________________________________ -**3.** Запустится программа удаления с кнопкой **Удалить** - -![Удалить](./assets/ZD_Unistall/ZD_Unistall_pic3.png) -_______________________________________________ -**4.** Теперь можно выбрать дополнительные опции удаления. - -![дополнительные опции удаления](./assets/ZD_Unistall/ZD_Unistall_pic4.png) - -- ***Удалить директорию с программой полностью***. -При включении этой опции будет полностью удалена директория программы. В том числе папка логов и ***ExternalAssemblies*** (в этом каталоге хранятся подключаемые к проектам внешние ***dll*** библиотеки). -- ***Удалить пользовательские данные в AppData***. -Большая часть настроек программ хранится по пути `C:\Users\USERNAME\AppData\Roaming\ZennoLab`. Там находятся настройки проектов и программы, а также расписания. Если будет отмечена данная опция, то все эти настройки будут безвозвратно утеряны. -:::warning **ВНИМАТЕЛЬНО.** -Если вы удалите каталог в *AppData*, то пропадут настройки для всех версий программы, а не только для той, которую вы сейчас удаляете! -::: -_______________________________________________ -**5.** Когда вы определитесь и выберете подходящий вариант (можно вообще не ставить галочку), нажимайте **Продолжить**. - -![Продолжить](./assets/ZD_Unistall/ZD_Unistall_pic5.png) -_______________________________________________ -**6.** Готово! Удаление завершено. - -![Удаление завершено](./assets/ZD_Unistall/ZD_Unistall_pic6.png) \ No newline at end of file diff --git a/docs/Installation/_category_.json b/docs/Installation/_category_.json deleted file mode 100644 index 83a8ad6f..00000000 --- a/docs/Installation/_category_.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "label": "Установка", - "position": 1, - "link": { - "type": "generated-index", - "title": "Установка ZennoDroid и необходимых компонентов" - } - } - \ No newline at end of file diff --git a/docs/Installation/assets/Frida/Frida_pic1.png b/docs/Installation/assets/Frida/Frida_pic1.png deleted file mode 100644 index b9c66b16..00000000 Binary files a/docs/Installation/assets/Frida/Frida_pic1.png and /dev/null differ diff --git a/docs/Installation/assets/Frida/Frida_pic10.png b/docs/Installation/assets/Frida/Frida_pic10.png deleted file mode 100644 index 28595821..00000000 Binary files a/docs/Installation/assets/Frida/Frida_pic10.png and /dev/null differ diff --git a/docs/Installation/assets/Frida/Frida_pic11.png b/docs/Installation/assets/Frida/Frida_pic11.png deleted file mode 100644 index 292ebed4..00000000 Binary files a/docs/Installation/assets/Frida/Frida_pic11.png and /dev/null differ diff --git a/docs/Installation/assets/Frida/Frida_pic12.png b/docs/Installation/assets/Frida/Frida_pic12.png deleted file mode 100644 index cf442fef..00000000 Binary files a/docs/Installation/assets/Frida/Frida_pic12.png and /dev/null differ diff --git a/docs/Installation/assets/Frida/Frida_pic13.png b/docs/Installation/assets/Frida/Frida_pic13.png deleted file mode 100644 index 985a64dc..00000000 Binary files a/docs/Installation/assets/Frida/Frida_pic13.png and /dev/null differ diff --git a/docs/Installation/assets/Frida/Frida_pic14.png b/docs/Installation/assets/Frida/Frida_pic14.png deleted file mode 100644 index 5d1258e6..00000000 Binary files a/docs/Installation/assets/Frida/Frida_pic14.png and /dev/null differ diff --git a/docs/Installation/assets/Frida/Frida_pic15.png b/docs/Installation/assets/Frida/Frida_pic15.png deleted file mode 100644 index 1a0f17cb..00000000 Binary files a/docs/Installation/assets/Frida/Frida_pic15.png and /dev/null differ diff --git a/docs/Installation/assets/Frida/Frida_pic2.png b/docs/Installation/assets/Frida/Frida_pic2.png deleted file mode 100644 index 39f52af9..00000000 Binary files a/docs/Installation/assets/Frida/Frida_pic2.png and /dev/null differ diff --git a/docs/Installation/assets/Frida/Frida_pic3.png b/docs/Installation/assets/Frida/Frida_pic3.png deleted file mode 100644 index 6f936424..00000000 Binary files a/docs/Installation/assets/Frida/Frida_pic3.png and /dev/null differ diff --git a/docs/Installation/assets/Frida/Frida_pic4.png b/docs/Installation/assets/Frida/Frida_pic4.png deleted file mode 100644 index 4c0961cd..00000000 Binary files a/docs/Installation/assets/Frida/Frida_pic4.png and /dev/null differ diff --git a/docs/Installation/assets/Frida/Frida_pic5.png b/docs/Installation/assets/Frida/Frida_pic5.png deleted file mode 100644 index 5bbb4e17..00000000 Binary files a/docs/Installation/assets/Frida/Frida_pic5.png and /dev/null differ diff --git a/docs/Installation/assets/Frida/Frida_pic6.png b/docs/Installation/assets/Frida/Frida_pic6.png deleted file mode 100644 index 87628874..00000000 Binary files a/docs/Installation/assets/Frida/Frida_pic6.png and /dev/null differ diff --git a/docs/Installation/assets/Frida/Frida_pic7.png b/docs/Installation/assets/Frida/Frida_pic7.png deleted file mode 100644 index f32ccbfd..00000000 Binary files a/docs/Installation/assets/Frida/Frida_pic7.png and /dev/null differ diff --git a/docs/Installation/assets/Frida/Frida_pic8.png b/docs/Installation/assets/Frida/Frida_pic8.png deleted file mode 100644 index 0b8590fd..00000000 Binary files a/docs/Installation/assets/Frida/Frida_pic8.png and /dev/null differ diff --git a/docs/Installation/assets/Frida/Frida_pic9.png b/docs/Installation/assets/Frida/Frida_pic9.png deleted file mode 100644 index f71c8efa..00000000 Binary files a/docs/Installation/assets/Frida/Frida_pic9.png and /dev/null differ diff --git a/docs/Installation/assets/HyperV/HyperV_pic1.png b/docs/Installation/assets/HyperV/HyperV_pic1.png deleted file mode 100644 index ad79caff..00000000 Binary files a/docs/Installation/assets/HyperV/HyperV_pic1.png and /dev/null differ diff --git a/docs/Installation/assets/HyperV/HyperV_pic2.gif b/docs/Installation/assets/HyperV/HyperV_pic2.gif deleted file mode 100644 index 1f42d4d3..00000000 Binary files a/docs/Installation/assets/HyperV/HyperV_pic2.gif and /dev/null differ diff --git a/docs/Installation/assets/HyperV/HyperV_pic3.jpeg b/docs/Installation/assets/HyperV/HyperV_pic3.jpeg deleted file mode 100644 index 75184962..00000000 Binary files a/docs/Installation/assets/HyperV/HyperV_pic3.jpeg and /dev/null differ diff --git a/docs/Installation/assets/HyperV/HyperV_pic4.gif b/docs/Installation/assets/HyperV/HyperV_pic4.gif deleted file mode 100644 index dd796949..00000000 Binary files a/docs/Installation/assets/HyperV/HyperV_pic4.gif and /dev/null differ diff --git a/docs/Installation/assets/HyperV/HyperV_pic5.gif b/docs/Installation/assets/HyperV/HyperV_pic5.gif deleted file mode 100644 index 07e5b7e1..00000000 Binary files a/docs/Installation/assets/HyperV/HyperV_pic5.gif and /dev/null differ diff --git a/docs/Installation/assets/HyperV/HyperV_pic6.gif b/docs/Installation/assets/HyperV/HyperV_pic6.gif deleted file mode 100644 index ce5ac4f8..00000000 Binary files a/docs/Installation/assets/HyperV/HyperV_pic6.gif and /dev/null differ diff --git a/docs/Installation/assets/LSPosed/LSPosed_pic1.png b/docs/Installation/assets/LSPosed/LSPosed_pic1.png deleted file mode 100644 index 06f2f6f7..00000000 Binary files a/docs/Installation/assets/LSPosed/LSPosed_pic1.png and /dev/null differ diff --git a/docs/Installation/assets/LSPosed/LSPosed_pic10.png b/docs/Installation/assets/LSPosed/LSPosed_pic10.png deleted file mode 100644 index 192ac122..00000000 Binary files a/docs/Installation/assets/LSPosed/LSPosed_pic10.png and /dev/null differ diff --git a/docs/Installation/assets/LSPosed/LSPosed_pic11.png b/docs/Installation/assets/LSPosed/LSPosed_pic11.png deleted file mode 100644 index 17d996ff..00000000 Binary files a/docs/Installation/assets/LSPosed/LSPosed_pic11.png and /dev/null differ diff --git a/docs/Installation/assets/LSPosed/LSPosed_pic12.png b/docs/Installation/assets/LSPosed/LSPosed_pic12.png deleted file mode 100644 index e93ef789..00000000 Binary files a/docs/Installation/assets/LSPosed/LSPosed_pic12.png and /dev/null differ diff --git a/docs/Installation/assets/LSPosed/LSPosed_pic2.png b/docs/Installation/assets/LSPosed/LSPosed_pic2.png deleted file mode 100644 index ffa0a669..00000000 Binary files a/docs/Installation/assets/LSPosed/LSPosed_pic2.png and /dev/null differ diff --git a/docs/Installation/assets/LSPosed/LSPosed_pic3.png b/docs/Installation/assets/LSPosed/LSPosed_pic3.png deleted file mode 100644 index c08ec564..00000000 Binary files a/docs/Installation/assets/LSPosed/LSPosed_pic3.png and /dev/null differ diff --git a/docs/Installation/assets/LSPosed/LSPosed_pic4.png b/docs/Installation/assets/LSPosed/LSPosed_pic4.png deleted file mode 100644 index 88104fb0..00000000 Binary files a/docs/Installation/assets/LSPosed/LSPosed_pic4.png and /dev/null differ diff --git a/docs/Installation/assets/LSPosed/LSPosed_pic5.png b/docs/Installation/assets/LSPosed/LSPosed_pic5.png deleted file mode 100644 index 4e039bd2..00000000 Binary files a/docs/Installation/assets/LSPosed/LSPosed_pic5.png and /dev/null differ diff --git a/docs/Installation/assets/LSPosed/LSPosed_pic6.png b/docs/Installation/assets/LSPosed/LSPosed_pic6.png deleted file mode 100644 index 760bedf4..00000000 Binary files a/docs/Installation/assets/LSPosed/LSPosed_pic6.png and /dev/null differ diff --git a/docs/Installation/assets/LSPosed/LSPosed_pic7.png b/docs/Installation/assets/LSPosed/LSPosed_pic7.png deleted file mode 100644 index 3dc3ca33..00000000 Binary files a/docs/Installation/assets/LSPosed/LSPosed_pic7.png and /dev/null differ diff --git a/docs/Installation/assets/LSPosed/LSPosed_pic8.png b/docs/Installation/assets/LSPosed/LSPosed_pic8.png deleted file mode 100644 index 54e16dbe..00000000 Binary files a/docs/Installation/assets/LSPosed/LSPosed_pic8.png and /dev/null differ diff --git a/docs/Installation/assets/LSPosed/LSPosed_pic9.png b/docs/Installation/assets/LSPosed/LSPosed_pic9.png deleted file mode 100644 index 95ef7a9c..00000000 Binary files a/docs/Installation/assets/LSPosed/LSPosed_pic9.png and /dev/null differ diff --git a/docs/Installation/assets/Memu_Install/MEmu_Install_pic1.png b/docs/Installation/assets/Memu_Install/MEmu_Install_pic1.png deleted file mode 100644 index 28e42197..00000000 Binary files a/docs/Installation/assets/Memu_Install/MEmu_Install_pic1.png and /dev/null differ diff --git a/docs/Installation/assets/Memu_Install/MEmu_Install_pic2.png b/docs/Installation/assets/Memu_Install/MEmu_Install_pic2.png deleted file mode 100644 index 74ac513c..00000000 Binary files a/docs/Installation/assets/Memu_Install/MEmu_Install_pic2.png and /dev/null differ diff --git a/docs/Installation/assets/Memu_Install/MEmu_Install_pic3.png b/docs/Installation/assets/Memu_Install/MEmu_Install_pic3.png deleted file mode 100644 index 743bf784..00000000 Binary files a/docs/Installation/assets/Memu_Install/MEmu_Install_pic3.png and /dev/null differ diff --git a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic01.png b/docs/Installation/assets/ProxyChecker/ProxyCheck_pic01.png deleted file mode 100644 index 9ad1a07b..00000000 Binary files a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic01.png and /dev/null differ diff --git a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic02.png b/docs/Installation/assets/ProxyChecker/ProxyCheck_pic02.png deleted file mode 100644 index 4be4d2f8..00000000 Binary files a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic02.png and /dev/null differ diff --git a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic03.png b/docs/Installation/assets/ProxyChecker/ProxyCheck_pic03.png deleted file mode 100644 index 5b6d81bf..00000000 Binary files a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic03.png and /dev/null differ diff --git a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic04.png b/docs/Installation/assets/ProxyChecker/ProxyCheck_pic04.png deleted file mode 100644 index 37e59eff..00000000 Binary files a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic04.png and /dev/null differ diff --git a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic05.png b/docs/Installation/assets/ProxyChecker/ProxyCheck_pic05.png deleted file mode 100644 index 4dcef9dc..00000000 Binary files a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic05.png and /dev/null differ diff --git a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic06.png b/docs/Installation/assets/ProxyChecker/ProxyCheck_pic06.png deleted file mode 100644 index 1c3c5422..00000000 Binary files a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic06.png and /dev/null differ diff --git a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic07.png b/docs/Installation/assets/ProxyChecker/ProxyCheck_pic07.png deleted file mode 100644 index fbbde858..00000000 Binary files a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic07.png and /dev/null differ diff --git a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic08.png b/docs/Installation/assets/ProxyChecker/ProxyCheck_pic08.png deleted file mode 100644 index 11659705..00000000 Binary files a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic08.png and /dev/null differ diff --git a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic09.png b/docs/Installation/assets/ProxyChecker/ProxyCheck_pic09.png deleted file mode 100644 index d2071807..00000000 Binary files a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic09.png and /dev/null differ diff --git a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic10.png b/docs/Installation/assets/ProxyChecker/ProxyCheck_pic10.png deleted file mode 100644 index 7efd55b3..00000000 Binary files a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic10.png and /dev/null differ diff --git a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic11.png b/docs/Installation/assets/ProxyChecker/ProxyCheck_pic11.png deleted file mode 100644 index 144b0131..00000000 Binary files a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic11.png and /dev/null differ diff --git a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic12.png b/docs/Installation/assets/ProxyChecker/ProxyCheck_pic12.png deleted file mode 100644 index e0e1eb6e..00000000 Binary files a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic12.png and /dev/null differ diff --git a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic13.png b/docs/Installation/assets/ProxyChecker/ProxyCheck_pic13.png deleted file mode 100644 index 292edaac..00000000 Binary files a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic13.png and /dev/null differ diff --git a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic14.png b/docs/Installation/assets/ProxyChecker/ProxyCheck_pic14.png deleted file mode 100644 index 1715f3b1..00000000 Binary files a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic14.png and /dev/null differ diff --git a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic15.png b/docs/Installation/assets/ProxyChecker/ProxyCheck_pic15.png deleted file mode 100644 index 7c0dac16..00000000 Binary files a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic15.png and /dev/null differ diff --git a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic16.png b/docs/Installation/assets/ProxyChecker/ProxyCheck_pic16.png deleted file mode 100644 index 33be125b..00000000 Binary files a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic16.png and /dev/null differ diff --git a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic17.png b/docs/Installation/assets/ProxyChecker/ProxyCheck_pic17.png deleted file mode 100644 index e792e2a1..00000000 Binary files a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic17.png and /dev/null differ diff --git a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic18.png b/docs/Installation/assets/ProxyChecker/ProxyCheck_pic18.png deleted file mode 100644 index 81ff0a9e..00000000 Binary files a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic18.png and /dev/null differ diff --git a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic19.png b/docs/Installation/assets/ProxyChecker/ProxyCheck_pic19.png deleted file mode 100644 index f6c36b15..00000000 Binary files a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic19.png and /dev/null differ diff --git a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic20.png b/docs/Installation/assets/ProxyChecker/ProxyCheck_pic20.png deleted file mode 100644 index 0bc712d7..00000000 Binary files a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic20.png and /dev/null differ diff --git a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic21.png b/docs/Installation/assets/ProxyChecker/ProxyCheck_pic21.png deleted file mode 100644 index 18c319bc..00000000 Binary files a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic21.png and /dev/null differ diff --git a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic22.png b/docs/Installation/assets/ProxyChecker/ProxyCheck_pic22.png deleted file mode 100644 index b0d52c2c..00000000 Binary files a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic22.png and /dev/null differ diff --git a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic23.png b/docs/Installation/assets/ProxyChecker/ProxyCheck_pic23.png deleted file mode 100644 index 314e033a..00000000 Binary files a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic23.png and /dev/null differ diff --git a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic24.png b/docs/Installation/assets/ProxyChecker/ProxyCheck_pic24.png deleted file mode 100644 index 5e3b8f2d..00000000 Binary files a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic24.png and /dev/null differ diff --git a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic25.png b/docs/Installation/assets/ProxyChecker/ProxyCheck_pic25.png deleted file mode 100644 index 5251f68c..00000000 Binary files a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic25.png and /dev/null differ diff --git a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic26.png b/docs/Installation/assets/ProxyChecker/ProxyCheck_pic26.png deleted file mode 100644 index 82eab7c3..00000000 Binary files a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic26.png and /dev/null differ diff --git a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic27.png b/docs/Installation/assets/ProxyChecker/ProxyCheck_pic27.png deleted file mode 100644 index add7ad03..00000000 Binary files a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic27.png and /dev/null differ diff --git a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic28.png b/docs/Installation/assets/ProxyChecker/ProxyCheck_pic28.png deleted file mode 100644 index 058bde9a..00000000 Binary files a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic28.png and /dev/null differ diff --git a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic29.png b/docs/Installation/assets/ProxyChecker/ProxyCheck_pic29.png deleted file mode 100644 index 98922ad4..00000000 Binary files a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic29.png and /dev/null differ diff --git a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic30.png b/docs/Installation/assets/ProxyChecker/ProxyCheck_pic30.png deleted file mode 100644 index f858ffe1..00000000 Binary files a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic30.png and /dev/null differ diff --git a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic31.png b/docs/Installation/assets/ProxyChecker/ProxyCheck_pic31.png deleted file mode 100644 index 4c04a220..00000000 Binary files a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic31.png and /dev/null differ diff --git a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic32.png b/docs/Installation/assets/ProxyChecker/ProxyCheck_pic32.png deleted file mode 100644 index 0a4c13b9..00000000 Binary files a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic32.png and /dev/null differ diff --git a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic33.png b/docs/Installation/assets/ProxyChecker/ProxyCheck_pic33.png deleted file mode 100644 index 4ab34a4d..00000000 Binary files a/docs/Installation/assets/ProxyChecker/ProxyCheck_pic33.png and /dev/null differ diff --git a/docs/Installation/assets/Root/Root_pic1.png b/docs/Installation/assets/Root/Root_pic1.png deleted file mode 100644 index b4f71e81..00000000 Binary files a/docs/Installation/assets/Root/Root_pic1.png and /dev/null differ diff --git a/docs/Installation/assets/Root/Root_pic10.png b/docs/Installation/assets/Root/Root_pic10.png deleted file mode 100644 index c7580f41..00000000 Binary files a/docs/Installation/assets/Root/Root_pic10.png and /dev/null differ diff --git a/docs/Installation/assets/Root/Root_pic11.png b/docs/Installation/assets/Root/Root_pic11.png deleted file mode 100644 index 9c9bcc71..00000000 Binary files a/docs/Installation/assets/Root/Root_pic11.png and /dev/null differ diff --git a/docs/Installation/assets/Root/Root_pic12.png b/docs/Installation/assets/Root/Root_pic12.png deleted file mode 100644 index 40dad6c4..00000000 Binary files a/docs/Installation/assets/Root/Root_pic12.png and /dev/null differ diff --git a/docs/Installation/assets/Root/Root_pic2.png b/docs/Installation/assets/Root/Root_pic2.png deleted file mode 100644 index 4a920ec6..00000000 Binary files a/docs/Installation/assets/Root/Root_pic2.png and /dev/null differ diff --git a/docs/Installation/assets/Root/Root_pic3.jpg b/docs/Installation/assets/Root/Root_pic3.jpg deleted file mode 100644 index 0c8cf69e..00000000 Binary files a/docs/Installation/assets/Root/Root_pic3.jpg and /dev/null differ diff --git a/docs/Installation/assets/Root/Root_pic4.jpg b/docs/Installation/assets/Root/Root_pic4.jpg deleted file mode 100644 index e7d2155c..00000000 Binary files a/docs/Installation/assets/Root/Root_pic4.jpg and /dev/null differ diff --git a/docs/Installation/assets/Root/Root_pic5.jpg b/docs/Installation/assets/Root/Root_pic5.jpg deleted file mode 100644 index d7776419..00000000 Binary files a/docs/Installation/assets/Root/Root_pic5.jpg and /dev/null differ diff --git a/docs/Installation/assets/Root/Root_pic6.jpg b/docs/Installation/assets/Root/Root_pic6.jpg deleted file mode 100644 index 853cf4cb..00000000 Binary files a/docs/Installation/assets/Root/Root_pic6.jpg and /dev/null differ diff --git a/docs/Installation/assets/Root/Root_pic7.png b/docs/Installation/assets/Root/Root_pic7.png deleted file mode 100644 index 29d6b897..00000000 Binary files a/docs/Installation/assets/Root/Root_pic7.png and /dev/null differ diff --git a/docs/Installation/assets/Root/Root_pic8.jpg b/docs/Installation/assets/Root/Root_pic8.jpg deleted file mode 100644 index 12a0626d..00000000 Binary files a/docs/Installation/assets/Root/Root_pic8.jpg and /dev/null differ diff --git a/docs/Installation/assets/Root/Root_pic9.png b/docs/Installation/assets/Root/Root_pic9.png deleted file mode 100644 index 37dbba4e..00000000 Binary files a/docs/Installation/assets/Root/Root_pic9.png and /dev/null differ diff --git a/docs/Installation/assets/SysReq/SysReq_pic1.png b/docs/Installation/assets/SysReq/SysReq_pic1.png deleted file mode 100644 index 61ed4879..00000000 Binary files a/docs/Installation/assets/SysReq/SysReq_pic1.png and /dev/null differ diff --git a/docs/Installation/assets/SysReq/SysReq_pic2.png b/docs/Installation/assets/SysReq/SysReq_pic2.png deleted file mode 100644 index ba689f46..00000000 Binary files a/docs/Installation/assets/SysReq/SysReq_pic2.png and /dev/null differ diff --git a/docs/Installation/assets/Virtualization/Virtualization_pic1.png b/docs/Installation/assets/Virtualization/Virtualization_pic1.png deleted file mode 100644 index 78e8922c..00000000 Binary files a/docs/Installation/assets/Virtualization/Virtualization_pic1.png and /dev/null differ diff --git a/docs/Installation/assets/Virtualization/Virtualization_pic2.png b/docs/Installation/assets/Virtualization/Virtualization_pic2.png deleted file mode 100644 index 03c31da8..00000000 Binary files a/docs/Installation/assets/Virtualization/Virtualization_pic2.png and /dev/null differ diff --git a/docs/Installation/assets/Virtualization/Virtualization_pic3.jpg b/docs/Installation/assets/Virtualization/Virtualization_pic3.jpg deleted file mode 100644 index 960f9079..00000000 Binary files a/docs/Installation/assets/Virtualization/Virtualization_pic3.jpg and /dev/null differ diff --git a/docs/Installation/assets/Virtualization/Virtualization_pic4.gif b/docs/Installation/assets/Virtualization/Virtualization_pic4.gif deleted file mode 100644 index 95ac4e27..00000000 Binary files a/docs/Installation/assets/Virtualization/Virtualization_pic4.gif and /dev/null differ diff --git a/docs/Installation/assets/Virtualization/Virtualization_pic5.png b/docs/Installation/assets/Virtualization/Virtualization_pic5.png deleted file mode 100644 index 895b68f1..00000000 Binary files a/docs/Installation/assets/Virtualization/Virtualization_pic5.png and /dev/null differ diff --git a/docs/Installation/assets/Virtualization/Virtualization_pic6.gif b/docs/Installation/assets/Virtualization/Virtualization_pic6.gif deleted file mode 100644 index 31c255ff..00000000 Binary files a/docs/Installation/assets/Virtualization/Virtualization_pic6.gif and /dev/null differ diff --git a/docs/Installation/assets/Virtualization/Virtualization_pic7.gif b/docs/Installation/assets/Virtualization/Virtualization_pic7.gif deleted file mode 100644 index ec038283..00000000 Binary files a/docs/Installation/assets/Virtualization/Virtualization_pic7.gif and /dev/null differ diff --git a/docs/Installation/assets/ZD_Demo/ZD_Demo_pic1.png b/docs/Installation/assets/ZD_Demo/ZD_Demo_pic1.png deleted file mode 100644 index 6a9c7ecb..00000000 Binary files a/docs/Installation/assets/ZD_Demo/ZD_Demo_pic1.png and /dev/null differ diff --git a/docs/Installation/assets/ZD_Demo/ZD_Demo_pic2.png b/docs/Installation/assets/ZD_Demo/ZD_Demo_pic2.png deleted file mode 100644 index b1390c07..00000000 Binary files a/docs/Installation/assets/ZD_Demo/ZD_Demo_pic2.png and /dev/null differ diff --git a/docs/Installation/assets/ZD_Demo/ZD_Demo_pic3.png b/docs/Installation/assets/ZD_Demo/ZD_Demo_pic3.png deleted file mode 100644 index 993a95a4..00000000 Binary files a/docs/Installation/assets/ZD_Demo/ZD_Demo_pic3.png and /dev/null differ diff --git a/docs/Installation/assets/ZD_Demo/ZD_Demo_pic4.png b/docs/Installation/assets/ZD_Demo/ZD_Demo_pic4.png deleted file mode 100644 index 0ec6960c..00000000 Binary files a/docs/Installation/assets/ZD_Demo/ZD_Demo_pic4.png and /dev/null differ diff --git a/docs/Installation/assets/ZD_Install/ZD_Install_pic1.png b/docs/Installation/assets/ZD_Install/ZD_Install_pic1.png deleted file mode 100644 index 27030342..00000000 Binary files a/docs/Installation/assets/ZD_Install/ZD_Install_pic1.png and /dev/null differ diff --git a/docs/Installation/assets/ZD_Install/ZD_Install_pic2.png b/docs/Installation/assets/ZD_Install/ZD_Install_pic2.png deleted file mode 100644 index 47b4028b..00000000 Binary files a/docs/Installation/assets/ZD_Install/ZD_Install_pic2.png and /dev/null differ diff --git a/docs/Installation/assets/ZD_Install/ZD_Install_pic3.png b/docs/Installation/assets/ZD_Install/ZD_Install_pic3.png deleted file mode 100644 index bbc2efc6..00000000 Binary files a/docs/Installation/assets/ZD_Install/ZD_Install_pic3.png and /dev/null differ diff --git a/docs/Installation/assets/ZD_Install/ZD_Install_pic4.png b/docs/Installation/assets/ZD_Install/ZD_Install_pic4.png deleted file mode 100644 index 89367a7b..00000000 Binary files a/docs/Installation/assets/ZD_Install/ZD_Install_pic4.png and /dev/null differ diff --git a/docs/Installation/assets/ZD_Install/ZD_Install_pic5.png b/docs/Installation/assets/ZD_Install/ZD_Install_pic5.png deleted file mode 100644 index 9b6825fa..00000000 Binary files a/docs/Installation/assets/ZD_Install/ZD_Install_pic5.png and /dev/null differ diff --git a/docs/Installation/assets/ZD_Install/ZD_Install_pic6.png b/docs/Installation/assets/ZD_Install/ZD_Install_pic6.png deleted file mode 100644 index 3ae34d8f..00000000 Binary files a/docs/Installation/assets/ZD_Install/ZD_Install_pic6.png and /dev/null differ diff --git a/docs/Installation/assets/ZD_Install/ZD_Install_pic7.png b/docs/Installation/assets/ZD_Install/ZD_Install_pic7.png deleted file mode 100644 index 3bebdf03..00000000 Binary files a/docs/Installation/assets/ZD_Install/ZD_Install_pic7.png and /dev/null differ diff --git a/docs/Installation/assets/ZD_Install/ZD_Install_pic8.png b/docs/Installation/assets/ZD_Install/ZD_Install_pic8.png deleted file mode 100644 index abc52c93..00000000 Binary files a/docs/Installation/assets/ZD_Install/ZD_Install_pic8.png and /dev/null differ diff --git a/docs/Installation/assets/ZD_Install/ZD_Install_pic9.png b/docs/Installation/assets/ZD_Install/ZD_Install_pic9.png deleted file mode 100644 index 12752b85..00000000 Binary files a/docs/Installation/assets/ZD_Install/ZD_Install_pic9.png and /dev/null differ diff --git a/docs/Installation/assets/ZD_Unistall/ZD_Unistall_pic1.png b/docs/Installation/assets/ZD_Unistall/ZD_Unistall_pic1.png deleted file mode 100644 index 8472cc8b..00000000 Binary files a/docs/Installation/assets/ZD_Unistall/ZD_Unistall_pic1.png and /dev/null differ diff --git a/docs/Installation/assets/ZD_Unistall/ZD_Unistall_pic2.png b/docs/Installation/assets/ZD_Unistall/ZD_Unistall_pic2.png deleted file mode 100644 index 5337204a..00000000 Binary files a/docs/Installation/assets/ZD_Unistall/ZD_Unistall_pic2.png and /dev/null differ diff --git a/docs/Installation/assets/ZD_Unistall/ZD_Unistall_pic3.png b/docs/Installation/assets/ZD_Unistall/ZD_Unistall_pic3.png deleted file mode 100644 index 842cc5ea..00000000 Binary files a/docs/Installation/assets/ZD_Unistall/ZD_Unistall_pic3.png and /dev/null differ diff --git a/docs/Installation/assets/ZD_Unistall/ZD_Unistall_pic4.png b/docs/Installation/assets/ZD_Unistall/ZD_Unistall_pic4.png deleted file mode 100644 index d05fca4f..00000000 Binary files a/docs/Installation/assets/ZD_Unistall/ZD_Unistall_pic4.png and /dev/null differ diff --git a/docs/Installation/assets/ZD_Unistall/ZD_Unistall_pic5.png b/docs/Installation/assets/ZD_Unistall/ZD_Unistall_pic5.png deleted file mode 100644 index f06270d4..00000000 Binary files a/docs/Installation/assets/ZD_Unistall/ZD_Unistall_pic5.png and /dev/null differ diff --git a/docs/Installation/assets/ZD_Unistall/ZD_Unistall_pic6.png b/docs/Installation/assets/ZD_Unistall/ZD_Unistall_pic6.png deleted file mode 100644 index 76823e00..00000000 Binary files a/docs/Installation/assets/ZD_Unistall/ZD_Unistall_pic6.png and /dev/null differ diff --git a/docs/Project Editor/CustomCode/Directives_Using.mdx b/docs/Project Editor/CustomCode/Directives_Using.mdx deleted file mode 100644 index b991d729..00000000 --- a/docs/Project Editor/CustomCode/Directives_Using.mdx +++ /dev/null @@ -1,79 +0,0 @@ ---- -sidebar_position: 5 -title: Директивы using и общий код -description: Дополнительные классы и функции. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../../Disclaimer).** -::: -_______________________________________________ -## Описание. -**Общий код** - это функционал, расширяющий возможности стандартных кубиков C#. Он используется для вставки дополнительных классов и функций. - -А **Using-директивы** нужны для доступа к функциям и классам, а также для создания пространства имён (*namespaсes*). - -#### Как можно использовать? -- Более эффективная работа с C# кодом. -- Создание новых пространств имен. -- Организация работы с большим объемом кода. -- Избежание конфликтов в пространстве имен. - -:::warning **Работа с общим кодом подразумевает, что у вас уже есть базовые знания C#.** -::: -_______________________________________________ -## Как добавить в проект? -Через контекстное меню: **Добавить действие → Свой код → Директивы using и общий код**. - -![Как добавить в проект](./assets/Directives_Using/Directives_Using_pic1.png) - -Или через ***Панель статических блоков* → Добавить → Добавить директивы using и общий код**: - -![Панель статических блоков](./assets/Directives_Using/Directives_Using_pic2.png) -_______________________________________________ -## Общий код. -![Панель статических блоков](./assets/Directives_Using/Directives_Using_pic3.png) - -Это окно представляет собой редактор кода с подсветкой синтаксиса. В контекстном меню можно получить доступ к базовому функционалу для редактирования кода: копирование, вставка, комментирование, поиск, замена и т. д. - -В нижней части окна есть чекбокс, который позволяет загружать код из своего файла в форматах `.txt` или `.cs`. - -Самыми первыми в коде перечислены все **using**, используемые в проекте. А далее идет пример объявления `namespace ZennoLab.OwnCode`. Вы можете по аналогии создавать свои пространства имён и обращаться к ним в дальнейшем. - -Для доступа к функциям и методам общего кода их нужно объявлять с модификатором `public`. Если не нужно работать с объектами определенного класса, то его можно объявить статичным `public static`. А когда не понадобится наследование, то лучше сразу объявить как `public sealed`. -_______________________________________________ -## Директивы Using. -![Панель статических блоков](./assets/Directives_Using/Directives_Using_pic4.png) - -Перейдя на эту вкладку, вы увидите перед собой два поля: -- **Верхнее**. Служит для добавления *namespaces*, которые используются при выполнении кода в экшенах C#. Например, для парсинга XML нужно написать `using System.Xml;`. -- **Нижнее**. Здесь перечислены все *using*, которые используются проектом по умолчанию. Их нельзя редактировать. -_______________________________________________ -## Пример работы. -Подадим изображение и коэффициент прозрачности на вход метода `SetImageOpacity`. В результате мы получим картинку с эффектом полупрозрачности, которую можно сохранить на диск. -```C -public static Image SetImageOpacity(Image image, float opacity) -{ - try { - Bitmap bmp = new Bitmap(image.Width, image.Height); - //создание графики из картинки - using (Graphics gfx = Graphics.FromImage(bmp)) { - //создание объекта color matrix - ColorMatrix matrix = new ColorMatrix(); - //установка прозрачности - matrix.Matrix33 = opacity; - //создание новых атрибутов - ImageAttributes attributes = new ImageAttributes(); - //установка цвета прозрачности картинки - attributes.SetColorMatrix(matrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); - //отрисовываем картинку - gfx.DrawImage(image, new Rectangle(0, 0, bmp.Width, bmp.Height), 0, 0, image.Width, image.Height, GraphicsUnit.Pixel, attributes); - } - return bmp; - } - catch (Exception ex) { - return null; - } -} -``` - -А вот так эта функция вызывается из **экшена C#**: -`Image img = OwnCode.CommonCode.SetImageOpacity(Image.FromFile(project.Directory + "//image.jpg"), .5f);` \ No newline at end of file diff --git a/docs/Project Editor/CustomCode/GAC_reference.mdx b/docs/Project Editor/CustomCode/GAC_reference.mdx deleted file mode 100644 index 4b930eaa..00000000 --- a/docs/Project Editor/CustomCode/GAC_reference.mdx +++ /dev/null @@ -1,40 +0,0 @@ ---- -sidebar_position: 4 -title: Ссылки из GAC -description: Сторонняя библиотека классов. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../../Disclaimer).** -::: -_______________________________________________ -## Описание. -При использовании C# снипетов вам доступны все возможности этого языка. Например, он включает в себя обширную библиотеку классов и методов, которая покрывает большинство возникающих задач. - -Описание различным классов, а также их возможности доступны на странице [**Библиотека классов платформы .NET Framework**](https://learn.microsoft.com/ru-ru/previous-versions/gg145045(v=vs.110)?redirectedfrom=MSDN). - -Однако, если вы не нашли класс, решающий вашу задачу, вы можете воспользоваться сторонней библиотекой. Для этого в проект нужно добавить экшен **Ссылки из GAC**, в котором можно подключить отдельную библиотеку классов. -_______________________________________________ -## Как добавить в проект? -Через контекстное меню: **Добавить действие → Свой код → Ссылки из GAC**. - -![Как добавить в проект](./assets/GAC_reference/GAC_reference_pic1.png) - -Или через ***Панель статических блоков* → Добавить → Добавить ссылки из GAC**: - -![Панель статических блоков](./assets/GAC_reference/GAC_reference_pic2.png) - -_______________________________________________ -## Как работать с экшеном? -![Как работать с экшеном](./assets/GAC_reference/GAC_reference_pic3.png) - -При открытии экшена или соответствующего элемента из *Панели статических блоков* появится окно, в котором перечислены все подключенные в данный момент библиотеки. - -С помощью кнопки **Добавить** можно добавить свою библиотеку, выбрав ее из списка или загрузив из файла. - -![добавить свою библиотеку](./assets/GAC_reference/GAC_reference_pic4.png) - -Можно также воспользоваться фильтрацией для поиска: - -![фильтрацией](./assets/GAC_reference/GAC_reference_pic5.png) - -После добавления нужной библиотеки для нее необходимо прописать новое пространство имен. Это делается через экшен ***Директивы using и общий код***, который мы рассматриваем в соседней статье. - diff --git a/docs/Project Editor/CustomCode/JS.mdx b/docs/Project Editor/CustomCode/JS.mdx deleted file mode 100644 index 7b4e1499..00000000 --- a/docs/Project Editor/CustomCode/JS.mdx +++ /dev/null @@ -1,64 +0,0 @@ ---- -sidebar_position: 2 -title: Код JavaScript -description: Работа с JavaScript в ZennoDroid. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../../Disclaimer).** -::: -_______________________________________________ -## Описание. -Этот экшен позволяет выполнять пользовательский JavaScript код и производить арифметические операции с переменными проекта. - -![Описание](./assets/JS/JS_pic1.png) - -_______________________________________________ -## Как добавить в проект? -Через контекстное меню: **Добавить действие → Свой код → JavaScript**. - -![Как добавить в проект?](./assets/JS/JS_pic2.png) -_______________________________________________ -## Как работать с экшеном? -Есть **два режима работы:** - -### Локально. -Код будет выполнен в изолированном окружении, независимо от открытого приложения и за его пределами. -Этот способ можно использовать для работы с любыми данными, которые поддерживает JS. Например с: -- *переменными*, -- *числами*, -- *строками*. - -![Описание](./assets/JS/JS_pic3.png) - -При работе в данном режиме **не надо** указывать ключевое слово *return*, если собираетесь вернуть какое-то значение. Данный экшен сам вернет результат вычислений из последней строки. -В примере выше в переменную проекта `{-Variable.result-}` попадёт значение `6`, результат выражения `2+2*2`. - -:::info **Протестировать такой код можно с помощью *Тестера JavaScript*.** -![Описание](./assets/JS/JS_pic4.png) -::: - -### На текущей странице. -Код будет выполнен на открытой странице браузера. Этот способ стоит использовать для работы с DOM-древом, чтобы взаимодействовать с элементами страницы. - -При работе в данном режиме открывается доступ ко все объектам текущей страницы. В том числе к подключенным на сайте библиотекам и фреймворкам (например jQuery). - -_______________________________________________ -:::warning **Независимо от выбранного режима** -В настройках экшена обязательно должна быть указана переменная, в которую сохранится результат работы. Даже если логика кода не подразумевает возврат значения. -::: -_______________________________________________ - -## Примеры использования. -### Арифметические операции. -| ![Описание](./assets/JS/JS_pic5.png) | -|:--:| -| *После выполнения этого экшена в переменную **result** сохранится результат деления переменной **height** на **2*** | - -### Подключение JavaScript библиотек. -Можно также встроить на страницу библиотеку, которой изначально не было. Например, с помощью кода добавить jQuery: - -```JS -int value1 = Convert.ToInt32(project.Variables["value1"].Value); -int value2 = Convert.ToInt32(project.Variables["value2"].Value); -int value3 = value1 + value2; //или value1 - value2 или value1 * value2 и т. д. -return value3.ToString(); //сумма двух чисел -``` diff --git a/docs/Project Editor/CustomCode/RunningPrograms.mdx b/docs/Project Editor/CustomCode/RunningPrograms.mdx deleted file mode 100644 index c15af85c..00000000 --- a/docs/Project Editor/CustomCode/RunningPrograms.mdx +++ /dev/null @@ -1,162 +0,0 @@ ---- -sidebar_position: 3 -title: Запуск программ -description: Запуск сторонних приложений. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../../Disclaimer).** -::: -_______________________________________________ -## Описание. -Экшен служит для запуска сторонних программ. Таких как: -| Десктопные программы | Консольные утилиты | -|:--:| :--:| -| Notepad, WinRar, Paint | ffmpeg, ImageMagick | - -#### Как можно использовать: -- [**ImageMagick**](https://imagemagick.org). Набор утилит для чтения и редактирования файлов множества графических форматов (изображений). -- [**FFmpeg**](https://ffmpeg.org). Библиотеки с открытым исходным кодом. Позволяют записывать, конвертировать и передавать цифровые аудио- и видеозаписи в различных форматах. -- Запуск скриптов на [**Python**](https://www.python.org) и других языках программирования. -- Работа с любыми другими приложениями. - -_______________________________________________ -## Как добавить в проект? -Через контекстное меню: **Добавить действие → Свой код → Запуск программы**. - -![Как добавить в проект?](./assets/RunningPrograms/RunningPrograms_pic1.png) -_______________________________________________ -## Как работать с экшеном? -![Как работать с экшеном?](./assets/RunningPrograms/RunningPrograms_pic2.png) -_______________________________________________ -### Исполняемый файл. -Тут пишем полный путь к файлу, который надо запустить. Нажатие на многоточие откроет стандартное окно поиска файлов на компьютере. -#### Особенности: -- **Если файл по указанному пути не будет найден, то экшен завершится с ошибкой.** -- Можно использовать ***макросы переменных***. -- Если каталог выполняемой программы находится в переменной [**среды PATH**](https://ru.wikipedia.org/wiki/PATH_(%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%B0%D1%8F)), то можно указывать не полный путь к файлу, а только его название (например, `notepad.exe` или `calc.exe`). -_______________________________________________ -### Параметры запуска. -Здесь можно указать дополнительные команды, которые передаются запускаемой программе. У каждой программы свои параметры запуска (можно использовать макросы переменных). - -| ![Как работать с экшеном?](./assets/RunningPrograms/RunningPrograms_pic3.png) | -|:--:| -| *Запуск нового окна браузера Chrome с URL https://zennolab.com* | - -:::info **При запуске консольных утилит в данной строке передаются аргументы.** -::: -_______________________________________________ -### Таймаут. -Если вызванная программа не выполнится за указанное здесь количества секунд, то экшен завершится с ошибкой. Это удобно использовать, если вы знаете точное время выполнения. - -:::info **Можно указывать дробное значение через `,`.** -::: -_______________________________________________ -### Не показывать окно процесса. -При включении данной опции запускаемая программа не будет отображена. -_______________________________________________ -### Не ждать завершения работы. -С этой настройкой *Таймаут* будет игнорироваться, и экшен не будет ждать, пока программа закончит работу. -_______________________________________________ -### Записать EXIT CODE. -[**Код возврата**](https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%B4_%D0%B2%D0%BE%D0%B7%D0%B2%D1%80%D0%B0%D1%82%D0%B0) — это числовое значение, возвращаемое программой после завершения своей работы. Этот код может сообщать о том, завершилась ли программа успешно или произошла ошибка. - -При нормальном завершении работы программы возвращают `0` (ноль). Если возвращено что-то другое, то скорее всего программа завершилась с ошибкой. - -Чтобы опознать конкретный код, стоит вбить в поиск запрос: `название_программы exit code код_возврата`. **Пример:** `ffmpeg exit code 137`. -_______________________________________________ -### Записать STD OUT. -**STDOUT (Standard Output)** — это стандартный поток вывода, который используется программами для вывода текстовой информации, любой кроме ошибок. Он отображается в окне консоли. - -#### Рассмотрим пример: -При установке *ImageMagick* программа добавляет путь к своей папке в переменную [*среды PATH*](https://ru.wikipedia.org/wiki/PATH_(%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%B0%D1%8F)). После этого нет необходимости указывать полный путь к исполняемому файлу, можно просто написать: `magick.exe <тут_аргументы>`. - -Для демонстрации запустим программу с аргументом `-usage` и перенаправим **STD OUT** в переменную. В ответ программа напишет базовую информацию о себе. - -![Как работать с экшеном?](./assets/RunningPrograms/RunningPrograms_pic4.png) -_______________________________________________ -### Записать STD ERR. -**STD ERR (Standard Error)** — стандартный поток, предназначенный только для вывода данных при ошибках. - -#### Пример: -Повторим команду из предыдущего пункта, но сделаем ошибку и напишем `-usage22`: - -![Как работать с экшеном?](./assets/RunningPrograms/RunningPrograms_pic5.png) - -На скриншоте видно, что в **STD ERR** попал текст ошибки, сообщающий о неправильном аргументе или недостаточном их количестве. -Но мы также получили текст и в **STD OUT** — программа подсказывает, как правильно ею пользоваться. -_______________________________________________ -:::info **Чтобы повторить команды, описанные выше.** -Установите [**ImageMagick**](https://imagemagick.org). -Откройте окно консоли (например, через **Win+R → ввести cmd.exe → нажать Enter**). -Затем написать команды: `magick-usage` и `magick-usage22`. -::: -_______________________________________________ -## Примеры использования. -Рассмотрим несколько сценариев на основе ImageMagick. - -**Цель:** создать изображение. -- **Размер**: 600 на 600 пикселей (`-size 600x600`). -- **Цвет фона**: светло-зеленый (`-background lightgreen`). -- **Расположение**: по центру (`-gravity Center`). -- **Цвет текста**: зеленый (`-fill blue`). -- **Шрифт**: Arial (`-font Arial`). -- **Размер шрифта**: 72 (`-pointsize 72`). -- **Текс**: ZennoDroid (`label:ZennoDroid`). - -**Результат сохраним** в файл: `C:\Users\Administrator\Desktop\result.jpg`. - -**Путь**: `C:\Program Files\ImageMagick-7.1.1-Q16-HDRI\magick.exe`. - -:::info **На вашем компьютере пути к файлам скорее всего будут отличаться.** -::: - -| ![Как работать с экшеном?](./assets/RunningPrograms/RunningPrograms_pic6.png) | -|:--:| -| *Результат* | - -### Способ №1. Все параметры жёстко прописаны. -![Как работать с экшеном?](./assets/RunningPrograms/RunningPrograms_pic7.png) - -**Исполняемый файл**: `C:\Program Files\ImageMagick-7.1.1-Q16-HDRI\magick.exe`. - -**Параметры запуска**: `-size 600x600 -background lightgreen -gravity Center -fill green -font Arial -pointsize 72 label:ZennoDroid C:\Users\Administrator\Desktop\result.jpg`. - -После выполнения данного экшена на рабочем столе появится файл `result.jpg` -_______________________________________________ -### Способ №2. Параметры переданы в переменных. -![Как работать с экшеном?](./assets/RunningPrograms/RunningPrograms_pic8.png) - -**Исполняемый файл**: `{-Variable.imagemagick_dir_path-}magick.exe`. - -**Параметры запуска**: `{-Variable.parameters-} {-Project.Directory-}result.jpg`. - -> *`{-Project.Directory-}` — системная переменная, в которой хранится полный путь к расположению текущего проекта.* - - -Здесь мы вынесли *путь к папке с исполняемым файлом* и *все параметры* в отдельные переменные. Это удобно для запуска шаблона на разных компьютерах, когда путь может отличаться. - -Параметры также можно поместить не в одну переменную, а разделить на несколько разных. - -Итоговый файл `result.jpg` сохранится в ту же директорию, в которой находится проект. - -:::warning **Обратите внимание.** -Проект должен быть сохранён на компьютере для использовании переменной `{-Project.Directory-}`, иначе она будет пустой. -::: -_______________________________________________ -### Пример со скриптом на Python. -:::tip Для работы данного примера в системе должен быть установлен Python. -::: - -При поиске решения в интернете для той или иной задачи можно найти скрипты написанные на разных языках программирования. Можно, конечно, полностью переписать код скрипта и запустить его с помощью соответствующего экшена. Но чаще удобнее запустить скрипт непосредственно через экшен **Запуск программы* и сразу воспользоваться результатом его работы. - -![Как работать с экшеном?](./assets/RunningPrograms/RunningPrograms_pic9.png) - -**Исполняемый файл**: `C:\Users\user\AppData\Local\Programs\Python\Python38-32\python.exe`. - -**Параметры запуска**: `C:\ZD\my_sript.py` и два аргумента: `12 11`. - -**Результат**: `132` запишется в переменную `result`. - -В этом примере скрипт лежит в `C:\ZD\my_sript.py`. На входе он принимает два числа и умножает их друг на друга. Затем ответ возвращается в консоль. - -В вашем случае скрипт может генерировать изображения или текст. Также он может содержать нейросеть для разгадывания капчи. В общем, все что угодно. - diff --git a/docs/Project Editor/CustomCode/_category_.json b/docs/Project Editor/CustomCode/_category_.json deleted file mode 100644 index f25e9dec..00000000 --- a/docs/Project Editor/CustomCode/_category_.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "label": "Свой код", - "position": 7, - "link": { - "type": "generated-index", - "title": "Написание кода в ZD" - } - } - \ No newline at end of file diff --git a/docs/Project Editor/CustomCode/assets/C/C_pic1.png b/docs/Project Editor/CustomCode/assets/C/C_pic1.png deleted file mode 100644 index 417cb6df..00000000 Binary files a/docs/Project Editor/CustomCode/assets/C/C_pic1.png and /dev/null differ diff --git a/docs/Project Editor/CustomCode/assets/C/C_pic10.png b/docs/Project Editor/CustomCode/assets/C/C_pic10.png deleted file mode 100644 index 9ca8ac7a..00000000 Binary files a/docs/Project Editor/CustomCode/assets/C/C_pic10.png and /dev/null differ diff --git a/docs/Project Editor/CustomCode/assets/C/C_pic11.png b/docs/Project Editor/CustomCode/assets/C/C_pic11.png deleted file mode 100644 index c87989c0..00000000 Binary files a/docs/Project Editor/CustomCode/assets/C/C_pic11.png and /dev/null differ diff --git a/docs/Project Editor/CustomCode/assets/C/C_pic12.png b/docs/Project Editor/CustomCode/assets/C/C_pic12.png deleted file mode 100644 index bf86c2aa..00000000 Binary files a/docs/Project Editor/CustomCode/assets/C/C_pic12.png and /dev/null differ diff --git a/docs/Project Editor/CustomCode/assets/C/C_pic13.png b/docs/Project Editor/CustomCode/assets/C/C_pic13.png deleted file mode 100644 index 73ceb558..00000000 Binary files a/docs/Project Editor/CustomCode/assets/C/C_pic13.png and /dev/null differ diff --git a/docs/Project Editor/CustomCode/assets/C/C_pic14.png b/docs/Project Editor/CustomCode/assets/C/C_pic14.png deleted file mode 100644 index 0abe671d..00000000 Binary files a/docs/Project Editor/CustomCode/assets/C/C_pic14.png and /dev/null differ diff --git a/docs/Project Editor/CustomCode/assets/C/C_pic15.png b/docs/Project Editor/CustomCode/assets/C/C_pic15.png deleted file mode 100644 index e7f300b4..00000000 Binary files a/docs/Project Editor/CustomCode/assets/C/C_pic15.png and /dev/null differ diff --git a/docs/Project Editor/CustomCode/assets/C/C_pic16.png b/docs/Project Editor/CustomCode/assets/C/C_pic16.png deleted file mode 100644 index 760a973a..00000000 Binary files a/docs/Project Editor/CustomCode/assets/C/C_pic16.png and /dev/null differ diff --git a/docs/Project Editor/CustomCode/assets/C/C_pic2.png b/docs/Project Editor/CustomCode/assets/C/C_pic2.png deleted file mode 100644 index 81d1135f..00000000 Binary files a/docs/Project Editor/CustomCode/assets/C/C_pic2.png and /dev/null differ diff --git a/docs/Project Editor/CustomCode/assets/C/C_pic3.png b/docs/Project Editor/CustomCode/assets/C/C_pic3.png deleted file mode 100644 index 996cad56..00000000 Binary files a/docs/Project Editor/CustomCode/assets/C/C_pic3.png and /dev/null differ diff --git a/docs/Project Editor/CustomCode/assets/C/C_pic4.png b/docs/Project Editor/CustomCode/assets/C/C_pic4.png deleted file mode 100644 index cd9f78c6..00000000 Binary files a/docs/Project Editor/CustomCode/assets/C/C_pic4.png and /dev/null differ diff --git a/docs/Project Editor/CustomCode/assets/C/C_pic5.png b/docs/Project Editor/CustomCode/assets/C/C_pic5.png deleted file mode 100644 index 61ad3bdd..00000000 Binary files a/docs/Project Editor/CustomCode/assets/C/C_pic5.png and /dev/null differ diff --git a/docs/Project Editor/CustomCode/assets/C/C_pic6.png b/docs/Project Editor/CustomCode/assets/C/C_pic6.png deleted file mode 100644 index c6f2eb88..00000000 Binary files a/docs/Project Editor/CustomCode/assets/C/C_pic6.png and /dev/null differ diff --git a/docs/Project Editor/CustomCode/assets/C/C_pic7.png b/docs/Project Editor/CustomCode/assets/C/C_pic7.png deleted file mode 100644 index b0f3f703..00000000 Binary files a/docs/Project Editor/CustomCode/assets/C/C_pic7.png and /dev/null differ diff --git a/docs/Project Editor/CustomCode/assets/C/C_pic8.png b/docs/Project Editor/CustomCode/assets/C/C_pic8.png deleted file mode 100644 index 4564ae69..00000000 Binary files a/docs/Project Editor/CustomCode/assets/C/C_pic8.png and /dev/null differ diff --git a/docs/Project Editor/CustomCode/assets/C/C_pic9.png b/docs/Project Editor/CustomCode/assets/C/C_pic9.png deleted file mode 100644 index 6a54ec6b..00000000 Binary files a/docs/Project Editor/CustomCode/assets/C/C_pic9.png and /dev/null differ diff --git a/docs/Project Editor/CustomCode/assets/Directives_Using/Directives_Using_pic1.png b/docs/Project Editor/CustomCode/assets/Directives_Using/Directives_Using_pic1.png deleted file mode 100644 index a4566754..00000000 Binary files a/docs/Project Editor/CustomCode/assets/Directives_Using/Directives_Using_pic1.png and /dev/null differ diff --git a/docs/Project Editor/CustomCode/assets/Directives_Using/Directives_Using_pic2.png b/docs/Project Editor/CustomCode/assets/Directives_Using/Directives_Using_pic2.png deleted file mode 100644 index 2f562148..00000000 Binary files a/docs/Project Editor/CustomCode/assets/Directives_Using/Directives_Using_pic2.png and /dev/null differ diff --git a/docs/Project Editor/CustomCode/assets/Directives_Using/Directives_Using_pic3.png b/docs/Project Editor/CustomCode/assets/Directives_Using/Directives_Using_pic3.png deleted file mode 100644 index 32dd08a9..00000000 Binary files a/docs/Project Editor/CustomCode/assets/Directives_Using/Directives_Using_pic3.png and /dev/null differ diff --git a/docs/Project Editor/CustomCode/assets/Directives_Using/Directives_Using_pic4.png b/docs/Project Editor/CustomCode/assets/Directives_Using/Directives_Using_pic4.png deleted file mode 100644 index ecd1da2d..00000000 Binary files a/docs/Project Editor/CustomCode/assets/Directives_Using/Directives_Using_pic4.png and /dev/null differ diff --git a/docs/Project Editor/CustomCode/assets/GAC_reference/GAC_reference_pic1.png b/docs/Project Editor/CustomCode/assets/GAC_reference/GAC_reference_pic1.png deleted file mode 100644 index a78b05ac..00000000 Binary files a/docs/Project Editor/CustomCode/assets/GAC_reference/GAC_reference_pic1.png and /dev/null differ diff --git a/docs/Project Editor/CustomCode/assets/GAC_reference/GAC_reference_pic2.png b/docs/Project Editor/CustomCode/assets/GAC_reference/GAC_reference_pic2.png deleted file mode 100644 index b266785b..00000000 Binary files a/docs/Project Editor/CustomCode/assets/GAC_reference/GAC_reference_pic2.png and /dev/null differ diff --git a/docs/Project Editor/CustomCode/assets/GAC_reference/GAC_reference_pic3.png b/docs/Project Editor/CustomCode/assets/GAC_reference/GAC_reference_pic3.png deleted file mode 100644 index 1925eb7b..00000000 Binary files a/docs/Project Editor/CustomCode/assets/GAC_reference/GAC_reference_pic3.png and /dev/null differ diff --git a/docs/Project Editor/CustomCode/assets/GAC_reference/GAC_reference_pic4.png b/docs/Project Editor/CustomCode/assets/GAC_reference/GAC_reference_pic4.png deleted file mode 100644 index d01e3616..00000000 Binary files a/docs/Project Editor/CustomCode/assets/GAC_reference/GAC_reference_pic4.png and /dev/null differ diff --git a/docs/Project Editor/CustomCode/assets/GAC_reference/GAC_reference_pic5.png b/docs/Project Editor/CustomCode/assets/GAC_reference/GAC_reference_pic5.png deleted file mode 100644 index 437aa79b..00000000 Binary files a/docs/Project Editor/CustomCode/assets/GAC_reference/GAC_reference_pic5.png and /dev/null differ diff --git a/docs/Project Editor/CustomCode/assets/JS/JS_pic1.png b/docs/Project Editor/CustomCode/assets/JS/JS_pic1.png deleted file mode 100644 index 5ab38e5d..00000000 Binary files a/docs/Project Editor/CustomCode/assets/JS/JS_pic1.png and /dev/null differ diff --git a/docs/Project Editor/CustomCode/assets/JS/JS_pic2.png b/docs/Project Editor/CustomCode/assets/JS/JS_pic2.png deleted file mode 100644 index 01ed4539..00000000 Binary files a/docs/Project Editor/CustomCode/assets/JS/JS_pic2.png and /dev/null differ diff --git a/docs/Project Editor/CustomCode/assets/JS/JS_pic3.png b/docs/Project Editor/CustomCode/assets/JS/JS_pic3.png deleted file mode 100644 index 62ba5872..00000000 Binary files a/docs/Project Editor/CustomCode/assets/JS/JS_pic3.png and /dev/null differ diff --git a/docs/Project Editor/CustomCode/assets/JS/JS_pic4.png b/docs/Project Editor/CustomCode/assets/JS/JS_pic4.png deleted file mode 100644 index ddc61815..00000000 Binary files a/docs/Project Editor/CustomCode/assets/JS/JS_pic4.png and /dev/null differ diff --git a/docs/Project Editor/CustomCode/assets/JS/JS_pic5.png b/docs/Project Editor/CustomCode/assets/JS/JS_pic5.png deleted file mode 100644 index 8ade2792..00000000 Binary files a/docs/Project Editor/CustomCode/assets/JS/JS_pic5.png and /dev/null differ diff --git a/docs/Project Editor/CustomCode/assets/RunningPrograms/RunningPrograms_pic1.png b/docs/Project Editor/CustomCode/assets/RunningPrograms/RunningPrograms_pic1.png deleted file mode 100644 index 8ff2d01f..00000000 Binary files a/docs/Project Editor/CustomCode/assets/RunningPrograms/RunningPrograms_pic1.png and /dev/null differ diff --git a/docs/Project Editor/CustomCode/assets/RunningPrograms/RunningPrograms_pic2.png b/docs/Project Editor/CustomCode/assets/RunningPrograms/RunningPrograms_pic2.png deleted file mode 100644 index ac2ba13c..00000000 Binary files a/docs/Project Editor/CustomCode/assets/RunningPrograms/RunningPrograms_pic2.png and /dev/null differ diff --git a/docs/Project Editor/CustomCode/assets/RunningPrograms/RunningPrograms_pic3.png b/docs/Project Editor/CustomCode/assets/RunningPrograms/RunningPrograms_pic3.png deleted file mode 100644 index 9b2bc8d7..00000000 Binary files a/docs/Project Editor/CustomCode/assets/RunningPrograms/RunningPrograms_pic3.png and /dev/null differ diff --git a/docs/Project Editor/CustomCode/assets/RunningPrograms/RunningPrograms_pic4.png b/docs/Project Editor/CustomCode/assets/RunningPrograms/RunningPrograms_pic4.png deleted file mode 100644 index c4190212..00000000 Binary files a/docs/Project Editor/CustomCode/assets/RunningPrograms/RunningPrograms_pic4.png and /dev/null differ diff --git a/docs/Project Editor/CustomCode/assets/RunningPrograms/RunningPrograms_pic5.png b/docs/Project Editor/CustomCode/assets/RunningPrograms/RunningPrograms_pic5.png deleted file mode 100644 index 495791c3..00000000 Binary files a/docs/Project Editor/CustomCode/assets/RunningPrograms/RunningPrograms_pic5.png and /dev/null differ diff --git a/docs/Project Editor/CustomCode/assets/RunningPrograms/RunningPrograms_pic6.png b/docs/Project Editor/CustomCode/assets/RunningPrograms/RunningPrograms_pic6.png deleted file mode 100644 index 28011b05..00000000 Binary files a/docs/Project Editor/CustomCode/assets/RunningPrograms/RunningPrograms_pic6.png and /dev/null differ diff --git a/docs/Project Editor/CustomCode/assets/RunningPrograms/RunningPrograms_pic7.png b/docs/Project Editor/CustomCode/assets/RunningPrograms/RunningPrograms_pic7.png deleted file mode 100644 index 722ca230..00000000 Binary files a/docs/Project Editor/CustomCode/assets/RunningPrograms/RunningPrograms_pic7.png and /dev/null differ diff --git a/docs/Project Editor/CustomCode/assets/RunningPrograms/RunningPrograms_pic8.png b/docs/Project Editor/CustomCode/assets/RunningPrograms/RunningPrograms_pic8.png deleted file mode 100644 index 44f42fbf..00000000 Binary files a/docs/Project Editor/CustomCode/assets/RunningPrograms/RunningPrograms_pic8.png and /dev/null differ diff --git a/docs/Project Editor/CustomCode/assets/RunningPrograms/RunningPrograms_pic9.png b/docs/Project Editor/CustomCode/assets/RunningPrograms/RunningPrograms_pic9.png deleted file mode 100644 index 42344ef0..00000000 Binary files a/docs/Project Editor/CustomCode/assets/RunningPrograms/RunningPrograms_pic9.png and /dev/null differ diff --git "a/docs/Project Editor/CustomCode/\320\241.mdx" "b/docs/Project Editor/CustomCode/\320\241.mdx" deleted file mode 100644 index d370abbb..00000000 --- "a/docs/Project Editor/CustomCode/\320\241.mdx" +++ /dev/null @@ -1,299 +0,0 @@ ---- -sidebar_position: 1 -title: C# код -description: Код на C# в ZennoDroid. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../../Disclaimer).** -::: -_______________________________________________ -## Описание. -С помощью этого экшена можно вставлять в проект куски кода, которые написаны на языке программирования C#. Тем самым функционал ZennoDroid заметно расширяется, как и область его использования. - -Хоть C# — это и объектно-ориентированный язык, но в данном экшене не используются некоторые преимущества такого подхода. Например, классы и наследования. Код будет исполняться последовательно за исключением использования классов и публичных переменных из ***Директив Using и общего кода***. - -#### Где можно применить: -- Практически любые действия кубиков можно заменить через C#. При этом ускоряется разработка и эффективность с помощью выполнения кода. -- Использование любых разработок на C# в своём проекте. -- Интеграция сторонних библиотек и применение их в коде. - -_______________________________________________ -## Как добавить в проект? -Через контекстное меню: **Добавить действие → Свой код → C# код**. - -![Как добавить в проект?](./assets/C/C_pic1.png) -_______________________________________________ -## Как работать с экшеном? -Кубик **C# код** представляет собой обычный текстовый редактор с базовой подсветкой кода. - -В него можно передавать любые переменные проекта, а результат сохранять в текстовом файле, таблице, базе данных или также в переменной. - -Для использования методов и свойств проекта используется сущность `project`. Например, если вы хотите вставить переменную проекта в код, то вызывать ее нужно так: `project.Variables["counter"].Value`, где `counter` — имя переменной. -_______________________________________________ -### Контекстное меню. -Нажав ПКМ по полю ввода в свойствах действия, вы откроете контекстное меню. - -![Контекстное меню](./assets/C/C_pic2.png) -_______________________________________________ -#### Отменить/Повторить. -Отменяет последнее изменение в коде. Однако если это было сделано случайно, то можно повторить отмененный ввод. - -Данные действия работают только в коде окна C# и не вызывают изменений в других кубиках. Для аналогичной функции с другими кубиками нужно зайти в раздел **Редактирование** на верхней панели ProjectMaker. -_______________________________________________ -#### Вырезать\Копировать\Вставить\Удалить. -Стандартные действия по работе с кодом как с текстом. -_______________________________________________ -#### Закомментировать\Отменить комментирование. -Добавляет к выделенному коду символы `//`, превращая его в комментарий. То есть эти строки будут отключены из общего выполнения. - -Это особенно полезно при работе над большими проектами или для отладки кода. В комментариях также можно разместить информацию об изменениях, связях или функционале. -_______________________________________________ -#### Нумерация строк. -![Нумерация строк](./assets/C/C_pic3.png) - -Включает/отключает числовое обозначение строк. Помогает в быстрой навигации по коду, а также для нахождения ошибок по информации из лога. - -На небольших проектах нумерацию можно отключить, чтобы расширить рабочее пространство. - -
-**В настройках ProjectMaker можно задать поведение по умолчанию.** - - - ![Нумерация строк](./assets/C/C_pic4.png) -
-_______________________________________________ -#### Перенос строк. -Включает автоматический перенос строк, если в текущем окне не хватает места. -| ![Настройка выключена](./assets/C/C_pic5.png) |![Настройка включена](./assets/C/C_pic6.png) | -|:--:| :--:| -| *Настройка выключена* | *Настройка включена* | - -
-**В настройках ProjectMaker можно задать поведение по умолчанию.** - - - ![Перенос строк](./assets/C/C_pic7.png) -
-_______________________________________________ -#### Перейти к строке. -Позволяет быстро показать необходимую строку, введя номера линии и столбца в открывшемся диалоговом окне. - -![Перейти к строке](./assets/C/C_pic8.png) - -Используется для поиска ошибочного участка кода по информации из лога. -_______________________________________________ -#### Поиск. -Открывает окно поиска по коду этого экшена. Искать можно с учетом параметров: -- *С учетом регистра*; -- *Слово целиком*; -- *Искать назад*; -- *Использовать: Регулярные выражения или Знаки подстановки*; - -![Поиск](./assets/C/C_pic9.png) - -После нажатия на кнопку *Найти далее* курсор переходит на первое найденное значение. Повторное нажатие переводит курсор на следующее найденное значение и т. д. -_______________________________________________ -#### Замена. -Похоже на **Поиск**, но сразу после нахождения искомого значения производится его замена на введенное значение. - -![Замена](./assets/C/C_pic10.png) - -Работать может в пошаговом режиме, либо сразу *Заменить все* найденные вхождения. -_______________________________________________ -#### Вставить C# сниппет. -В место, где сейчас находится курсор, будет вставлено всё содержимое выбранного файла. - -![Вставить C# сниппет](./assets/C/C_pic11.png) - -Изначально этот пункт меню не отображается. Чтобы он появился, надо в ***Директорию C# сниппетов*** добавить хотя бы один файл. - -![Директорию C# сниппетов](./assets/C/C_pic12.png) - -Сохранить фрагмент кода в файл, например, можно с помощью функции **Сохранить в C# сниппет** (описано ниже). -Файлы в директории можно помещать в папки и таким образом удобно их группировать. -_______________________________________________ -#### Сохранить в C# сниппет. -Позволяет сохранять выделенный фрагмент кода в TXT-файл. Этот сниппет можно быстро использовать в дальнейшем и вставлять в другие проекты. -_______________________________________________ -#### Установить значение из переменной. -При наведении курсора на этот пункт открывается список всех ***Своих*** и ***Авто-сгенерированных*** переменных проекта. - -![Установить значение из переменной](./assets/C/C_pic13.png) - -Выбрав нужную переменную в редакторе появляется конструкция вида `project.Variables["myVar"].Value`. Это значение всегда имеет строковый тип (string), и для его использовании в качестве других типов необходима конвертация. -_______________________________________________ -### Не возвращать значение. -После отключения этого чекбокса результат выполнения кода будет передан с помощью оператора `return`. -_______________________________________________ -### Положить результат в переменную. -Если отключен предыдущий чекбокс, то результат выполнения `return` можно сохранить в любую переменную. - -:::info **Каждая строка C# обязательно должна заканчиваться символом `;` .** -Это помогает компилятору определить, где заканчивается строка. Без этого символа проект просто выдаст ошибку на этапе запуска. -::: -_______________________________________________ -## Настройки по умолчанию. -В настройках программы есть блок настроек специально для кубика **C#**. Выше мы уже упоминали некоторые из них. - -![Настройки по умолчанию](./assets/C/C_pic14.png) -_______________________________________________ -## Конвертация экшенов в код. -В ZennoDroid есть функция, которая позволяет новичкам быстро освоиться с C#. Некоторые из экшенов можно конвертировать в код и дальше работать с ним, как если бы это был кубик. - -Вам нужно **нажать на необходимый кубик ПКМ → Конвертировать в C# → вставить скопированный код в поле кубика C#**. - -![Конвертация экшенов в код](./assets/C/C_pic15.png) -_______________________________________________ -## Отладка C#. -В сложных и больших фрагментах C# иногда бывает сложно быстро найти ошибку. Поэтому необходима отладка (debug) C# кода с пошаговым мониторингом изменения переменных и данных в списках, таблицах и базах данных. Каждый экшен C# можно отладить в Project Maker с помощью установки одной или нескольких точек останова. - -![Отладка C#](./assets/C/C_pic16.png) - -Для добавления точки останова нужно кликнуть в поле слева от редактора кода напротив нужной строки. Нажатием *Далее* запускаем исполнение кубика. Можно проверять работу кода по шагам или до следующей точки останова с помощью кнопок над редактором. Смотрим изменения в ***Окне переменных*** и эффективно исправляем ошибки. -_______________________________________________ -## Примеры использования. -Обучение программированию на C# выходит за рамки данной документации. Однако мы можем дать несколько советов и показать практические примеры, которые часто используют пользователи ZennoDroid при работе с C#. -_______________________________________________ -### Арифметические действия с целыми числами. -```C -int value1 = Convert.ToInt32(project.Variables["value1"].Value); -int value2 = Convert.ToInt32(project.Variables["value2"].Value); -int value3 = value1 + value2; //или value1 - value2 или value1 * value2 и т. д. -return value3.ToString(); //сумма двух чисел -``` -_______________________________________________ -### Округление результата деления. -```C -float value1 = Convert.ToSingle(project.Variables["value1"].Value); -float value2 = Convert.ToSingle(project.Variables["value2"].Value); -return Math.Ceiling(value1/value2); // округление в большую сторону -//или -return Math.Ground(value1/value2); // округление в меньшую сторону -``` -_______________________________________________ -### Создание списка со случайными числами от 1 до 10. -:::tip **В этом примере ключевое слово `var` ссылается на тип неявным способом.** -Это любой псевдоним, а реальный тип определит компилятор C#. -::: - -```C -var list = project.Lists["numbers"];//обращаемся к списку списков проекта для получения сущности одного из них. -list.Clear();//очищаем список перед заполнением -int value;//объясляем цельночисленную переменную -List tempList = new List ();//создаём новый список из строк, но этот список существует только в рамках этого экшена и будет уничтожен после выполнения экшена -for (int i = 0; i < 10; i++) {//цикл из 10 иттераций - value = i;//присваиваем значение счетчика цикла чтобы не имзменять его - value++;//увеличиваем на 1 значение переменной - tempList.Add(value.ToString());//добавляем во временный список строковое значение числа -}//повторяем так 10 раз -tempList.Shuffle();//перемешиваем список -list.AddRange(tempList);//добавляем в результирующий список перемешанный список чисел от 1 до 10 -``` -:::info **Обратите внимание, в этом примере экшен C# ничего не возвращает, в отличии от двух примеров выше.** -Здесь результат работы сохраняется в списке, а не с помощью оператора возврата `return` попадает в указанную кубиком переменную. -::: -_______________________________________________ -### Получение случайной строки из файла с доступами к аккаунтам и разделение её на логин и пароль. -Ключевое слово **null** является литералом, представляющим пустую ссылку, которая не ссылается на объект. А оператор `return` можно использовать для возврата **null**. При этом экшен C# выйдет по красной линии и это бывает удобно при создании взаимосвязей с другими кубиками. - -```C -IZennoList list = project.Lists["accounts"];//получаем список с привязанным TXT-файлом в котором построчно хранятся доступы в формате логин:пароль -if (list.Count== 0) return null;//Если список пустой, то выходим из кубика по красной линии -Random rnd = new Random();//создаем генератор случайных чискел -string str = list[rnd.Next(0, list.Count)];//вычисляем случайное чисто от 0 до количества элементов списка (не включительно) и назначаем значение найденного индекса строковой переменной -string [] arr = str.Split(':');//формируем массив строк разделяя переменную с помощью делимера : -project.Variables["login"].Value = arr[0];//берем первый элемент массива, который является логином (индесы массивов, списков всегда начинаются с 0) и присваиваем это значение переменной login -project.Variables["password"].Value = arr[1];//второй элемент массива будет паролем -``` - -В этом примере мы выводим предупреждение при пустом списке аккаунтов и заполняем пустой список из TXT новыми доступами. -Тоже самое можно выполнить с помощью метода `project.SendInfoToLog("Пустой список", true);`. -_______________________________________________ -### Работа с файлами: получение разрешения (ширина x высота) изображения. -```C -Image img = Image.FromFile(project.Directory + @"/temp.jpg");//получаем изображение из файла -int width = img.Width;//получаем ширину картинки -int height = img.Height;//и высоту -return width.ToString() + "х"+ height.ToString();//формируем строку с данными -``` -:::info **Символ `@` означает, что компилятор будет использовать строку за ним буквально, а не как escape-последовательность.** -Если убрать этот символ, то для корректной работы кода в пути пришлось бы ставить двойной слэш вместо одинарного. -::: -_______________________________________________ -### Работа с OwnCode и с изображениями: наложение полупрозрачного “водяного знака” по центру. -На практике часто требуется вывести некоторые функции на C# в отдельное место и обращаться к ним из разных экшенов. С этим поможет ***OwnCode (свой код)***. В этот класс можно вставить функцию, которая будет доступна из кубиков. Она может принимать параметры (аргументы) и возвращать результаты вычислений. - -```C -Image original = Image.FromFile(project.Directory + @"/image.jpg");//исходная картинка на которую нужно наложить водяной знак - -int w = original.Width;//азмеры исходной картинки -int h = original.Height; - -int w_wm = (int) w/10;//ширина водяного знака, в данном случае эта ширина составляет 10 исходной картинки - -Image wm = OwnCode.CommonCode.SetImageOpacity(Image.FromFile(project.Directory + @"/wm.png"), .5F);//в одной строке получаем изображение из файла и обрабатываем его (накладываем эффект полупрозрачности) с помощью функции SetImageOpacity, которая находится в классе общего кода -float scale = (float)wm.Height / wm.Width; //пропорции водяного знака -int h_wm = (int) (w_wm * scale);//вычисляем новую высоту водяного знака в зависимости от новой ширины и пропорций -int x = (int) (w/2 - w_wm/2);//позиция x водяного знака (середина основной картинки минус середина новой ширины водяного знака) -int y = (int) (h/2 - h_wm/2);//позиция y водяного знака - -Graphics gr = Graphics.FromImage(original);//создаём графический объект из исходкого изображения -gr.DrawImage(wm, x, y, w_wm, h_wm);//рисуем поверх исходной картинки водяной знак с вычисленными ранее координатами и новыми размерами - -original.Save(project.Directory + @"/image_result.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);//сохраняем картинку в формате JPEG по указанному пути -original.Dispose();//уничтожаем объекты, которые уже не нужны, чтобы они не занимали память -wm.Dispose(); -gr.Dispose(); -``` - -В данном примере создаётся функция `SetImageOpacity`. На входе она принимает изображение вместе со значением для изменения прозрачности, а на выходе отправляет измененное изображение. Эта функция требует `using System.Drawing.Imaging;` - -А дальше используем функцию `SetImageOpacity`, которую нужно вставить в классе `OwnCode.CommonCode`. - -```C -using System.Drawing.Imaging; -public static Image SetImageOpacity(Image image, float opacity) -{ - try { - Bitmap bmp = new Bitmap(image.Width, image.Height); - //создание графики из картинки - using (Graphics gfx = Graphics.FromImage(bmp)) { - //создание объекта color matrix - ColorMatrix matrix = new ColorMatrix(); - //установка прозрачности - matrix.Matrix33 = opacity; - //создание новых атрибутов - ImageAttributes attributes = new ImageAttributes(); - //установка цвета прозрачности картинки - attributes.SetColorMatrix(matrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); - //отрисовываем картинку - gfx.DrawImage(image, new Rectangle(0, 0, bmp.Width, bmp.Height), 0, 0, image.Width, image.Height, GraphicsUnit.Pixel, attributes); - } - return bmp; - } - catch (Exception ex) - { - return null; - } -} -``` -_______________________________________________ -### Работа с Regex. -С помощью регулярных выражений в C# можно: -- *парсить данные*; -- *находить нужные значения*; -- *обрабатывать и присваивать переменные*; -- *очищать тексты от мусора*. - -В примере ниже мы очистим от всех тегов HTML-содержимое некоторого элемента. -```C -string html = project.Variables["value1"].Value;//присваиваем значение переменной где содержится исходный код элемента -return Regex.Replace(html, @"<.*?>", String.Empty);//заменяем HTML-теги на пустоту и возвращаем результат -``` -_______________________________________________ -### Работа с макросами. -С помощью объекта `Macros` можно получить доступ ко множеству функций для работы с файловой системой или для обработки текстов. Например, можно в C# организовать обработку `Spintax`, аналогичную соответствующему кубику. -```C -return Macros.TextProcessing.Spintax("{0|1|2}");//случайно выведет одно из трёх значений -``` - - diff --git a/docs/Project Editor/GetProxy.mdx b/docs/Project Editor/GetProxy.mdx deleted file mode 100644 index 9933130c..00000000 --- a/docs/Project Editor/GetProxy.mdx +++ /dev/null @@ -1,36 +0,0 @@ ---- -sidebar_position: 2 -title: Получить прокси -description: Получить прокси ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ - -В ZennoDroid вы можете использовать сторонний прокси-сервер для работы с приложениями во время выполнения проекта. Данный экшен подходит для получения значений из Proxychecker. -_______________________________________________ -## Как добавить в проект? -Через контекстное меню: **Добавить действие → Проксичекер → Получить прокси**. - -![Как добавить в проект?](./assets/GetProxy/GetProxy_pic1.png) -_______________________________________________ -## Как работать с экшеном? -![Как добавить в проект?](./assets/GetProxy/GetProxy_pic2.png) - -### Взять по правилу. -На выбор доступно несколько вариантов: -- **Без правил**; -- **Anonymous/Anonymous (HTTPS)**; -- **Google passed with Captcha**; -- **Google passed**; -- **Elite/Elite (HTTPS)**; -- **Socks**. - -Редактировать эти правила нужно через Proxychecker. - -При выборе варианта ***Без правил*** прокси будут браться по очередности. - -А опция **Удалять прокси из живого списка** удаляет прокси-сервер из списка после получения. - -Полученное прокси также можно **Положить в переменную**. -На скриншоте выше это `{-Variable.taken_proxy-}`. diff --git a/docs/Project Editor/HTTP and FTP/FTP_Connect.mdx b/docs/Project Editor/HTTP and FTP/FTP_Connect.mdx deleted file mode 100644 index 50a8c5da..00000000 --- a/docs/Project Editor/HTTP and FTP/FTP_Connect.mdx +++ /dev/null @@ -1,56 +0,0 @@ ---- -sidebar_position: 6 -title: Соединение FTP -description: Настройки FTP соединения. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../../Disclaimer).** -::: -_______________________________________________ -### Как создать? -Создать новое FTP-соединение можно из контекстного меню: -**Добавить действие → FTP → соединение FTP** - -![Как добавить в проект?](./assets/FTP_Connect/FTP_Connect_pic1.png) - -или через ***Панель статических блоков***: - -![через](./assets/FTP_Connect/FTP_Connect_pic2.png) -_______________________________________________ -## Как работать? -![через](./assets/FTP_Connect/FTP_Connect_pic3.png) - -### Доступные настройки. -![через](./assets/FTP_Connect/FTP_Connect_pic4.png) - -#### Выбор типа протокола передачи. -Нажатием на самое верхнее поле можно вызвать список доступных протоколов: -- **FTP (File Transfer Protocol).** -Cтандартный протокол, который предназначен для передачи файлов. -- **FTPs (FTP + SSL).** -Защищённый протокол передачи файлов. -- **sFTP (SSH(Secure Shell) + FTP).** -Протокол для операций с файлами поверх надёжного и безопасного соединения. - -#### Сервер (обязательно). -Здесь указываем имя FTP-сервера. - -#### Порт (обязательно). -Нужно указать порт FTP соединения. По умолчанию указано `21`. - -#### Логин и Пароль. -Данные для авторизации к соединению. Их можно не использовать, если это позволяет сервер. - -#### Активный режим. -Ставим здесь галочку, если нужно использовать активный режим работы FTP. -:::info **Основная особенность активного режима** -В том, что именно *сервер инициирует соединение* для передачи данных. -Это может вызывать проблемы, если у вас включен Firewall или NAT, которые блокируют входящие соединения. -::: - -#### Прокси. -Можно оставить режим *Без прокси*, либо выбрать между: -- *Строка формата protocol://login:pass@ip:port*; -- *Другой*. - -В режиме *Другой* можно вставить прокси в любом формате, указав в полях необходимую информацию. -Адрес, порт и данные авторизации берутся у поставщика услуг. \ No newline at end of file diff --git a/docs/Project Editor/HTTP and FTP/FTP_Dir.mdx b/docs/Project Editor/HTTP and FTP/FTP_Dir.mdx deleted file mode 100644 index 0dd47353..00000000 --- a/docs/Project Editor/HTTP and FTP/FTP_Dir.mdx +++ /dev/null @@ -1,64 +0,0 @@ ---- -sidebar_position: 5 -title: Директории FTP -description: Работа с директориями на FTP сервере. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../../Disclaimer).** -::: -_______________________________________________ -Данный экшен позволяет вам работать с директориями, а именно: -- ***Скачать** директорию с файлами данных проекта, которая находится на FTP-сервере;* -- ***Загрузить** директорию с данными проекта на FTP-сервер;* -- ***Удалить** директорию с файлами из сервера;* -- ***Получить** список рабочих файлов, которые находятся в определенной директории;* -- ***Переименовать** директорию на сервере.* -_______________________________________________ -### Как добавить в проект? -Через контекстное меню: **Добавить действие → FTP → файлы FTP**. - -![Как добавить в проект?](./assets/FTP_Dir/FTP_Dir_pic1.png) -_______________________________________________ -## Как работать с экшеном? -![Как работать с экшеном?](./assets/FTP_Dir/FTP_Dir_pic2.png) -_______________________________________________ -### Доступные варианты действий: -![варианты действий](./assets/FTP_Dir/FTP_Dir_pic3.png) -#### Загрузить директорию с сервера. -Позволяет скачать директорию с сервера на свой компьютер. - -#### Загрузить директорию на сервер. -Загружает директорию с вашего компьютера на сервер. - -#### Удалить директорию на сервере. -Удаляет директорию с сервера. Необходимо указать к ней путь. - -#### Переименовать директорию на сервере. -Нужен для изменения имени директории на сервере. Указываем путь к директории и ее новое имя. - -#### Получить список файлов. -Используется для получения списка файлов, содержащихся в определённой директории на сервере. -Необходимо указать список, в который будут сохраняться имена файлов. -_______________________________________________ -### Доступные настройки: -![Доступные настройки](./assets/FTP_Dir/FTP_Dir_pic4.png) - -- **Путь на сервере**. -Путь к нужной директории на сервере. -- **Локальный путь**. -Путь на личном компьютере, куда сохранится скачанная директория. -- **Обрабатывать поддиректории**. -При работе будут учитываться поддиректории, если они есть в основной директории. -- ***Включать имена директорий***. - *(Дополнительная настройка для* **Получить список файлов**). - Включает в итоговый список файлов имена директорий. -- **Тип пути**. -Относительный (относительно текущей папки) или абсолютный (от корня системы) путь на сервере. -_______________________________________________ -## Пример использования. -![Пример использования](./assets/FTP_Dir/FTP_Dir_pic5.png) -### Скачиваем папку с файлами. -**1.** Проверяем есть ли файлы в директории на FTP сервере. -**2.** Если директория не пустая, то скачиваем ее для дальнейшей работы. -**3.** Получаем список файлов. -**4.** Если строк в списке больше 0, то скачиваем все файлы с FTP-сервера и работаем с ними. -**5.** Когда строки заканчиваются, выводим уведомление об этом и завершаем работу. diff --git a/docs/Project Editor/HTTP and FTP/FTP_Files.mdx b/docs/Project Editor/HTTP and FTP/FTP_Files.mdx deleted file mode 100644 index 45244a03..00000000 --- a/docs/Project Editor/HTTP and FTP/FTP_Files.mdx +++ /dev/null @@ -1,65 +0,0 @@ ---- -sidebar_position: 4 -title: Файлы FTP -description: Работа с файлами на FTP сервере. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../../Disclaimer).** -::: -_______________________________________________ -В ZennoDroid есть встроенные возможности для работы с FTP-ресурсами. Вы можете автоматически загружать файлы на FTP-сервер, создавать и удалять директории, а так же производить другие операции. Это удобно, когда файлы ваших проектов хранятся на FTP-сервере. - -Данный экшен позволяет вам работать с файлами, а именно: -- ***Загрузить один** файл С или НА сервер;* -- ***Загрузить несколько** файлов С или на сервер;* -- ***Удалить** один или несколько файлов с сервера;* -- ***Переименовать** файл на сервере.* -_______________________________________________ -### Как добавить в проект? -Через контекстное меню: **Добавить действие → FTP → файлы FTP**. - -![Как добавить в проект?](./assets/FTP_Files/FTP_Files_pic1.png) -_______________________________________________ -## Как работать с экшеном? -![Как работать с экшеном?](./assets/FTP_Files/FTP_Files_pic2.png) -_______________________________________________ -### Доступные варианты действий: -![варианты действий](./assets/FTP_Files/FTP_Files_pic3.png) -#### Загрузить файл с сервера. -Позволяет скачать файл с сервера на свой компьютер. - -#### Загрузить файл на сервер. -Загружает файл с вашего компьютера на сервер. - -#### Загрузить файлы с сервера. -Нужен для скачивания нескольких файлов с сервера на компьютер. -Пути к файлам указываются в ***Списке***. За один проход экшена берется только одна строка с путем из списка. - -#### Загрузить файлы на сервер. -Используется для загрузки нескольких файлов с компьютера на сервер. -Пути к файлам указываются в ***Списке***. За один проход экшена берется только одна строка с путем из списка. - -#### Удалить файл на сервере. -Удаляет файл с сервера. Необходимо указать к нему путь. - -#### Переименовать файл на сервере. -Нужен для изменения имени файла на сервере. Указываем путь к файлу и его новое имя. -_______________________________________________ -### Доступные настройки: -![Доступные настройки](./assets/FTP_Files/FTP_Files_pic4.png) - -- **Путь на сервере**. -Путь к нужному файлу на сервере. -- **Локальный путь**. -Путь на личном компьютере, куда сохранится скачанный файл. -- **Тип пути**. -Относительный (относительно текущей папки) или абсолютный (от корня системы) путь на сервере. -_______________________________________________ -## Пример использования. -![Пример использования](./assets/FTP_Files/FTP_Files_pic5.png) -### Скачиваем файлы с FTP-сервера по списку. -Пути к файлам, которые нам нужно скачать, хранятся в списке. -**1.** Получаем количество строк из списка. -**2.** Если список не пустой, то скачиваем файл с FTP-сервера. -**3.** Затем удаляем строку, которая содержит путь к уже скачанному файлу. -**4.** Возвращаемся в начало цикла (к 1 шагу). -**5.** Как только строк в списке не останется, выводим оповещение о том, что все файлы скачаны. \ No newline at end of file diff --git a/docs/Project Editor/HTTP and FTP/GET.mdx b/docs/Project Editor/HTTP and FTP/GET.mdx deleted file mode 100644 index 21ebe563..00000000 --- a/docs/Project Editor/HTTP and FTP/GET.mdx +++ /dev/null @@ -1,248 +0,0 @@ ---- -sidebar_position: 1 -title: GET-запрос -description: Получение данных через GET-запросы ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../../Disclaimer).** -::: -_______________________________________________ - -В ZennoDroid вы можете использовать ***HTTP запросы*** при работе с различными сайтами. -Например, можно получать данные через **GET-запросы**: -- *запрашивать результаты из поисковой системы*, -- *скачивать файлы*, -- *парсить данные*, -- *запускать шаблоны без браузера*, -- *работать с API веб-сервисов и приложений*. -_______________________________________________ -### Как добавить в проект? -Через контекстное меню: **Добавить действие → HTTP → GET-запрос**. - -![Как добавить в проект?](./assets/GET/GET_pic1.png) -_______________________________________________ -## Вкладка «Основные» -![Вкладка «Основные»](./assets/GET/GET_pic2.png) -_______________________________________________ -### URL. -Целевой адрес сайта (ссылка), по которому будет отправлен запрос. *Можно использовать переменную*. -_______________________________________________ -### Referer. -Заголовок [**Referer**](https://developer.mozilla.org/ru/docs/Web/HTTP/Headers/Referer) используется для указания URL-адрес, с которого пользователь пришел на текущую страницу. Он помогает анализировать трафик и узнавать, с какого ресурса переходят чаще всего. - -:::warning **Заголовок *Referer* может раскрыть информацию об истории посещённых страниц, что может привести к нарушению приватности.** -::: -_______________________________________________ -### Кодировка. -Выбираем кодировку для запроса. -_______________________________________________ -### Таймаут. -Максимальное время ожидания ответа от сайта в секундах. -При достижении установленного времени, действие будет завершено ошибкой и выйдет по *красной ветке*. -Можно использовать макросы переменных. -_______________________________________________ -### Загружать. -#### Только содержимое. -В переменную будет сохранено только тело ответа. -
-**Пример ответа при запросе *https://httpbin.org/get*.** - - - ```JS - { - "args": {}, - "headers": { - "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9", - "Accept-Encoding": "gzip, deflate", - "Accept-Language": "en-US,en;q=0.8", - "Host": "httpbin.org", - "Referer": "https://google.com", - "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36", - "X-Amzn-Trace-Id": "Root=1-26erb44t-465basaw0z2qwbji492yh5t3" - }, - "origin": "1.2.3.4", - "url": "https://httpbin.org/get" - } - ``` -
- -#### Только заголовки. -Сохранятся только заголовки. -
-**Пример ответа при запросе *https://httpbin.org/get*.** - - - ```JS - HTTP/1.1 200 OK - Date: Sat, 23 May 2020 01:56:45 GMT - Content-Type: application/json - Content-Length: 613 - Connection: keep-alive - Server: gunicorn/19.9.0 - Access-Control-Allow-Origin: * - Access-Control-Allow-Credentials: true - ``` -
- -#### Заголовки и содержимое. -В переменную сохранятся и заголовок ответа, и его тело, разделенные двумя пустыми строками. -
-**Пример ответа при запросе *https://httpbin.org/get*.** - - - ```JS -HTTP/1.1 200 OK -Date: Sat, 23 May 2020 01:56:45 GMT -Content-Type: application/json -Content-Length: 613 -Connection: keep-alive -Server: gunicorn/19.9.0 -Access-Control-Allow-Origin: * -Access-Control-Allow-Credentials: true - - -{ - "args": {}, - "headers": { - "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9", - "Accept-Encoding": "gzip, deflate", - "Accept-Language": "en-US,en;q=0.8", - "Host": "httpbin.org", - "Referer": "https://google.com", - "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36", - "X-Amzn-Trace-Id": "Root=1-26erb44t-465basaw0z2qwbji492yh5t3" - }, - "origin": "1.2.3.4", - "url": "https://httpbin.org/get" -} - ``` -
- -#### Как файл. -Выбирайте этот режим, если нужно скачать файл с помощью запроса. -В переменную сохранится путь к скачанному файлу. - -:::info **По умолчанию файлы скачиваются в папку `Trash` в директории с программой.** -Путь может выглядеть так: -`C:\Program Files\ZennoLab\RU\ZennoPoster Pro V7\7.4.0.0\Progs\Trash\googlelogo_color_92x30dp.png` - -Изменить его можно в настройках, но только глобально для всех проектов. -::: - -#### Как файл + заголовки. -В переменную сохранятся заголовки ответа и путь к скачанному файлу. -_______________________________________________ -### Положить в переменную. -Здесь надо выбрать (или создать новую) переменную, в которую будет сохранён результат запроса. -_______________________________________________ -## Вкладка «Дополнительно». -![Вкладка «Дополнительно»](./assets/GET/GET_pic3.png) -_______________________________________________ -### Редирект. -Используется для установки перенаправления. Если ответ на запрос будет содержать *код редиректа*, то ZennoDroid перейдет к следующей странице, используя заголовок ***Location***. - -Здесь мы цифрами указываем максимальное количество переходов. К примеру, `0` — остаться на исходной странице, `5` — количество переходов до конечного URL. -_______________________________________________ -### Использовать оригинальный URL. -Когда эта опция включена, кодирование URL из вкладки «Основные» будет отменено. Пример: -- **URL по умолчанию (с кодированием)**: -`https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82%D1%81%D1%82%D0%B2%D0%B8%D0%B5` -- **Оригинальный URL**: -`https://ru.wikipedia.org/wiki/Приветствие` -_______________________________________________ -### Заголовки. -#### Использовать по умолчанию. -В запрос будут подставлены заголовки по умолчанию. Заголовок `Host` меняется в зависимости от адреса в запросе. - -
-**Пример ответа при запросе *https://httpbin.org/get*.** - - - ``` -Host: httpbin.org -User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0 -Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 -Accept-Encoding: gzip, deflate -Accept-Language: en-US,en;q=0.5 - ``` -
- -#### Текущий профиль. -Будут подставлены заголовки из текущего ***профиля проекта***. - -#### Загрузить из профиля. -Необходимо выбрать файл или указать переменную, содержащую путь до профиля, из которого будут загружены заголовки для запроса. - -#### Пользовательские настройки. -![Пользовательские настройки](./assets/GET/GET_pic5.png) - -Позволяет самостоятельно указать каждый параметр заголовка, следуя правилам: -- :warning: Первой **всегда указывается строка User-Agent!** И только потом все остальные заголовки. -- Каждый заголовок начинается с новой строчки. -- Можно указать *статичные значения*, *свои переменные* или *переменные профиля*. -_______________________________________________ -### Использовать CookieContainer. -С помощью этой опции можно синхронизировать куки с целым браузером или между отдельными запросами. Вам не понадобится вручную их парсить и подставлять. - -
-**Пример использования.** - - - Представим, что наш проект работает с сайтом, используя запросы. Для работы нужно быть авторизованным. При этом процесс авторизации крайне сложен для повторения его через запросы. Поэтому для входа на сайт используем браузерный режим. - - После авторизации ***отключаем браузер*** и начинаем работать с запросами. С включенной опцией **Использовать CookieContainer** куки будут автоматически синхронизированы между браузером и запросами, их не придется подставлять вручную. - - Если при одном из запросов сайт вернет новое значение кук, то оно автоматически синхронизируется с браузером и будет использовано в дальнейшем. -
-_______________________________________________ -### Сookie. -:::info **Данное поле ввода отображается только при отключении прошлой опции.** -::: - -![Сookie](./assets/GET/GET_pic4.png) - -Можно указать готовые куки или взять из переменной. - -**Формат:** `имя=значение`, несколько значений разделяются через `;` -***Пример:*** `user=1992103;session=f79fcadd847b80f9df78ba4fb276c867;id=889` -_______________________________________________ -## Вкладка «Прокси». -![Вкладка «Прокси»](./assets/GET/GET_pic6.png) -_______________________________________________ -### Без прокси. -Экшен будет работать через реальный IP компьютера или сервера. -_______________________________________________ -### Строка формата. -![Строка формата](./assets/GET/GET_pic7.png) - -Указываем прокси в формате (можно указать переменную): -- ***С авторизацией***. `socks5://логин:пароль@ip:port` или `http://логин:пароль@ip:port` -- ***Без авторизации***. `socks5://ip:port` или `http://ip:port` -- ***Без указания протокола (по умолчанию http://)***. `логин:пароль@ip:port` или `ip:port` -_______________________________________________ -### Другой. -![Другой](./assets/GET/GET_pic8.png) - -Выбираем в том случае, если нужно указать детальные настройки прокси. -Тип прокси, данные авторизации, адрес и порт уточняйте у поставщика услуг. -Во всех полях можно использовать переменные. - -:::info **Если не указан протокол, то по умолчанию используется http://** -::: -_______________________________________________ -## Способ передачи запроса. -В ZennoDroid есть два метода работы с запросами: -- **Стандартный**. Стоит по умолчанию (библиотека Chilkat). -- **Альтернативный**. Наша собственная разработка. - -Если при работе с HTTP-запросами что-то работает неправильно, то попробуйте переключиться на альтернативный метод. -Сделать это можно через **Настройки → Выполнение → Использовать альтернативный способ передачи HTTP-запросов**. - -![Использовать альтернативный способ](./assets/GET/GET_pic9.png) - - - - - - - - diff --git a/docs/Project Editor/HTTP and FTP/HTTP.mdx b/docs/Project Editor/HTTP and FTP/HTTP.mdx deleted file mode 100644 index a3fcd709..00000000 --- a/docs/Project Editor/HTTP and FTP/HTTP.mdx +++ /dev/null @@ -1,201 +0,0 @@ ---- -sidebar_position: 3 -title: HTTP-запросы -description: Остальные типы запросов ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../../Disclaimer).** -::: -_______________________________________________ -С помощью этого экшена можно создать любой тип HTTP-запроса: -- **Put** — полностью обновляет информацию; -- **Delete** — удаляет записи; -- **Head** — получает только заголовки ответа, без содержимого; -- **Options** — запрашивает информацию о поддерживаемых методах; -- **Patch** — частично обновляет записи; -- **Trace** — диагностический запрос для отладки. - -А для запросов [**GET**](./GET) и [**POST**](./POST) есть отдельные экшены. -_______________________________________________ -### Как добавить в проект? -Через контекстное меню: **Добавить действие → HTTP → HTTP-запрос**. - -![Как добавить в проект?](./assets/HTTP/HTTP_pic1.png) -_______________________________________________ -## Вкладка «Основные» -![Вкладка «Основные»](./assets/HTTP/HTTP_pic2.png) -_______________________________________________ -### Тип запроса. -Выбираем необходимый запрос из списка. -### URL. -Целевой адрес сайта (ссылка), по которому будет отправлен запрос. *Можно использовать переменную*. -_______________________________________________ -### Referer. -Заголовок [**Referer**](https://developer.mozilla.org/ru/docs/Web/HTTP/Headers/Referer) используется для указания URL-адрес, с которого пользователь пришел на текущую страницу. Он помогает анализировать трафик и узнавать, с какого ресурса переходят чаще всего. - -:::warning **Заголовок *Referer* может раскрыть информацию об истории посещённых страниц, что может привести к нарушению приватности.** -::: -_______________________________________________ -### Кодировка. -Выбираем кодировку для запроса. -_______________________________________________ -### Таймаут. -Максимальное время ожидания ответа от сайта в секундах. -При достижении установленного времени, действие будет завершено ошибкой и выйдет по *красной ветке*. -Можно использовать макросы переменных. -_______________________________________________ - -### Данные. -Тут пишем сам текст запроса. -_______________________________________________ -### Тип данных. -Здесь мы выбираем, какие данные будут отправлены в запросе. Указанный тип будет передан в заголовке как [***Content-Type***](https://developer.mozilla.org/ru/docs/Web/HTTP/Headers/Content-Type). - -Доступные варианты: -#### urlencoded. -:::info ***`Content-Type: application/x-www-form-urlencoded`*** -::: - -Стоит использовать, когда на сервер отсылается *текстовая информация*. В поле **Данные** она указывается в формате: -`имяпараметра1=значение1&имяпараметра2=значение2` - -#### multipart. -:::info ***`Content-Type: multipart/form-data`*** -::: -Этот тип используется, когда в запросе отправляются *двоичные данные (файлы)* на сервер. - -#### Другой. -Вы можете задать любой другой тип данных, если два заготовленных не подходят. - -Например, для взаимодействия с API [**CapMonster Cloud**](https://docs.capmonster.cloud/ru/docs/category/api) нужно отправлять POST-запрос в формате JSON. Для этого указываем в **Типе данных** `application/json` -_______________________________________________ -### Загружать. -#### Только содержимое. -В переменную будет сохранено только тело ответа. - -#### Только заголовки. -Сохранятся только заголовки. - -#### Заголовки и содержимое. -В переменную сохранятся и заголовок ответа, и его тело, разделенные двумя пустыми строками. - -#### Как файл. -Выбирайте этот режим, если нужно скачать файл с помощью запроса. -В переменную сохранится путь к скачанному файлу. - -:::info **По умолчанию файлы скачиваются в папку `Trash` в директории с программой.** -Путь может выглядеть так: -`C:\Program Files\ZennoLab\RU\ZennoPoster Pro V7\7.4.0.0\Progs\Trash\googlelogo_color_92x30dp.png` - -Изменить его можно в настройках, но только глобально для всех проектов. -::: - -#### Как файл + заголовки. -В переменную сохранятся заголовки ответа и путь к скачанному файлу. -_______________________________________________ -### Положить в переменную. -Здесь надо выбрать (или создать новую) переменную, в которую будет сохранён результат запроса. -_______________________________________________ -## Вкладка «Дополнительно». -![Вкладка «Дополнительно»](./assets/GET/GET_pic3.png) -_______________________________________________ -### Редирект. -Используется для установки перенаправления. Если ответ на запрос будет содержать *код редиректа*, то ZennoDroid перейдет к следующей странице, используя заголовок ***Location***. - -Здесь мы цифрами указываем максимальное количество переходов. К примеру, `0` — остаться на исходной странице, `5` — количество переходов до конечного URL. -_______________________________________________ -### Использовать оригинальный URL. -Когда эта опция включена, кодирование URL из вкладки «Основные» будет отменено. Пример: -- **URL по умолчанию (с кодированием)**: -`https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82%D1%81%D1%82%D0%B2%D0%B8%D0%B5` -- **Оригинальный URL**: -`https://ru.wikipedia.org/wiki/Приветствие` -_______________________________________________ -### Заголовки. -#### Использовать по умолчанию. -В запрос будут подставлены заголовки по умолчанию. Заголовок `Host` меняется в зависимости от адреса в запросе. - -
-**Пример ответа при запросе *https://httpbin.org/get*.** - - - ``` -Host: httpbin.org -User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0 -Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 -Accept-Encoding: gzip, deflate -Accept-Language: en-US,en;q=0.5 - ``` -
- -#### Текущий профиль. -Будут подставлены заголовки из текущего ***профиля проекта***. - -#### Загрузить из профиля. -Необходимо выбрать файл или указать переменную, содержащую путь до профиля, из которого будут загружены заголовки для запроса. - -#### Пользовательские настройки. -![Пользовательские настройки](./assets/GET/GET_pic5.png) - -Позволяет самостоятельно указать каждый параметр заголовка, следуя правилам: -- :warning: Первой **всегда указывается строка User-Agent!** И только потом все остальные заголовки. -- Каждый заголовок начинается с новой строчки. -- Можно указать *статичные значения*, *свои переменные* или *переменные профиля*. -_______________________________________________ -### Использовать CookieContainer. -С помощью этой опции можно синхронизировать куки с целым браузером или между отдельными запросами. Вам не понадобится вручную их парсить и подставлять. - -
-**Пример использования.** - - - Представим, что наш проект работает с сайтом, используя запросы. Для работы нужно быть авторизованным. При этом процесс авторизации крайне сложен для повторения его через запросы. Поэтому для входа на сайт используем браузерный режим. - - После авторизации ***отключаем браузер*** и начинаем работать с запросами. С включенной опцией **Использовать CookieContainer** куки будут автоматически синхронизированы между браузером и запросами, их не придется подставлять вручную. - - Если при одном из запросов сайт вернет новое значение кук, то оно автоматически синхронизируется с браузером и будет использовано в дальнейшем. -
-_______________________________________________ -### Сookie. -:::info **Данное поле ввода отображается только при отключении прошлой опции.** -::: - -![Сookie](./assets/GET/GET_pic4.png) - -Можно указать готовые куки или взять из переменной. - -**Формат:** `имя=значение`, несколько значений разделяются через `;` -***Пример:*** `user=1992103;session=f79fcadd847b80f9df78ba4fb276c867;id=889` -_______________________________________________ -## Вкладка «Прокси». -![Вкладка «Прокси»](./assets/GET/GET_pic6.png) -_______________________________________________ -### Без прокси. -Экшен будет работать через реальный IP компьютера или сервера. -_______________________________________________ -### Строка формата. -![Строка формата](./assets/GET/GET_pic7.png) - -Указываем прокси в формате (можно указать переменную): -- ***С авторизацией***. `socks5://логин:пароль@ip:port` или `http://логин:пароль@ip:port` -- ***Без авторизации***. `socks5://ip:port` или `http://ip:port` -- ***Без указания протокола (по умолчанию http://)***. `логин:пароль@ip:port` или `ip:port` -_______________________________________________ -### Другой. -![Другой](./assets/GET/GET_pic8.png) - -Выбираем в том случае, если нужно указать детальные настройки прокси. -Тип прокси, данные авторизации, адрес и порт уточняйте у поставщика услуг. -Во всех полях можно использовать переменные. - -:::info **Если не указан протокол, то по умолчанию используется http://** -::: -_______________________________________________ -## Способ передачи запроса. -В ZennoDroid есть два метода работы с запросами: -- **Стандартный**. Стоит по умолчанию (библиотека Chilkat). -- **Альтернативный**. Наша собственная разработка. - -Если при работе с HTTP-запросами что-то работает неправильно, то попробуйте переключиться на альтернативный метод. -Сделать это можно через **Настройки → Выполнение → Использовать альтернативный способ передачи HTTP-запросов**. - -![Использовать альтернативный способ](./assets/GET/GET_pic9.png) \ No newline at end of file diff --git a/docs/Project Editor/HTTP and FTP/POST.mdx b/docs/Project Editor/HTTP and FTP/POST.mdx deleted file mode 100644 index 50e372f9..00000000 --- a/docs/Project Editor/HTTP and FTP/POST.mdx +++ /dev/null @@ -1,209 +0,0 @@ ---- -sidebar_position: 2 -title: POST-запрос -description: Отправка данных в POST-запросе ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../../Disclaimer).** -::: -_______________________________________________ -ZennoDroid позволяет отправлять данные в **POST-запросах**. С этим экшеном вы можете: -- *отсылать информацию для регистрации на сайте*, -- *загружать файлы на сервер*, -- *быстро отправлять данные*, -- *запускать шаблоны без браузера*, -- *работать с API веб-сервисов и приложений*. -_______________________________________________ -### Как добавить в проект? -Через контекстное меню: **Добавить действие → HTTP → POST-запрос**. - -![Как добавить в проект?](./assets/POST/POST_pic1.png) -_______________________________________________ -## Вкладка «Основные» -![Вкладка «Основные»](./assets/POST/POST_pic2.png) -_______________________________________________ -### URL. -Целевой адрес сайта (ссылка), по которому будет отправлен запрос. *Можно использовать переменную*. -_______________________________________________ -### Referer. -Заголовок [**Referer**](https://developer.mozilla.org/ru/docs/Web/HTTP/Headers/Referer) используется для указания URL-адрес, с которого пользователь пришел на текущую страницу. Он помогает анализировать трафик и узнавать, с какого ресурса переходят чаще всего. - -:::warning **Заголовок *Referer* может раскрыть информацию об истории посещённых страниц, что может привести к нарушению приватности.** -::: -_______________________________________________ -### Кодировка. -Выбираем кодировку для запроса. -_______________________________________________ -### Таймаут. -Максимальное время ожидания ответа от сайта в секундах. -При достижении установленного времени, действие будет завершено ошибкой и выйдет по *красной ветке*. -Можно использовать макросы переменных. -_______________________________________________ - -### Данные. -Тут пишем сам текст запроса. -_______________________________________________ -### Тип данных. -Здесь мы выбираем, какие данные будут отправлены в запросе. Указанный тип будет передан в заголовке как [***Content-Type***](https://developer.mozilla.org/ru/docs/Web/HTTP/Headers/Content-Type). - -Доступные варианты: -#### urlencoded. -:::info ***`Content-Type: application/x-www-form-urlencoded`*** -::: - -Стоит использовать, когда на сервер отсылается *текстовая информация*. В поле **Данные** она указывается в формате: -`имяпараметра1=значение1&имяпараметра2=значение2` - -#### multipart. -:::info ***`Content-Type: multipart/form-data`*** -::: -Этот тип используется, когда в запросе отправляются *двоичные данные (файлы)* на сервер. - -#### Другой. -Вы можете задать любой другой тип данных, если два заготовленных не подходят. - -Например, для взаимодействия с API [**CapMonster Cloud**](https://docs.capmonster.cloud/ru/docs/category/api) нужно отправлять POST-запрос в формате JSON. Для этого указываем в **Типе данных** `application/json` -_______________________________________________ -### Загружать. -#### Только содержимое. -В переменную будет сохранено только тело ответа. - -#### Только заголовки. -Сохранятся только заголовки. - -#### Заголовки и содержимое. -В переменную сохранятся и заголовок ответа, и его тело, разделенные двумя пустыми строками. - -#### Как файл. -Выбирайте этот режим, если нужно скачать файл с помощью запроса. -В переменную сохранится путь к скачанному файлу. - -:::info **По умолчанию файлы скачиваются в папку `Trash` в директории с программой.** -Путь может выглядеть так: -`C:\Program Files\ZennoLab\RU\ZennoPoster Pro V7\7.4.0.0\Progs\Trash\googlelogo_color_92x30dp.png` - -Изменить его можно в настройках, но только глобально для всех проектов. -::: - -#### Как файл + заголовки. -В переменную сохранятся заголовки ответа и путь к скачанному файлу. -_______________________________________________ -### Положить в переменную. -Здесь надо выбрать (или создать новую) переменную, в которую будет сохранён результат запроса. -_______________________________________________ -## Вкладка «Дополнительно». -![Вкладка «Дополнительно»](./assets/GET/GET_pic3.png) -_______________________________________________ -### Редирект. -Используется для установки перенаправления. Если ответ на запрос будет содержать *код редиректа*, то ZennoDroid перейдет к следующей странице, используя заголовок ***Location***. - -Здесь мы цифрами указываем максимальное количество переходов. К примеру, `0` — остаться на исходной странице, `5` — количество переходов до конечного URL. -_______________________________________________ -### Использовать оригинальный URL. -Когда эта опция включена, кодирование URL из вкладки «Основные» будет отменено. Пример: -- **URL по умолчанию (с кодированием)**: -`https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82%D1%81%D1%82%D0%B2%D0%B8%D0%B5` -- **Оригинальный URL**: -`https://ru.wikipedia.org/wiki/Приветствие` -_______________________________________________ -### Заголовки. -#### Использовать по умолчанию. -В запрос будут подставлены заголовки по умолчанию. Заголовок `Host` меняется в зависимости от адреса в запросе. - -
-**Пример ответа при запросе *https://httpbin.org/get*.** - - - ``` -Host: httpbin.org -User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0 -Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 -Accept-Encoding: gzip, deflate -Accept-Language: en-US,en;q=0.5 - ``` -
- -#### Текущий профиль. -Будут подставлены заголовки из текущего ***профиля проекта***. - -#### Загрузить из профиля. -Необходимо выбрать файл или указать переменную, содержащую путь до профиля, из которого будут загружены заголовки для запроса. - -#### Пользовательские настройки. -![Пользовательские настройки](./assets/GET/GET_pic5.png) - -Позволяет самостоятельно указать каждый параметр заголовка, следуя правилам: -- :warning: Первой **всегда указывается строка User-Agent!** И только потом все остальные заголовки. -- Каждый заголовок начинается с новой строчки. -- Можно указать *статичные значения*, *свои переменные* или *переменные профиля*. -_______________________________________________ -### Использовать CookieContainer. -С помощью этой опции можно синхронизировать куки с целым браузером или между отдельными запросами. Вам не понадобится вручную их парсить и подставлять. - -
-**Пример использования.** - - - Представим, что наш проект работает с сайтом, используя запросы. Для работы нужно быть авторизованным. При этом процесс авторизации крайне сложен для повторения его через запросы. Поэтому для входа на сайт используем браузерный режим. - - После авторизации ***отключаем браузер*** и начинаем работать с запросами. С включенной опцией **Использовать CookieContainer** куки будут автоматически синхронизированы между браузером и запросами, их не придется подставлять вручную. - - Если при одном из запросов сайт вернет новое значение кук, то оно автоматически синхронизируется с браузером и будет использовано в дальнейшем. -
-_______________________________________________ -### Сookie. -:::info **Данное поле ввода отображается только при отключении прошлой опции.** -::: - -![Сookie](./assets/GET/GET_pic4.png) - -Можно указать готовые куки или взять из переменной. - -**Формат:** `имя=значение`, несколько значений разделяются через `;` -***Пример:*** `user=1992103;session=f79fcadd847b80f9df78ba4fb276c867;id=889` -_______________________________________________ -## Вкладка «Прокси». -![Вкладка «Прокси»](./assets/GET/GET_pic6.png) -_______________________________________________ -### Без прокси. -Экшен будет работать через реальный IP компьютера или сервера. -_______________________________________________ -### Строка формата. -![Строка формата](./assets/GET/GET_pic7.png) - -Указываем прокси в формате (можно указать переменную): -- ***С авторизацией***. `socks5://логин:пароль@ip:port` или `http://логин:пароль@ip:port` -- ***Без авторизации***. `socks5://ip:port` или `http://ip:port` -- ***Без указания протокола (по умолчанию http://)***. `логин:пароль@ip:port` или `ip:port` -_______________________________________________ -### Другой. -![Другой](./assets/GET/GET_pic8.png) - -Выбираем в том случае, если нужно указать детальные настройки прокси. -Тип прокси, данные авторизации, адрес и порт уточняйте у поставщика услуг. -Во всех полях можно использовать переменные. - -:::info **Если не указан протокол, то по умолчанию используется http://** -::: -_______________________________________________ -## Способ передачи запроса. -В ZennoDroid есть два метода работы с запросами: -- **Стандартный**. Стоит по умолчанию (библиотека Chilkat). -- **Альтернативный**. Наша собственная разработка. - -Если при работе с HTTP-запросами что-то работает неправильно, то попробуйте переключиться на альтернативный метод. -Сделать это можно через **Настройки → Выполнение → Использовать альтернативный способ передачи HTTP-запросов**. - -![Использовать альтернативный способ](./assets/GET/GET_pic9.png) -_______________________________________________ -## Пример использования. -Нужно отправить ответ ReCaptchaV2 на сайт для прохождения капчи. - -![Пример использования](./assets/POST/POST_pic3.png) - -1. CM Cloud разгадывает капчу и выдает нам ответ. -2. Добавляем к нему экшен POST. -3. Заполняем все поля. В поле *Данные* вводим ответ на капчу в нужном формате. -4. Отправляем запрос на целевой сайт. -5. Капча разгадана. - -При работе без браузера мы экономим время и ресурсы, затрачиваемые при разгадывании капчи в окне таба. \ No newline at end of file diff --git a/docs/Project Editor/HTTP and FTP/_category_.json b/docs/Project Editor/HTTP and FTP/_category_.json deleted file mode 100644 index 159b86b8..00000000 --- a/docs/Project Editor/HTTP and FTP/_category_.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "label": "HTTP и FTP", - "position": 5, - "link": { - "type": "generated-index", - "title": "Как работать с HTTP и FTP" - } - } - \ No newline at end of file diff --git a/docs/Project Editor/HTTP and FTP/assets/FTP_Connect/FTP_Connect_pic1.png b/docs/Project Editor/HTTP and FTP/assets/FTP_Connect/FTP_Connect_pic1.png deleted file mode 100644 index 7041e8db..00000000 Binary files a/docs/Project Editor/HTTP and FTP/assets/FTP_Connect/FTP_Connect_pic1.png and /dev/null differ diff --git a/docs/Project Editor/HTTP and FTP/assets/FTP_Connect/FTP_Connect_pic2.png b/docs/Project Editor/HTTP and FTP/assets/FTP_Connect/FTP_Connect_pic2.png deleted file mode 100644 index b7841239..00000000 Binary files a/docs/Project Editor/HTTP and FTP/assets/FTP_Connect/FTP_Connect_pic2.png and /dev/null differ diff --git a/docs/Project Editor/HTTP and FTP/assets/FTP_Connect/FTP_Connect_pic3.png b/docs/Project Editor/HTTP and FTP/assets/FTP_Connect/FTP_Connect_pic3.png deleted file mode 100644 index c1537839..00000000 Binary files a/docs/Project Editor/HTTP and FTP/assets/FTP_Connect/FTP_Connect_pic3.png and /dev/null differ diff --git a/docs/Project Editor/HTTP and FTP/assets/FTP_Connect/FTP_Connect_pic4.png b/docs/Project Editor/HTTP and FTP/assets/FTP_Connect/FTP_Connect_pic4.png deleted file mode 100644 index f92da164..00000000 Binary files a/docs/Project Editor/HTTP and FTP/assets/FTP_Connect/FTP_Connect_pic4.png and /dev/null differ diff --git a/docs/Project Editor/HTTP and FTP/assets/FTP_Dir/FTP_Dir_pic1.png b/docs/Project Editor/HTTP and FTP/assets/FTP_Dir/FTP_Dir_pic1.png deleted file mode 100644 index 17ab32ff..00000000 Binary files a/docs/Project Editor/HTTP and FTP/assets/FTP_Dir/FTP_Dir_pic1.png and /dev/null differ diff --git a/docs/Project Editor/HTTP and FTP/assets/FTP_Dir/FTP_Dir_pic2.png b/docs/Project Editor/HTTP and FTP/assets/FTP_Dir/FTP_Dir_pic2.png deleted file mode 100644 index 0ee42968..00000000 Binary files a/docs/Project Editor/HTTP and FTP/assets/FTP_Dir/FTP_Dir_pic2.png and /dev/null differ diff --git a/docs/Project Editor/HTTP and FTP/assets/FTP_Dir/FTP_Dir_pic3.png b/docs/Project Editor/HTTP and FTP/assets/FTP_Dir/FTP_Dir_pic3.png deleted file mode 100644 index 3f727fe3..00000000 Binary files a/docs/Project Editor/HTTP and FTP/assets/FTP_Dir/FTP_Dir_pic3.png and /dev/null differ diff --git a/docs/Project Editor/HTTP and FTP/assets/FTP_Dir/FTP_Dir_pic4.png b/docs/Project Editor/HTTP and FTP/assets/FTP_Dir/FTP_Dir_pic4.png deleted file mode 100644 index beea4cd4..00000000 Binary files a/docs/Project Editor/HTTP and FTP/assets/FTP_Dir/FTP_Dir_pic4.png and /dev/null differ diff --git a/docs/Project Editor/HTTP and FTP/assets/FTP_Dir/FTP_Dir_pic5.png b/docs/Project Editor/HTTP and FTP/assets/FTP_Dir/FTP_Dir_pic5.png deleted file mode 100644 index 6ee4866c..00000000 Binary files a/docs/Project Editor/HTTP and FTP/assets/FTP_Dir/FTP_Dir_pic5.png and /dev/null differ diff --git a/docs/Project Editor/HTTP and FTP/assets/FTP_Files/FTP_Files_pic1.png b/docs/Project Editor/HTTP and FTP/assets/FTP_Files/FTP_Files_pic1.png deleted file mode 100644 index f32506d2..00000000 Binary files a/docs/Project Editor/HTTP and FTP/assets/FTP_Files/FTP_Files_pic1.png and /dev/null differ diff --git a/docs/Project Editor/HTTP and FTP/assets/FTP_Files/FTP_Files_pic2.png b/docs/Project Editor/HTTP and FTP/assets/FTP_Files/FTP_Files_pic2.png deleted file mode 100644 index 2ce3b97b..00000000 Binary files a/docs/Project Editor/HTTP and FTP/assets/FTP_Files/FTP_Files_pic2.png and /dev/null differ diff --git a/docs/Project Editor/HTTP and FTP/assets/FTP_Files/FTP_Files_pic3.png b/docs/Project Editor/HTTP and FTP/assets/FTP_Files/FTP_Files_pic3.png deleted file mode 100644 index e712b837..00000000 Binary files a/docs/Project Editor/HTTP and FTP/assets/FTP_Files/FTP_Files_pic3.png and /dev/null differ diff --git a/docs/Project Editor/HTTP and FTP/assets/FTP_Files/FTP_Files_pic4.png b/docs/Project Editor/HTTP and FTP/assets/FTP_Files/FTP_Files_pic4.png deleted file mode 100644 index d6a62fc5..00000000 Binary files a/docs/Project Editor/HTTP and FTP/assets/FTP_Files/FTP_Files_pic4.png and /dev/null differ diff --git a/docs/Project Editor/HTTP and FTP/assets/FTP_Files/FTP_Files_pic5.png b/docs/Project Editor/HTTP and FTP/assets/FTP_Files/FTP_Files_pic5.png deleted file mode 100644 index bd8110b2..00000000 Binary files a/docs/Project Editor/HTTP and FTP/assets/FTP_Files/FTP_Files_pic5.png and /dev/null differ diff --git a/docs/Project Editor/HTTP and FTP/assets/GET/GET_pic1.png b/docs/Project Editor/HTTP and FTP/assets/GET/GET_pic1.png deleted file mode 100644 index 92f6711d..00000000 Binary files a/docs/Project Editor/HTTP and FTP/assets/GET/GET_pic1.png and /dev/null differ diff --git a/docs/Project Editor/HTTP and FTP/assets/GET/GET_pic2.png b/docs/Project Editor/HTTP and FTP/assets/GET/GET_pic2.png deleted file mode 100644 index 5db47ff6..00000000 Binary files a/docs/Project Editor/HTTP and FTP/assets/GET/GET_pic2.png and /dev/null differ diff --git a/docs/Project Editor/HTTP and FTP/assets/GET/GET_pic3.png b/docs/Project Editor/HTTP and FTP/assets/GET/GET_pic3.png deleted file mode 100644 index ec00aa43..00000000 Binary files a/docs/Project Editor/HTTP and FTP/assets/GET/GET_pic3.png and /dev/null differ diff --git a/docs/Project Editor/HTTP and FTP/assets/GET/GET_pic4.png b/docs/Project Editor/HTTP and FTP/assets/GET/GET_pic4.png deleted file mode 100644 index 866e8d8b..00000000 Binary files a/docs/Project Editor/HTTP and FTP/assets/GET/GET_pic4.png and /dev/null differ diff --git a/docs/Project Editor/HTTP and FTP/assets/GET/GET_pic5.png b/docs/Project Editor/HTTP and FTP/assets/GET/GET_pic5.png deleted file mode 100644 index 31be3d56..00000000 Binary files a/docs/Project Editor/HTTP and FTP/assets/GET/GET_pic5.png and /dev/null differ diff --git a/docs/Project Editor/HTTP and FTP/assets/GET/GET_pic6.png b/docs/Project Editor/HTTP and FTP/assets/GET/GET_pic6.png deleted file mode 100644 index f545b7ff..00000000 Binary files a/docs/Project Editor/HTTP and FTP/assets/GET/GET_pic6.png and /dev/null differ diff --git a/docs/Project Editor/HTTP and FTP/assets/GET/GET_pic7.png b/docs/Project Editor/HTTP and FTP/assets/GET/GET_pic7.png deleted file mode 100644 index 87161895..00000000 Binary files a/docs/Project Editor/HTTP and FTP/assets/GET/GET_pic7.png and /dev/null differ diff --git a/docs/Project Editor/HTTP and FTP/assets/GET/GET_pic8.png b/docs/Project Editor/HTTP and FTP/assets/GET/GET_pic8.png deleted file mode 100644 index fb1044f1..00000000 Binary files a/docs/Project Editor/HTTP and FTP/assets/GET/GET_pic8.png and /dev/null differ diff --git a/docs/Project Editor/HTTP and FTP/assets/GET/GET_pic9.png b/docs/Project Editor/HTTP and FTP/assets/GET/GET_pic9.png deleted file mode 100644 index 5a0b05b4..00000000 Binary files a/docs/Project Editor/HTTP and FTP/assets/GET/GET_pic9.png and /dev/null differ diff --git a/docs/Project Editor/HTTP and FTP/assets/HTTP/HTTP_pic1.png b/docs/Project Editor/HTTP and FTP/assets/HTTP/HTTP_pic1.png deleted file mode 100644 index 51b5c0f7..00000000 Binary files a/docs/Project Editor/HTTP and FTP/assets/HTTP/HTTP_pic1.png and /dev/null differ diff --git a/docs/Project Editor/HTTP and FTP/assets/HTTP/HTTP_pic2.png b/docs/Project Editor/HTTP and FTP/assets/HTTP/HTTP_pic2.png deleted file mode 100644 index fc244f2d..00000000 Binary files a/docs/Project Editor/HTTP and FTP/assets/HTTP/HTTP_pic2.png and /dev/null differ diff --git a/docs/Project Editor/HTTP and FTP/assets/POST/POST_pic1.png b/docs/Project Editor/HTTP and FTP/assets/POST/POST_pic1.png deleted file mode 100644 index 6b9e4dee..00000000 Binary files a/docs/Project Editor/HTTP and FTP/assets/POST/POST_pic1.png and /dev/null differ diff --git a/docs/Project Editor/HTTP and FTP/assets/POST/POST_pic2.png b/docs/Project Editor/HTTP and FTP/assets/POST/POST_pic2.png deleted file mode 100644 index 51d6eece..00000000 Binary files a/docs/Project Editor/HTTP and FTP/assets/POST/POST_pic2.png and /dev/null differ diff --git a/docs/Project Editor/HTTP and FTP/assets/POST/POST_pic3.png b/docs/Project Editor/HTTP and FTP/assets/POST/POST_pic3.png deleted file mode 100644 index 6823b3ed..00000000 Binary files a/docs/Project Editor/HTTP and FTP/assets/POST/POST_pic3.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/Connecting_GoogleSheets.mdx b/docs/Project Editor/Lists and Google Sheets/Connecting_GoogleSheets.mdx deleted file mode 100644 index 85821379..00000000 --- a/docs/Project Editor/Lists and Google Sheets/Connecting_GoogleSheets.mdx +++ /dev/null @@ -1,150 +0,0 @@ ---- -sidebar_position: 6 -title: Настройка подключения Google Таблиц -description: Разберемся, как подключить Google таблицы к ZennoDroid. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../../Disclaimer).** -::: - -Для использования Google-таблиц в ZennoDroid нужно выполнить действия, описанные в этой статье. -_______________________________________________ -## Добавление нового приложения. -- Входим в свой Google аккаунт или создаем новый. -_______________________________________________ -- Заходим в [**Google Cloud Platform**](https://console.cloud.google.com/projectselector2/apis/credentials/consent?supportedpurview=project). При первом переходе надо будет: - - выбрать страну (1); - - ознакомиться с правилами и принять их (2); - - согласиться или отказаться от рассылки (3); - - в конце нажать **AGREE AND CONTINUE** (4); - -![Настройка подключения Google Таблиц](./assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic1.png) -_______________________________________________ -- Выбираем в левой панели **OAuth consent screen (1)** и нажимаем **CREATE PROJECT (2)**, чтобы создать новый проект. - -![Настройка подключения Google Таблиц](./assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic2.png) -_______________________________________________ -- Вводим любое название проекта в поле **Project name (1)**, но только на английском языке. И **Location (Местоположение организации) (2)**, а затем **CREATE (3)**. - -![Настройка подключения Google Таблиц](./assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic3.png) -_______________________________________________ -- В следующем окне выбираем **External (1)** и снова **CREATE (2)**. - -![Настройка подключения Google Таблиц](./assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic4.png) -_______________________________________________ -- В открывшемся окне вводим любое имя приложения **App name (1)** и выбираем email в списке **User support email (2)**. - -![Настройка подключения Google Таблиц](./assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic5.png) -_______________________________________________ -- Прокручиваем страницу до конца и еще раз вводим свой **email (3)**, а затем нажмимаем **SAVE AND CONTINUE (4)**. - -![Настройка подключения Google Таблиц](./assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic6.png) -_______________________________________________ -- В следующем окне ***Scopes*** просто проматываем страницу в самый низ и нажимаем **SAVE AND CONTINUE**. - -![Настройка подключения Google Таблиц](./assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic7.png) -_______________________________________________ -- В окне ***Test users*** тоже пролистываем вниз и нажимаем **SAVE AND CONTINUE**. - -![Настройка подключения Google Таблиц](./assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic8.png) -_______________________________________________ -- В новом окне ***Summary*** также листаем до конца и нажимаем **BACK TO DASHBOARD**. - -![Настройка подключения Google Таблиц](./assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic9.png) -_______________________________________________ -## Публикация проекта. -### Testing mode. -Можно оставить приложение в тестовом режиме. Тогда оно будет доступно только для аккаунта-создателя и пользователей, которые добавлены в список ***Test Users***. -:::warning **Количество тестовых пользователей ограничено.** -Их может быть не больше 100. И после добавления пользователя в список тестеров удалить его оттуда уже нельзя! -::: -#### Как добавить в список Test Users? -- На вкладке **OAuth consent screen** листаем немного вниз и в разделе ***Test users*** нажмимаем кнопку **`+ADD USERS`**. -- В открывшемся окне добавляем email необходимого аккаунта и нажмимаем кнопку **SAVE**. - -![Настройка подключения Google Таблиц](./assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic10.png) -_______________________________________________ -### Publish App. -Теперь можно опубликовать приложение, чтобы оно стало доступно всем пользователям, у которых есть Google аккаунт. Для этого достаточно нажать кнопку **PUBLISH APP**. - -![Настройка подключения Google Таблиц](./assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic11.png) -_______________________________________________ -## Создание учетных данных. -- В разделе **Credentials (1)** нажимаем **`+CREATE CREDENTIALS`** (2) и выбираем пункт **OAuth client ID (3)**. - -![Настройка подключения Google Таблиц](./assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic12.png) -_______________________________________________ -- Выбираем пункт ***Desktop app*** в выпадающем списке *Application type (1)* и нажимаем **CREATE (2)**. - -![Настройка подключения Google Таблиц](./assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic13.png) -_______________________________________________ -- Откроется новое окно **OAuth client created**, в нём кликаем **`OK`**. - -![Настройка подключения Google Таблиц](./assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic14.png) -_______________________________________________ -- После этого жмем по названию только что созданного приложения или же по значку его редактирования. - -![Настройка подключения Google Таблиц](./assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic15.png) -_______________________________________________ -- В открывшемся окне нужно скачать ключ в виде файла, для этого жмем кнопку **`DOWNLOAD JSON`**. - -![Настройка подключения Google Таблиц](./assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic16.png) - -## Работа с API. -### Включение API от Google. -:::warning **Очень важно включить именно оба API: для Sheets и Drive, иначе программа будет работать не корректно.** -::: -- [**Ссылка для включения Google Sheets API**](https://console.developers.google.com/apis/library/sheets.googleapis.com). Выбираем свой проект и нажимаем **ENABLE**. - -![Настройка подключения Google Таблиц](./assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic17.png) -_______________________________________________ -- [**Ссылка для включения Google Drive API**](https://console.developers.google.com/apis/library/drive.googleapis.com). Также выбираем проект, а затем **ENABLE**. - -![Настройка подключения Google Таблиц](./assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic18.png) -_______________________________________________ -### Добавление ключа в программу. -:::warning **Google таблицы нужно подключать отдельно для ProjectMaker и ZennoDroid.** -::: - -- Открываем **Настройки подключения Google таблиц** (***Редактирование → Настройки → Google таблицы***). -- Нажимаем многоточие […] в правом крае поля для указания пути и выбираем ***файл учетных данных (1)***, а затем нажимаем **Подключить (2)**. -:::info **Файл обязательно должен иметь расширение .json.** -::: - -![Настройка подключения Google Таблиц](./assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic19.png) -_______________________________________________ -- После этого откроется окно браузера, где необходимо будет войти в аккаунт Google, с которого вы создавали ключ. -- Скорее всего появится окно с предупреждением. Поскольку мы доверяем своему приложению, необходимо выбрать *Дополнительные настройки (1)* и *Перейти на страницу "Ваше приложение" (2)*. - -![Настройка подключения Google Таблиц](./assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic20.png) -_______________________________________________ -- Теперь даем доступ к данным аккаунта, чтобы можно было читать и записывать таблицы. - -![Настройка подключения Google Таблиц](./assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic21.png) ![Через ProjectMaker](./assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic22.png) -_______________________________________________ -- И еще раз. - -![Настройка подключения Google Таблиц](./assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic23.png) -_______________________________________________ -- Если все сделано правильно, то появится надпись: -`Received verification code. You may now close this window`. -_______________________________________________ -### Лимиты запросов к API. -#### Какие есть ограничения? -Есть ограничения на количество запросов: 300 запросов в минуту для одного проекта, общее количество за день не ограничено. *Информация актуальна на июль 2024 года.* -#### Где можно увидеть текущее количество сделанных запросов? -Эту информацию можно найти на [**Дашборде Google Cloud Platform**](https://console.cloud.google.com/apis/dashboard?hl=ru), выбрав нужный проект. -#### Как увеличить лимиты? -Эту информацию можно найти в официальной документации Google — [**Request a higher quota**](https://cloud.google.com/docs/quotas/view-manage#requesting_higher_quota). -#### Как ZennoDroid расходует лимиты? -На количество запросов влияют два фактора: *изменялась ли таблица* и *включена ли загрузка сторонних изменений*. - -Например, если загрузка сторонних изменений включена, то каждую минуту будет отправляться запрос к API Google Drive для сравнения версий таблиц. - -При изменении самой таблицы используются разные виды запросов. Примерно до 5 запросов на таблицу в минуту. То есть если активно меняются 10 таблиц, то будет максимум около 60 запросов в минуту (Sheets API + Drive API). -_______________________________________________ -### Ошибка авторизации (403: access_denied). -#### Подробный текст ошибки: -*The developer hasn’t given you access to this app. It’s currently being tested and it hasn’t been verified by Google. If you think you should have access, contact the developer*. -#### Причина: -Вы пытаетесь авторизоваться в приложение, которое находится в ***Testing Mode*** с аккаунта, который не находится в списке тестовых пользователей (и не является его создателем). - diff --git a/docs/Project Editor/Lists and Google Sheets/GoogleSheet_Processing.mdx b/docs/Project Editor/Lists and Google Sheets/GoogleSheet_Processing.mdx deleted file mode 100644 index d48cb745..00000000 --- a/docs/Project Editor/Lists and Google Sheets/GoogleSheet_Processing.mdx +++ /dev/null @@ -1,96 +0,0 @@ ---- -sidebar_position: 7 -title: Операции и Многопоточная работа с Google-таблицами. -description: Операции и Многопоточная работа с Google-таблицами. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../../Disclaimer).** -::: - -В двух прошлых статьях мы [познакомились с тем, как выглядят Google-таблицы в ZD](./Google_Sheet), а также [настроили их подключение](./Connecting_GoogleSheets). Теперь же посмотрим, какие операции можно совершать с ними. - -Во многом они похожи на простые [Таблицы](./Tables). Для работы используется тот же экшен *Операции над таблицами* и все действия также актуальны (кроме *Привязки к файлу*). Но у Google-таблиц все-таки есть несколько уникальных функций, с которыми мы познакомимся ниже. -_______________________________________________ -## Как добавить экшен в проект? -Через контекстное меню: ***Добавить действие → Таблицы → Операции над таблицей***. - -![Как добавить в проект?](./assets/Table_Processing/Table_Processing_pic1.png) -_______________________________________________ -## Действия с Google-таблицей. -:::info **Экшен Операции над таблицами.** -В данной статье описаны только уникальные для Google Таблиц функции. Про все остальные операции можно прочитать в статье [Операции над таблицами](./Tables). -::: - -### Перезагрузить таблицу. -![Перезагрузить таблицу](./assets/GoogleSheet_Processing/GoogleSheet_Processing_pic1.png) - -Данная функция позволяет обновить Google Таблицу и получить актуальные данные из нее. Пригодится, если в таблицу были внесены изменения вручную или с помощью другого шаблона. - -:::warning **Локальная таблица будет перезаписана данными из таблицы в облаке.** -::: -_______________________________________________ -### Привязать к URL → Привязать к существующей таблице. -С помощью этого действия можно привязаться к таблице в процессе выполнения проекта. Удобно использовать, когда на момент старта шаблона адрес таблицы неизвестен. - -![ Привязать к существующей таблице](./assets/GoogleSheet_Processing/GoogleSheet_Processing_pic2.png) - -В поле ввода нужно указать ссылку на таблицу, к которой привязываемся. -_______________________________________________ -### Привязать к URL → Создать новый лист. -Создает новый лист в Google таблице. - -![Создать новый лист](./assets/GoogleSheet_Processing/GoogleSheet_Processing_pic3.png) - -- **Ссылка на существующую Google таблицу**. Здесь указываем ссылку на таблицу, в которой создаем новый лист. -- **Имя нового листа**. Тут задаем имя для листа. -- **Положить URL в переменную**. Указываем переменную, в которую сохранится ссылка на новый лист. -_______________________________________________ -### Привязать к URL → Создать новую таблицу. -Данное действие позволяет создать новую Google таблицу. - -![Создать новую таблицу](./assets/GoogleSheet_Processing/GoogleSheet_Processing_pic4.png) - -- **Имя новой таблицы**. Придумываем имя таблице. -- **Имя нового листа**. Тут задаем имя для листа. -- **Положить URL в переменную**. Указываем переменную, в которую сохранится ссылка на новую таблицу. -_______________________________________________ -## Многопоточная работа с Google-таблицами. -### Общая информация. -**ZennoDroid поддерживает многопоточную работу с Google-таблицами.** -Это значит, что к одной таблице можно обращаться сразу в несколько потоков. Для каждого из них при выполнении будет создан один инстанс виртуальной таблицы, изменения из которой периодически синхронизируются с облаком. - -**Несколько копий ZennoDroid могут работать с одной Google-таблицей.** -Однако изменения из программы поступают в облако не моментально, а в течении 60 секунд. Так что эта задержка будет действовать между разными копиями программы. В связи с чем для сохранения целостности данных мы рекомендуем использовать атомарное добавление строк. Его можно подключить в настройках статического блока. -_______________________________________________ -### Атомарное добавление строк. -При включении данной настройки новые строки будут добавляться в облако специальным запросом, независящим от адресов ячеек. Это позволит гарантированно добавить новые данные в таблицу без потерь существующих, которые могли бы быть вызваны перезаписью уже заполненных ячеек. - -У такого способа есть и свои нюансы. Так как строки отправляются отдельным запросом, то данные будут последовательно записаны в конец таблицы. Из-за этого могут возникнуть разногласия между локальной версией и облачной. - -Например, рассмотрим следующую последовательность действий: -``` -1. Записываем ячейки в строки 0-5; -2. Добавляем строку (в программе она будет 6); -3. Записываем ячейки в строки 7-10; -4. Добавляем строку (в программе она будет 11); -``` -По итогу данные, добавленные действиями ***Добавить строку***, попадут именно в 11 и 12 строки в облако Google, хотя в самой программе они находятся в 6 и 11 строках. - -:::tip **Мы рекомендуем при использовании атомарного добавления строк добавлять данные только с помощью действия *Добавить строку*.** -::: - -Несмотря на то, что данный способ более безопасный, изменение и удаление строк все равно может повлечь за собой задержку синхронизации между копиями. Поэтому для обработки важных данных мы советуем использовать отдельный лист Google-таблицы для каждой копии программы. -_______________________________________________ -### Оптимизация многопоточной записи. -Если вы осуществляете парсинг данных в больших объемах и складываете все результаты в одну Google-таблицу, то синхронизация может занять много времени. Так как ZennoDroid всегда старается поддерживать актуальность данных между программой и облаком. - -В таком случае можно настроить режим быстрой записи через опцию: -**Редактирование → Настройки → Google таблицы → Политика обработки изменений таблиц** - -![Политика обработки изменений таблиц](./assets/GoogleSheet_Processing/GoogleSheet_Processing_pic5.png) - -В этом режиме каждая копия программы будет только отправлять данные, не тратя время на их сопоставлении с облаком. - - - - - diff --git a/docs/Project Editor/Lists and Google Sheets/Google_Sheet.mdx b/docs/Project Editor/Lists and Google Sheets/Google_Sheet.mdx deleted file mode 100644 index 916317b0..00000000 --- a/docs/Project Editor/Lists and Google Sheets/Google_Sheet.mdx +++ /dev/null @@ -1,97 +0,0 @@ ---- -sidebar_position: 5 -title: Google таблица -description: Что можно делать с Google таблицами в ZD. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../../Disclaimer).** -::: - -## Создание Google таблицы: -### Через ProjectMaker. -- Из контекстного меню: ***Добавить действие → Таблицы → Google таблица***: - -![Через ProjectMaker](./assets/Google_Sheet/Google_Sheet_pic1.png) - -- Через ***Панель статических блоков***: - -![Через ProjectMaker](./assets/Google_Sheet/Google_Sheet_pic2.png) - -Созданная таблица отобразится в нижней панели: - -![Через ProjectMaker](./assets/Google_Sheet/Google_Sheet_pic3.png) -_______________________________________________ -### Через облако. -Переходим на Google.com → авторизуемся в свой аккаунт → нажимаем на значок с 9-ю точками → выбираем **Таблицы** → создаем Пустую таблицу. - -![Через ProjectMaker](./assets/Google_Sheet/Google_Sheet_pic4.png) -![Через ProjectMaker](./assets/Google_Sheet/Google_Sheet_pic5.png) -_______________________________________________ -Либо через [**Google Диск**](https://drive.google.com/drive/my-drive) → Создать → Google таблицы → Создать пустую таблицу. - -![Через ProjectMaker](./assets/Google_Sheet/Google_Sheet_pic6.png) -_______________________________________________ -После создания таблицы любым из способов скопируйте URL из адресной строки для привязки к ProjectMaker. -_______________________________________________ -## Настройки таблицы. -![Через ProjectMaker](./assets/Google_Sheet/Google_Sheet_pic7.png) - -:::info **Подключение.** -Перед началом работы с Google Таблицами их надо подключить к программе. -Как это сделать мы рассмотрим в следующей статье [**Настройка подключения Google Таблиц**](./Connecting_GoogleSheets). -::: - -### Разберем подробнее каждый из разделов: -#### Вставьте ссылку на Google таблицу. -В это поле нужно вставить ссылку (URL) на таблицу, с которой будем работать. -_______________________________________________ -#### Перезагрузить Google таблицу. -![Через ProjectMaker](./assets/Google_Sheet/Google_Sheet_pic8.png) - -С помощью нажатия на эту кнопку можно обновить данные в таблице. -:::info **Для чего нужно?** -*Это может быть полезно, если вы что-то меняли не через саму программу, а с обычного браузера или с другого устройства.* -::: -_______________________________________________ -#### Превью Google таблицы. -В этом окне будут отображены данные таблицы. Если она большая, то все данные могут не поместиться, тогда вы увидите только часть. -_______________________________________________ -#### Сохранять изменения таблицы в облако. -Если поставить здесь галочку, то в облако будут сохраняться все изменения, которые вы внесете через ZennoDroid. -_______________________________________________ -#### Первая строка - заголовки. -Первая строка таблицы станет заголовком. -_______________________________________________ -#### Использовать атомарное добавление строк. -Включение данной настройки может быть полезным, когда с таблицей работает сразу несколько копий ZennoDroid. -Более подробно об атомарном добавлении можно почитать в статье [**Операции и Многопоточная работа с Google-таблицами**](./GoogleSheet_Processing). -_______________________________________________ -#### Запоминать закреплённые строки и столбы. -Данная опция позволяет сохранять закрепленное состояние строк и столбцов. -При этом будет отправлен дополнительный запрос к API, который расходует лимит. -_______________________________________________ -#### Разделитель строк. -Тут мы указываем, что будет использовано в качестве разделителя строк таблицы: -- **Новая строка**; -- **Свой разделитель**; -- **Несколько разделителей**; -_______________________________________________ -#### Разделитель столбцов. -А здесь уже определяем разделитель для столбцов таблицы: -- Символ `;` -- Табуляция через `Tab` -- Любой кастомный разделитель -- Несколько своих разделителей. -_______________________________________________ -#### Просмотр содержимого. -Эта кнопка позволяет открыть таблицу и полностью посмотреть ее содержимое. В открывшемся окне можно включить отображение управляющих символов, задать фильтр для поиска нужной строки или ячейки, а так же воспользоваться конструктором фильтра. - -![Через ProjectMaker](./assets/Google_Sheet/Google_Sheet_pic9.png) -_______________________________________________ -### Нюансы работы с Google-таблицами. -- При каждом новом старте проекта в программе создаётся виртуальная копия Google-таблицы. -- Виртуальная копия содержит в себе все данные из Google-таблицы. -- В процессе выполнения проекта программа работает именно с виртуальной копией. -- Если включена опция **Сохранять изменения таблицы в облако**, то данные периодически будут переноситься из виртуальной копии в оригинальную Google-таблицу. -:::info **Данные в Google-таблице появляются не моментально, а в течение от 10 до 60 секунд.** -::: - diff --git a/docs/Project Editor/Lists and Google Sheets/Lists.mdx b/docs/Project Editor/Lists and Google Sheets/Lists.mdx deleted file mode 100644 index a7566c53..00000000 --- a/docs/Project Editor/Lists and Google Sheets/Lists.mdx +++ /dev/null @@ -1,65 +0,0 @@ ---- -sidebar_position: 1 -title: Список -description: Создание списка и его настройки. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../../Disclaimer).** -::: - -Список — это упорядоченный набор строк. С помощью них можно получать данные из текстового документа, сохранять их в файл, либо вовсе работать с набором строк в памяти без привязки к конкретному файлу. -_______________________________________________ -## Создание списка. -Создать новый список можно из контекстного меню: ***Добавить действие → Списки → Список***. - -![Создание списка](./assets/Lists/Lists_pic1.png) - -Либо через *Панель статических блоков*: ***клик по иконке*** `+` ***→ Добавить список***. - -![через панель статических блоков](./assets/Lists/Lists_pic2.png) - -Созданный список отобразится на панели статических блоков: - -![отобразится на панели](./assets/Lists/Lists_pic3.png) - -При открытии списка появятся его настройки и превью содержимого. -Если список привязан к файлу, то отобразится содержимое этого файла. -Но когда привязки к файлу нет, то можно задать свои значения по умолчанию. -_______________________________________________ -## Настройки списка. -![Настройки списка](./assets/Lists/Lists_pic4.png) - -#### Загружать из файла. -Поставив галочку, мы обозначаем, что будем брать данные для списка из текстового файла формата `.txt`. -В случае, если галочку мы не ставим, то у каждого потока будет своя независимая копия списка. - -#### Сохранять изменения списка в файл. -При включении данной опции результат работы со списком будет автоматически сохраняться в привязанный текстовый файл. - -Если включена предыдущая настройка *Загрузка из файла*, но выключено *Сохранение в файл*, то для каждого потока будет создана своя, локальная, копия списка на основе указанного файла. Изменения списка внутри потоков никак не отразятся на привязанном файле. - -Но в случае, когда эта опция включена, то все потоки будут работать с одной копией списка. Соответственно, все изменения будут сохраняться в привязанный файл. - -#### Оставлять пустой файл. -Отвечает за то, нужно ли оставить пустой файл или удалить его, когда все данные в списке закончатся. - -#### Разделитель. -Здесь мы указываем, что будет использоваться в качестве разделения строк списка. Это может быть клавиша **Enter**, произвольный текст или регулярное выражение (Regex). - -![Разделитель](./assets/Lists/Lists_pic5.png) - -#### Путь к файлу. -![Путь к файлу.](./assets/Lists/Lists_pic6.png) - -Тут указываем путь к текстовому документу, из которого будем загружать список. Данные из него будут выгружаться в список при старте проекта. -:::tip **Если вы не знаете путь к файлу.** -Бывает такое, что путь определяется только во время выполнения проекта. Тогда можно использовать экшен **Работа со списком** с функцией ***Привязать к файлу***. -::: -_______________________________________________ -## Просмотр содержимого. -![Просмотр содержимого](./assets/Lists/Lists_pic7.png) - -Здесь можно полностью посмотреть весь список. -Помимо этого можно включить отображение управляющих символов, задать фильтр для поиска нужной строки, а также воспользоваться конструктором фильтра. -:::tip **Что такое управляющие символы?** -*Это невидимые символы, которые используются для управления форматированием текста и дополнительными операциями: перенос строки, табуляция.* -::: \ No newline at end of file diff --git a/docs/Project Editor/Lists and Google Sheets/Table_Processing.mdx b/docs/Project Editor/Lists and Google Sheets/Table_Processing.mdx deleted file mode 100644 index 3ba6f13a..00000000 --- a/docs/Project Editor/Lists and Google Sheets/Table_Processing.mdx +++ /dev/null @@ -1,170 +0,0 @@ ---- -sidebar_position: 4 -title: Операции над таблицами -description: Рассмотрим экшен для работы с таблицами. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../../Disclaimer).** -::: - -Таблицы используются для получения более сложно организованных данных, чем [**списки**](./Lists). Это может быть каталог товаров для интернет-магазина, в котором построчно прописаны разные данные: название, цена, описание и тд. - -#### Они могут использоваться для: -- Работы с комплексом данных; -- Добавления и получения элементов таблицы; -- Удаления строк, столбцов и дублей; -- Привязки к файлу; -- Получение количества строк и столбцов; -_______________________________________________ -## Как добавить в проект? -Через контекстное меню: ***Добавить действие → Таблицы → Операции над таблицей***. - -![Как добавить в проект?](./assets/Table_Processing/Table_Processing_pic1.png) -_______________________________________________ -## Доступные функции: -:::tip **Нюанс.** -*В качестве номера столбца можно использовать числа (нумерация с нуля), либо буквы латинского алфавита (в верхнем регистре).* -::: - -### Взять столбец. -Позволяет взять значения определенного столбца из таблицы и положить его в список. - -![Взять столбец](./assets/Table_Processing/Table_Processing_pic2.png) - -Выбираем Таблицу → определяем Функцию → указываем Столбец, который хотим забрать → выбираем Список, куда поместим столбец. -_______________________________________________ -### Взять строки. -Получаем строки с возможностью удаления их из таблицы и записью в список или переменные. - -![Взять строки](./assets/Table_Processing/Table_Processing_pic3.png) - -- **Критерии выбора строк:** - - *Все*; - - *Не содержит текст*; - - *Неудовлетворяющие регулярному выражению*; - - *Первую*; - - *Под номерами*; - - *Случайную*; - - *Содержит текст*; - - *Удовлетворяющие регулярному выражению*; -- **Удалить после взятия.** Определяет, останутся ли взятые строки в таблице или нет. -- **Поместить результат.** Строку можно отправить В список или в Переменные. А далее идет таблица, где мы можем это контроллировать. -_______________________________________________ -### Добавить список. -Здесь же наоборот можно положить выбранный список в определенный столбец таблицы. - -***Выбираем столбец, в который положим → Указываем список.*** -_______________________________________________ -### Добавить строку. -:::tip **Рекомендуем.** -*Когда нужно добавить сразу несколько строк в таблицу, то стоит воспользоваться экшеном **Обработка текста с функцией «В таблицу»**.* -::: -С помощью этой функции в таблицу можно положить статический текст (string) или переменную. Эти данные будут добавлены в конец таблицы. - -:::warning **Обратите внимание** -Если таблица привязана к файлу с расширениями `.csv`, `.xls(x)` или `.ods`, то в качестве разделителя нужно использовать `{-String.Tab-}`. -::: -_______________________________________________ -### Записать ячейку. -Добавляет текст в конкретную ячейку. - -![Записать ячейку](./assets/Table_Processing/Table_Processing_pic4.png) - -- **Строка и Столбец**. Здесь указываем статические координаты ячейки. Это также можно сделать через переменные. -- **Значение**. Пишем статический текст (string) или переменную. -_______________________________________________ -### Получить количество столбцов. -Здесь можно узнать, сколько всего столбцов содержит таблица. -Результат можно положить в переменную (***содержит только числовое значение (int)***). -_______________________________________________ -### Получить количество строк. -Эта операция показывает, сколько строк содержит таблица. -Результат можно положить в переменную (***содержит только числовое значение (int)***). -_______________________________________________ -### Привязать к файлу. -Позволяет привязать таблицу к файлу в ходе выполнения проекта. - -Этот экшен нужно использовать, если путь файла не известен на момент старта шаблона, а будет вычислен только во время выполнения. - -- **Путь к файлу**. Выбираем файл или указываем переменную, содержащую путь к файлу. -- **Создавать файл при отсутствии**. Если файл отсутствует по указанному пути, то он будет автоматически создан. -_______________________________________________ -### Прочитать ячейку. -Получить значение из заданной ячейки. - -- **Строка и Столбец**. Здесь указываем статические координаты ячейки. Это также можно сделать через переменные. -- **Положить в переменную**. Указываем переменную, в которую положим результат. -_______________________________________________ -### Сортировать таблицу. -Сортирует элементы таблицы по убыванию или возрастанию. - -![Сортировать таблицу](./assets/Table_Processing/Table_Processing_pic5.png) - -- **Столбцы**. Выбираем нужные. -ZennoDroid автоматически определяет столбцы со значениями и предлагает их. -- **Сортировать как числа, если это возможно**. Использовать принцип сортировки как у чисел. -:::info **Условие для работы** -*Данная опция сработает, только если в столбце находятся целые числа. Если же там присутствуют дробные числа, то столбец отсортируется по принципу строк.* -::: -- **Тип сортировка**. Сортируем По возрастанию или По убыванию. -_______________________________________________ -### Сохранить в файл. -Сохранение таблицы в файл во время выполнения проекта. Нужно выбрать файл или указать переменную, содержащую путь к нему. - -:::warning **Обратите внимание** -Функция умеет только **перезаписывать** существующий файл. -::: -_______________________________________________ -### Удалить дубли. -Эта функция удаляет повторяющиеся значения из таблицы. - -- **Столбцы**. Проверяем на дубли Все или конкретные. -ZennoDroid автоматически определяет столбцы со значениями и предлагает их. -_______________________________________________ -### Удалить столбец. -Целиком удаляет выбранный столбец из таблицы. - -- **Столбец**. Вводим конкретный столбец или переменную. -:::warning **Обратите внимание** -Столбец будет удалён **со всеми значениями**. -::: -_______________________________________________ -### Удалить строки. -Позволяет удалить определенные строки во всех столбцах. - -![Удалить строки](./assets/Table_Processing/Table_Processing_pic6.png) - -- **Критерии выбора строк**: - - Все; - - Не содержит текст; - - Неудовлетворяющие регулярному выражению; - - Первую; - - Под номерами (*нумерация с нуля*); - - Случайную; - - Содержит текст; - - Содержащие только пробельные символы; - - Удовлетворяющие регулярному выражению; - -:::warning **Обратите внимание** -Заданная строка будет удалена **во всех столбцах**. -::: -_______________________________________________ -## Рекомендации по работе с таблицами. -:::tip **Эта информация будет полезна для корректной работы в проектах** -::: - -- Не стоит привязывать к таблице слишком большие файлы (*100мб и более*) без опции ***«Сохранять изменения таблицы в файл»***. Особенно, если у вас мало оперативной памяти. -- При работе с таблицой, которая привязана к одному файлу сразу в нескольких проектах, нужно использовать одинаковый разделитель. Например, если в одном шаблоне столбцы разделены через `;` , а в другом через `-` , то произойдет ошибка. -- Когда проект работает в многопоточном режиме, а каждый поток при этом обрабатывает свою отдельную строку, то лучше включить опцию ***«Сохранять изменения таблицы в файл»***. Это позволит брать данные из таблицы и *удалять их после взятия*. -- Если вы синхронизируетесь с файлом, то все изменения в каждом из потоков будут сразу отображаться в проекте, так как таблица одна на все потоки. -- Однако если вы не используете синхронизацию с файлом, то для каждого потока будет создаваться своя копия таблицы. В этом случае удаление строки таблицы из одного потока не меняет таблицу в других потоках. -- Стоит учитывать, что таблицы в оперативной памяти занимают намного больше места, чем исходный файл на жестком диске. Например, таблица на основе файла CSV размером 10 MB в 100 потоков без синхронизации с файлом, может занять 5 GB оперативной памяти. Поэтому старайтесь не использовать списки и таблицы в режиме ***«без синхронизации»*** с файлом без необходимости. -_______________________________________________ -## Пример использования. -Открываем приложение маркетплейса, собираем название нужных товаров в список, а затем добавляем их в таблицу для дальнейшего использования. - -![Пример использования](./assets/Table_Processing/Table_Processing_pic7.png) - - - - - diff --git a/docs/Project Editor/Lists and Google Sheets/Tables.mdx b/docs/Project Editor/Lists and Google Sheets/Tables.mdx deleted file mode 100644 index 148cdcc5..00000000 --- a/docs/Project Editor/Lists and Google Sheets/Tables.mdx +++ /dev/null @@ -1,75 +0,0 @@ ---- -sidebar_position: 3 -title: Таблица -description: Как работать со таблицами. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../../Disclaimer).** -::: - -Таблица — это структурированный набор данных, организованный в строки и столбцы. Строки обычно представляют отдельные записи, а столбцы — различные атрибуты или параметры этих записей. Таблицы позволяют сохранять и получать данные из файла в различных форматах, либо вообще работать с данными в памяти без привязки к файлу. -_______________________________________________ -## Создание таблицы. -Создать новую таблицу можно из контекстного меню: ***Добавить действие → Таблицы → Таблица*** - -![Создание таблицы](./assets/Tables/Tables_pic1.png) - -Либо через *Панель статических блоков*: ***клик по иконке*** `+` ***→ Добавить таблицу***. Созданная таблица также отобразится на этой панели. - -![Создание таблицы](./assets/Tables/Tables_pic2.png) -_______________________________________________ -## Настройки таблицы. -![Создание таблицы](./assets/Tables/Tables_pic3.png) -_______________________________________________ -### Просмотр содержимого. -Эта опция позволяет посмотреть полное содержимое всей таблицы. -Также здесь можно включить отображение управляющих символов, задать фильтр для поиска нужной строки или ячейки и воспользоваться конструктором фильтра. - -![Создание таблицы](./assets/Tables/Tables_pic6.png) -_______________________________________________ -### Загружать из файла. -Позволяет брать данные для таблицы из файла. - -Если не загружать таблицу из файла, то у каждого потока будет своя, независимая копия таблицы. -_______________________________________________ -### Сохранять изменения таблицы в файл. -Результат работы с таблицей будет автоматически сохранён в привязанный файл. - -Если включена предыдущая настройка *Загрузка из файла*, но выключено *Сохранение в файл*, то для каждого потока будет создана своя, локальная, копия таблицы на основе указанного файла. Изменения таблицы внутри потоков никак не отразятся на привязанном файле. - -Но в случае, когда эта опция включена, то все потоки будут работать с одной копией таблицы. Соответственно, все изменения будут сохраняться в привязанный файл. -_______________________________________________ -### Оставлять пустой файл. -Если все данные в таблице закончатся, нужно ли оставить файл пустым или стоит удалить его. -_______________________________________________ -### Свой формат. -Можно использовать как свой формат файла, так и выбрать один из готовых форматов таблиц. -![Создание таблицы](./assets/Tables/Tables_pic4.png) - -Если выбрать работу с готовыми форматами, то появятся дополнительные настройки: - -![Создание таблицы](./assets/Tables/Tables_pic5.png) - -- **Первая строка — заголовки**. Использовать первую строку таблицы под заголовки; -- **Корректное отображение в Excel не латинских букв для .csv файлов**. -- **Разбирать тип данных (если возможно)**. Определяет тип данных в содержимом; -- **Разделитель для .csv формата**. Доступны `;` и `,` - -:::warning **Обратите внимание.** -При выборе готовых форматов работа идёт только с первым листом документа. -::: -_______________________________________________ -### Разделитель строк. -Этот параметр указывает, что должно использоваться в качестве разделения строк таблицы. -В качестве разделителей могут выступать: новая строка (`Enter`), свой кастомный разделитель, либо несколько разделителей. -_______________________________________________ -### Разделитель столбцов. -Устанавливает способ разделения столбцов таблицы. -Ими могут быть: символ `;`, клавиша `Tab`, а также свой один или несколько разделителей. -_______________________________________________ -### Путь к файлу. -Если таблица будет загружаться из файла, то здесь необходимо указать путь к нему. Данные будут загружены при старте проекта. - -:::tip **Если вы не знаете путь к файлу.** -Бывает такое, что путь определяется только во время выполнения проекта. Тогда можно использовать экшен **Работа с таблицами** с функцией ***Привязать к файлу***. -::: - diff --git a/docs/Project Editor/Lists and Google Sheets/Work_with_Lists.mdx b/docs/Project Editor/Lists and Google Sheets/Work_with_Lists.mdx deleted file mode 100644 index d73d885c..00000000 --- a/docs/Project Editor/Lists and Google Sheets/Work_with_Lists.mdx +++ /dev/null @@ -1,186 +0,0 @@ ---- -sidebar_position: 2 -title: Операции над списком -description: Как работать со списками. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../../Disclaimer).** -::: - -Списки нужны для получения строк данных из текстового документа, либо для записи данных в файл. -Например, есть файл со списком URL, на которые нужно зайти по очереди. Или же вы парсите какие-то значения с сайта (например, e-mail адреса) и нужно их отсортировать, удалить дубли и сохранить в файл. -_______________________________________________ -## Как добавить этот экшен в проект? -Из контекстного меню: ***Добавить действие → Списки → Операции над списком***. - -![Как добавить этот экшен в проект? ](./assets/Work_with_Lists/Work_with_Lists_pic1.png) - -### Для чего используется? -- Добавление и получение элементов списка; -- Удаление строк и дублей; -- Привязка к файлу; -- Получение количества строк; -- Перемешивание; -- Сортировка значений; -_______________________________________________ -## Как работать с экшеном? -После добавления экшена в проект в его свойствах нам нужно выбрать список, с которым будем работать, а затем действие для выполнения. - -![Как добавить этот экшен в проект? ](./assets/Work_with_Lists/Work_with_Lists_pic2.png) -_______________________________________________ -**Рассмотрим подробнее каждое доступное действие:** -### Выделить подсписок. -Выполняет выделение части строк из списка. - -![Как добавить этот экшен в проект? ](./assets/Work_with_Lists/Work_with_Lists_pic3.png) - -- **Список.** Выбираем список, в который будет сохранен результат. -- **Диапазон.** Способ фильтрации подсписка. Также для выбора доступны: - - *Элементы, не содержащие текст.* - Выберет все строки которые не содержат заданный текст. Можно использовать переменные. - - *Элементы, не удовлетворяющие регулярному выражению.* - Критерии поиска задаются с помощью Regex (регулярных выражений). - - *Элементы, содержащие текст.* - Выберет значения, которые содержат необходимый текст. Можно использовать переменные. - - *Элементы, удовлетворяющие регулярному выражению.* - Критерии поиска задаются с помощью Regex (регулярных выражений). -- **Поле для ввода критериев.** Указываются значения, соответствующие прошлому пункту. -- **Удалить строки после взятия.** Будут удалены строки, которые попали под критерии поиска. -- **Выходить по ошибке, если список пуст.** Если список пустой, то выполнение проекта пойдёт по красной ветке. -_______________________________________________ -### Добавить данные из списка. -Добавление данных из одного списка в другой. - -![Как добавить этот экшен в проект? ](./assets/Work_with_Lists/Work_with_Lists_pic4.png) - -- **Список.** Выбираем список, в который будет сохранен результат. -- **Куда.** В какую позицию поместим результат: `в конец`, `в начало`, `в позицию`. -- **В позицию.** Если выбрали этот вариант, то в соседнем поле нужно указать номер строки или переменную. - -:::info *При копировании строки не удаляются из исходного списка.* -::: -_______________________________________________ -### Добавить строку. -Добавление строки в список. - -![Как добавить этот экшен в проект? ](./assets/Work_with_Lists/Work_with_Lists_pic5.png) - -**1.** Выбираем список, в который будем добавлять строку. -**2.** Устанавливаем функцию. -**3.** Вносим значение или переменную. -**4.** В какую позицию поместим результат: `в конец`, `в начало`, `в позицию`. -**5.** Если выбрали `в позицию`, то в соседнем поле нужно указать номер строки или переменную. -***Подчеркнуто красной линией***. Значение, которое копируем в данном примере. -_______________________________________________ -### Добавить текст. -Добавляет текст в существующий список. - -![Как добавить этот экшен в проект? ](./assets/Work_with_Lists/Work_with_Lists_pic6.png) - -**1.** Выбираем список, в который будем добавлять текст. -**2.** Устанавливаем функцию. -**3.** Текст или набор символов для добавления в список, можно указать переменную. -**4.** В какую позицию поместим результат: `в конец`, `в начало`, `в позицию`. -**5.** Добавлять пустые строки в случае отсутствия текста. -_______________________________________________ -### Объединить элементы списка. -Объединение элементов списка с указанием разделителя и возможностью записи в переменную. - -![Как добавить этот экшен в проект? ](./assets/Work_with_Lists/Work_with_Lists_pic7.png) - -- **Разделитель.** - - *Новая строка.* Каждый элемент списка будет записан с новой строки. - - *Свой.* Указываем свой текст или символы, которые будут вставлены между элементами списка. - - *Указанный в списке.* Используется разделитель из настроек списка. -- **Положить в переменную**. Переменная для записи данных после обработки. - -### Перемешать элементы списка. -Размещает элементы в списке в случайном порядке. - -:::info *Изменение позиции не влечет за собой потери значений строки.* -::: -_______________________________________________ -### Получить количество строк. -Позволяет узнать количество строк в списке. - -#### Критерии поиска: -- Все; -- Не содержат текст; -- Не удовлетворяет регулярному выражению; -- Со значением; -- Содержат текст; -- Удовлетворяет регулярному выражению; - -:::info *Переменная всегда будет содержать только цифровое значение.* -::: -_______________________________________________ -### Получить строку. -Эта функция получает строку, а также дает возможность удалить ее из списка и записать в переменную. - -- **Критерии поиска:** - - *Не содержит текст*; - - *Не удовлетворяет регулярному выражению*; - - *Первую*; - - *По номеру*; - - *Случайную*; - - *Удовлетворяет регулярному выражению*; -- **Удалить строку после взятия**. Когда выбранная строка возьмется из списка, то после этого будет удалена. -- **Положить в переменную**. Здесь указываем кастомную переменную, в которую мы положим скопированную строку. -_______________________________________________ -### Привязать к файлу. -Привязка списка к файлу в ходе выполнения проекта. - -- **Путь к файлу**. Выбираем конкретный файл или указываем переменную, содержащую путь к нему. -- **Создавать файл при отсутствии.** Если файл отсутствует по указанному пути, то он будет автоматически создан. -_______________________________________________ -### Сортировать. -Сортировка элементов списка по убыванию или возрастанию. - -- **Сортировать как числа, если это возможно.** Использовать принцип сортировки как у чисел. -- **Тип сортировки**. По возрастанию или убыванию. - -:::info *Не всегда буквенные и символьные строки можно упорядочить.* -::: -_______________________________________________ -### Сохранить в файл. -Сохраняет список в файл. - -- **Разделитель**. Устанавливает разделитель: - - *Новая строка*; - - *Свой*; - - *Указанный в списке*; -- **Путь к файлу**. Выбираем файл или указываем переменную, содержащую путь к файлу. -- **Дописывать в конец файла**. Позволяет записывать новые данные в файл или перезаписывать его полностью. -_______________________________________________ -### Удалить дубли. -Удаление повторяющихся строк в списке. - -:::info *Для обработки файла с большим количеством строк может потребоваться время.* -::: -_______________________________________________ -### Удалить строки. -Удаляет строки из списка с заданными критериями. - -- **Критерии удаления строк:** - - *Все*; - - *Не содержащие текст*; - - *Не удовлетворяющие регулярному выражению*; - - *Первую*; - - *Под номерами (можно использовать диапазоны)*; - - *Со значением*; - - *Содержащие текст*; - - *Содержащие только пробельные символы*; - - *Удовлетворяющие регулярному выражению*; -_______________________________________________ -### Пример работы со списками. -Представим, что нам необходимо перейти по всем страницам из списка + собрать их названия + положить в другой список. - -![Как добавить этот экшен в проект? ](./assets/Work_with_Lists/Work_with_Lists_pic8.png) - -**1.** Создаём `Список_1` с несколькими страницами, предварительно привязав его к файлу. -**2.** Удаляем дубли, чтобы не переходить на страницу дважды. -**3.** Создаём `Список_2` и привязываем его к файлу. -**4.** Парсим необходимую информацию со страниц `Список_1` и копируем ее в `Список_2`. -**5.** Удаляем дубли. - -Таким образом можно наполнять списки нужной информации для дальнейшей обработки и использования. - diff --git a/docs/Project Editor/Lists and Google Sheets/_category_.json b/docs/Project Editor/Lists and Google Sheets/_category_.json deleted file mode 100644 index 2088160c..00000000 --- a/docs/Project Editor/Lists and Google Sheets/_category_.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "label": "Списки и Таблицы", - "position": 3, - "link": { - "type": "generated-index", - "title": "Как работать со списками и Google таблицами" - } - } - \ No newline at end of file diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic1.png b/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic1.png deleted file mode 100644 index c2e9f3c6..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic1.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic10.png b/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic10.png deleted file mode 100644 index a9c4aa1f..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic10.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic11.png b/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic11.png deleted file mode 100644 index f5c5f1e9..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic11.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic12.png b/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic12.png deleted file mode 100644 index 450f5d49..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic12.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic13.png b/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic13.png deleted file mode 100644 index 985fb721..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic13.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic14.png b/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic14.png deleted file mode 100644 index b186013b..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic14.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic15.png b/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic15.png deleted file mode 100644 index 421827fc..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic15.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic16.png b/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic16.png deleted file mode 100644 index 9224dfe3..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic16.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic17.png b/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic17.png deleted file mode 100644 index 78616f98..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic17.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic18.png b/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic18.png deleted file mode 100644 index df212c81..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic18.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic19.png b/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic19.png deleted file mode 100644 index 336ba0ea..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic19.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic2.png b/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic2.png deleted file mode 100644 index a8b695ef..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic2.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic20.png b/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic20.png deleted file mode 100644 index a16da155..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic20.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic21.png b/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic21.png deleted file mode 100644 index 720ce971..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic21.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic22.png b/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic22.png deleted file mode 100644 index 4e959f96..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic22.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic23.png b/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic23.png deleted file mode 100644 index 62d62b05..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic23.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic3.png b/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic3.png deleted file mode 100644 index 90fd87c7..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic3.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic4.png b/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic4.png deleted file mode 100644 index 83e15ca7..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic4.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic5.png b/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic5.png deleted file mode 100644 index 661c37db..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic5.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic6.png b/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic6.png deleted file mode 100644 index 5776b31a..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic6.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic7.png b/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic7.png deleted file mode 100644 index 94da381b..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic7.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic8.png b/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic8.png deleted file mode 100644 index 2fe93e90..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic8.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic9.png b/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic9.png deleted file mode 100644 index 2d76ba75..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Connecting_GoogleSheets/Connecting_GoogleSheets_pic9.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/GoogleSheet_Processing/GoogleSheet_Processing_pic1.png b/docs/Project Editor/Lists and Google Sheets/assets/GoogleSheet_Processing/GoogleSheet_Processing_pic1.png deleted file mode 100644 index 39668c06..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/GoogleSheet_Processing/GoogleSheet_Processing_pic1.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/GoogleSheet_Processing/GoogleSheet_Processing_pic2.png b/docs/Project Editor/Lists and Google Sheets/assets/GoogleSheet_Processing/GoogleSheet_Processing_pic2.png deleted file mode 100644 index d2f49eb8..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/GoogleSheet_Processing/GoogleSheet_Processing_pic2.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/GoogleSheet_Processing/GoogleSheet_Processing_pic3.png b/docs/Project Editor/Lists and Google Sheets/assets/GoogleSheet_Processing/GoogleSheet_Processing_pic3.png deleted file mode 100644 index 9e398772..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/GoogleSheet_Processing/GoogleSheet_Processing_pic3.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/GoogleSheet_Processing/GoogleSheet_Processing_pic4.png b/docs/Project Editor/Lists and Google Sheets/assets/GoogleSheet_Processing/GoogleSheet_Processing_pic4.png deleted file mode 100644 index c85aef31..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/GoogleSheet_Processing/GoogleSheet_Processing_pic4.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Google_Sheet/Google_Sheet_pic1.png b/docs/Project Editor/Lists and Google Sheets/assets/Google_Sheet/Google_Sheet_pic1.png deleted file mode 100644 index f29ac075..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Google_Sheet/Google_Sheet_pic1.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Google_Sheet/Google_Sheet_pic2.png b/docs/Project Editor/Lists and Google Sheets/assets/Google_Sheet/Google_Sheet_pic2.png deleted file mode 100644 index 4680cbe0..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Google_Sheet/Google_Sheet_pic2.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Google_Sheet/Google_Sheet_pic3.png b/docs/Project Editor/Lists and Google Sheets/assets/Google_Sheet/Google_Sheet_pic3.png deleted file mode 100644 index 1cb33042..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Google_Sheet/Google_Sheet_pic3.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Google_Sheet/Google_Sheet_pic4.png b/docs/Project Editor/Lists and Google Sheets/assets/Google_Sheet/Google_Sheet_pic4.png deleted file mode 100644 index c61ce230..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Google_Sheet/Google_Sheet_pic4.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Google_Sheet/Google_Sheet_pic5.png b/docs/Project Editor/Lists and Google Sheets/assets/Google_Sheet/Google_Sheet_pic5.png deleted file mode 100644 index 48923ebb..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Google_Sheet/Google_Sheet_pic5.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Google_Sheet/Google_Sheet_pic6.png b/docs/Project Editor/Lists and Google Sheets/assets/Google_Sheet/Google_Sheet_pic6.png deleted file mode 100644 index 59d1b734..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Google_Sheet/Google_Sheet_pic6.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Google_Sheet/Google_Sheet_pic7.png b/docs/Project Editor/Lists and Google Sheets/assets/Google_Sheet/Google_Sheet_pic7.png deleted file mode 100644 index adc26115..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Google_Sheet/Google_Sheet_pic7.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Google_Sheet/Google_Sheet_pic8.png b/docs/Project Editor/Lists and Google Sheets/assets/Google_Sheet/Google_Sheet_pic8.png deleted file mode 100644 index 32f62581..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Google_Sheet/Google_Sheet_pic8.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Google_Sheet/Google_Sheet_pic9.png b/docs/Project Editor/Lists and Google Sheets/assets/Google_Sheet/Google_Sheet_pic9.png deleted file mode 100644 index 3964bd65..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Google_Sheet/Google_Sheet_pic9.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Lists/Lists_pic1.png b/docs/Project Editor/Lists and Google Sheets/assets/Lists/Lists_pic1.png deleted file mode 100644 index 83ce91cd..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Lists/Lists_pic1.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Lists/Lists_pic2.png b/docs/Project Editor/Lists and Google Sheets/assets/Lists/Lists_pic2.png deleted file mode 100644 index b4da18d6..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Lists/Lists_pic2.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Lists/Lists_pic3.png b/docs/Project Editor/Lists and Google Sheets/assets/Lists/Lists_pic3.png deleted file mode 100644 index 94a9e67e..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Lists/Lists_pic3.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Lists/Lists_pic4.png b/docs/Project Editor/Lists and Google Sheets/assets/Lists/Lists_pic4.png deleted file mode 100644 index 08ad643f..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Lists/Lists_pic4.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Lists/Lists_pic5.png b/docs/Project Editor/Lists and Google Sheets/assets/Lists/Lists_pic5.png deleted file mode 100644 index 698a92b3..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Lists/Lists_pic5.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Lists/Lists_pic6.png b/docs/Project Editor/Lists and Google Sheets/assets/Lists/Lists_pic6.png deleted file mode 100644 index c2750fb5..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Lists/Lists_pic6.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Lists/Lists_pic7.png b/docs/Project Editor/Lists and Google Sheets/assets/Lists/Lists_pic7.png deleted file mode 100644 index 79fa9dbb..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Lists/Lists_pic7.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Table_Processing/Table_Processing_pic1.png b/docs/Project Editor/Lists and Google Sheets/assets/Table_Processing/Table_Processing_pic1.png deleted file mode 100644 index da86f106..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Table_Processing/Table_Processing_pic1.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Table_Processing/Table_Processing_pic2.png b/docs/Project Editor/Lists and Google Sheets/assets/Table_Processing/Table_Processing_pic2.png deleted file mode 100644 index 62468dfc..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Table_Processing/Table_Processing_pic2.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Table_Processing/Table_Processing_pic3.png b/docs/Project Editor/Lists and Google Sheets/assets/Table_Processing/Table_Processing_pic3.png deleted file mode 100644 index e209f516..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Table_Processing/Table_Processing_pic3.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Table_Processing/Table_Processing_pic4.png b/docs/Project Editor/Lists and Google Sheets/assets/Table_Processing/Table_Processing_pic4.png deleted file mode 100644 index 785f7aac..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Table_Processing/Table_Processing_pic4.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Table_Processing/Table_Processing_pic5.png b/docs/Project Editor/Lists and Google Sheets/assets/Table_Processing/Table_Processing_pic5.png deleted file mode 100644 index fc8ed97c..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Table_Processing/Table_Processing_pic5.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Table_Processing/Table_Processing_pic6.png b/docs/Project Editor/Lists and Google Sheets/assets/Table_Processing/Table_Processing_pic6.png deleted file mode 100644 index c070a0c6..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Table_Processing/Table_Processing_pic6.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Table_Processing/Table_Processing_pic7.png b/docs/Project Editor/Lists and Google Sheets/assets/Table_Processing/Table_Processing_pic7.png deleted file mode 100644 index bc366575..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Table_Processing/Table_Processing_pic7.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Tables/Tables_pic1.png b/docs/Project Editor/Lists and Google Sheets/assets/Tables/Tables_pic1.png deleted file mode 100644 index f6f6d975..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Tables/Tables_pic1.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Tables/Tables_pic2.png b/docs/Project Editor/Lists and Google Sheets/assets/Tables/Tables_pic2.png deleted file mode 100644 index 71d23327..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Tables/Tables_pic2.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Tables/Tables_pic3.png b/docs/Project Editor/Lists and Google Sheets/assets/Tables/Tables_pic3.png deleted file mode 100644 index c61907c2..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Tables/Tables_pic3.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Tables/Tables_pic4.png b/docs/Project Editor/Lists and Google Sheets/assets/Tables/Tables_pic4.png deleted file mode 100644 index d72b9a35..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Tables/Tables_pic4.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Tables/Tables_pic5.png b/docs/Project Editor/Lists and Google Sheets/assets/Tables/Tables_pic5.png deleted file mode 100644 index c6601f66..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Tables/Tables_pic5.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Tables/Tables_pic6.png b/docs/Project Editor/Lists and Google Sheets/assets/Tables/Tables_pic6.png deleted file mode 100644 index e42c5f20..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Tables/Tables_pic6.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Work_with_Lists/Work_with_Lists_pic1.png b/docs/Project Editor/Lists and Google Sheets/assets/Work_with_Lists/Work_with_Lists_pic1.png deleted file mode 100644 index 12675f57..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Work_with_Lists/Work_with_Lists_pic1.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Work_with_Lists/Work_with_Lists_pic2.png b/docs/Project Editor/Lists and Google Sheets/assets/Work_with_Lists/Work_with_Lists_pic2.png deleted file mode 100644 index 5fcea16c..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Work_with_Lists/Work_with_Lists_pic2.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Work_with_Lists/Work_with_Lists_pic3.png b/docs/Project Editor/Lists and Google Sheets/assets/Work_with_Lists/Work_with_Lists_pic3.png deleted file mode 100644 index 8a314627..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Work_with_Lists/Work_with_Lists_pic3.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Work_with_Lists/Work_with_Lists_pic4.png b/docs/Project Editor/Lists and Google Sheets/assets/Work_with_Lists/Work_with_Lists_pic4.png deleted file mode 100644 index e5b6e302..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Work_with_Lists/Work_with_Lists_pic4.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Work_with_Lists/Work_with_Lists_pic5.png b/docs/Project Editor/Lists and Google Sheets/assets/Work_with_Lists/Work_with_Lists_pic5.png deleted file mode 100644 index dc7bd368..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Work_with_Lists/Work_with_Lists_pic5.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Work_with_Lists/Work_with_Lists_pic6.png b/docs/Project Editor/Lists and Google Sheets/assets/Work_with_Lists/Work_with_Lists_pic6.png deleted file mode 100644 index 986c7751..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Work_with_Lists/Work_with_Lists_pic6.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Work_with_Lists/Work_with_Lists_pic7.png b/docs/Project Editor/Lists and Google Sheets/assets/Work_with_Lists/Work_with_Lists_pic7.png deleted file mode 100644 index e2cdcfcb..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Work_with_Lists/Work_with_Lists_pic7.png and /dev/null differ diff --git a/docs/Project Editor/Lists and Google Sheets/assets/Work_with_Lists/Work_with_Lists_pic8.png b/docs/Project Editor/Lists and Google Sheets/assets/Work_with_Lists/Work_with_Lists_pic8.png deleted file mode 100644 index 5de1e581..00000000 Binary files a/docs/Project Editor/Lists and Google Sheets/assets/Work_with_Lists/Work_with_Lists_pic8.png and /dev/null differ diff --git a/docs/Project Editor/Logic/BadEnd.mdx b/docs/Project Editor/Logic/BadEnd.mdx deleted file mode 100644 index 6e6a6672..00000000 --- a/docs/Project Editor/Logic/BadEnd.mdx +++ /dev/null @@ -1,89 +0,0 @@ ---- -sidebar_position: 5 -title: BadEnd -description: Выход по красной ветке. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../../Disclaimer).** -::: -_______________________________________________ -В случае возникновения ошибки в каком-либо из экшенов и при выходе из кубика по красной ветке выполнение проекта переходит в блок, который связан с действием **Bad End**. Это нужно, чтобы задать дополнительные действия в случае завершения работы шаблона с ошибкой. - -#### Когда используется? -При работе шаблона могут возникнуть ошибки: -- На сайте изменилась верстка, и шаблон теперь не может найти нужный HTML элемент. -- Логика шаблона не полностью продумана и не учитывает определенные ситуации. - -Из-за этого проект не будет выполнен до конца и завершится с ошибкой. -Чтобы исключить такие ситуации, ***можно использовать Bad End для***: - -- Возврата данных обратно в списки или таблицы для последующего их использования без потерь; -- Логирования ошибок; -- Добавления в Blacklist невалидной информации; -- Сохранения бэкапа. -_______________________________________________ -### Как добавить в проект? -Через контекстное меню: **Добавить действие → Логика → BadEnd**. - -![Как добавить в проект?](./assets/BadEnd/BadEnd_pic1.png) -_______________________________________________ -### Как работать с экшеном? -В случае завершения шаблона ошибкой, выполнятся действия, привязанные к Bad End: - -![Как работать с экшеном?](./assets/BadEnd/BadEnd_pic2.png) - -Bad End также срабатывает при прерывании шаблона или по истечению глобального таймаута выполнения. -За это отвечает настройка проекта в ZennoDroid — **Выполнять BadEnd при прерывании проекта**: - -![Выполнять BadEnd при прерывании проекта](./assets/BadEnd/BadEnd_pic3.png) - -:::info **Bad End срабатывает 1 раз для каждого потока.** -::: - -### Многократный переход в BadEnd. -При отладке проект переходит в BadEnd по умолчанию только один раз. Затем нужно перезапустить проект кнопкой **С начала**. -Для возможности переходить в BadEnd несколько раз подряд нужно включить в *Настройках* опцию **Переходить в Bad/GoodEnd при многократной отладке**. - -![Многократный переход в BadEnd](./assets/BadEnd/BadEnd_pic4.png) -_______________________________________________ -## Примеры использования. -### Восстановление данных в случае ошибки. -Представим, что для работы мы берем из списка строку с ее последующим удалением. Если в процессе проект завершился с какой-либо ошибкой до того, как мы обработали эту строку, то данные будут утеряны. Чтобы этого избежать мы используем Bad End вместе с действием добавления строки обратно в список. Таким образом при неудачном завершении работы необработанные данные будут сохранены назад в список для последующей обработки. - -### Отследить и исправить ошибку. -Каждое действие в шаблоне имеет уникальный идентификатор, с помощью которого его можно найти. Для того чтобы получить id экшена с ошибкой, нужно в логе кликнуть по ней ПКМ и нажать ***Скопировать id действия***. - -![Отследить и исправить ошибку.](./assets/BadEnd/BadEnd_pic5.png) - -Далее можно вызвать поиск через `Ctrl+F`, вставить полученный ID и нажать кнопку **Найти**. -Программа выделит проблемный экшен синей рамкой: - -![проблемный экшен синей рамкой](./assets/BadEnd/BadEnd_pic6.png) - -Ошибочное действие также можно подсветить через ПКМ в логе и выбором нужной опции: - -![подсветить через ПКМ](./assets/BadEnd/BadEnd_pic7.png) - -Так как сложно уследить за каждой ошибкой, мы рекомендуем логировать их в файл. Для этого нужно после **BadEnd** добавить кубик **Записать в файл** и вставить в него этот текст: -``` -{-TimeNow.Date-} {-Project.LastExecutedActionId-} -``` - -![логировать их в файл](./assets/BadEnd/BadEnd_pic8.png) - -Теперь при возникновении ошибки в проекте создастся файл `log.txt`, в котором будут записаны время и ID ошибки. - -Если одного ID мало для определения проблемы, то можно добавить сохранение: -- ***скриншота экрана***; -- ***исходного кода страницы***; -- ***значения переменных***. -Это позволит максимально подробно восстановить картину, которая привела к ошибке, и внести необходимые правки. - -### Добавление в Blacklist невалидной информации. -Можно создать список для хранения невалидной информации, которая приводит к ошибкам. Это могут быть неправильные логин с паролем. Тогда при последующей работе шаблон будет проверять наличие данных в *Blacklist* и в случае совпадения производить замену. - -![Добавление в Blacklist](./assets/BadEnd/BadEnd_pic9.png) - -### Сохранение бэкапа. -Можно сохранить рабочий профиль, чтобы в случае возникновения ошибки не потерять его. Затем после устранения проблемы его можно будет загрузить и продолжить работу. - -![Сохранение бэкапа](./assets/BadEnd/BadEnd_pic10.png) \ No newline at end of file diff --git a/docs/Project Editor/Logic/GoodEnd.mdx b/docs/Project Editor/Logic/GoodEnd.mdx deleted file mode 100644 index 68f7cd30..00000000 --- a/docs/Project Editor/Logic/GoodEnd.mdx +++ /dev/null @@ -1,27 +0,0 @@ ---- -sidebar_position: 6 -title: GoodEnd -description: Выход по зеленой ветке. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../../Disclaimer).** -::: -_______________________________________________ -Данное действие предназначено для выполнения каких-либо дополнительных действий после удачного выполнения проекта. -Может работать в связке с экшеном [**Bad End**](./BadEnd). - -_______________________________________________ -### Как добавить в проект? -Через контекстное меню: **Добавить действие → Логика → GoodEnd**. - -![Как добавить в проект?](./assets/GoodEnd/GoodEnd_pic1.png) -_______________________________________________ -### Как работать с экшеном? -Если последний кубик проекта завершится по зеленой ветке, то выполнение перейдет к действию, связанному с **GoodEnd**. - -![Как работать с экшеном?](./assets/GoodEnd/GoodEnd_pic2.png) - -### Многократный переход в GoodEnd. -При отладке проект переходит в *GoodEnd* по умолчанию только один раз. Затем нужно перезапустить проект кнопкой **С начала**. -Для возможности переходить в *GoodEnd* несколько раз подряд нужно включить в *Настройках* опцию **Переходить в Bad/GoodEnd при многократной отладке**. - -![Многократный переход в GoodEnd](./assets/BadEnd/BadEnd_pic4.png) \ No newline at end of file diff --git a/docs/Project Editor/Logic/IF.mdx b/docs/Project Editor/Logic/IF.mdx deleted file mode 100644 index 90b3d389..00000000 --- a/docs/Project Editor/Logic/IF.mdx +++ /dev/null @@ -1,106 +0,0 @@ ---- -sidebar_position: 1 -title: Оператор IF -description: Условие «Если ... то ...». ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../../Disclaimer).** -::: -## Описание. -Кубик **IF** — это один из основных логических экшенов, используемых в ZennoDroid. В своей работе он использует логику из *JavaScript*. Для сравнения используются логические операторы. - -Например, в самом простом виде оператор `if` сравнивает между собой два значения. Если значение оператора верное, то кубик принимает значение `True` (***выход по зелёной ветке***), а если не верное, то `False` (***выход по красной ветке***). - -В свойствах экшена есть поле ввода, куда можно вставить переменные проекта и окружения, а также константы. Кубик **IF** оперирует только двумя типами данных: числа и строки. - -#### Для чего используется: -- Сравнить значения чисел; -- Сопоставить текстовые строки; -- Проверка условий. -_______________________________________________ -## Как работать с экшеном IF? -### Добавление в проект. -Через контекстное меню: **Добавить действие → Логика → If**. - -![Добавление в проект.](./assets/IF/IF_pic6.png) - -### Пример №1 -**Рассмотрим простой пример для понимания этого оператора:** - -![Пример №1](./assets/IF/IF_pic1.png) - -**1.** Создадим переменную `value1` и присвоим ей значение `1`. -**2.** Добавим кубик **IF** с помощью действий: ***Логика → If***. -**3.** В поле свойств кубика вставим операнд: `{-Variable.value1-}` -**4.** Добавим оператор *равно*: `==` -**5.** Вставим второе сравниваемое значение: константу `1`. -**6.** Если теперь запустить кубик, то он завершится по зеленой линии (*появится зеленая галочка*). Потому что значение верное (***True***), так как переменная `value1` равна `1`. -**7.** А вот если заменить значение переменной на `2`, то кубик завершится по красной линии (*появится красный крестик*). Так как значение не верное (***False***). - -В этом примере мы использовали числовые данные и оператор сравнения `==`. А в следующем познакомимся с оператором **Не равно**: `!=` -_______________________________________________ -### Пример №2. -:::warning **Кавычки при сравнении значений.** -Для текстовых данных и переменных нужны **обязательно** (одинарные или двойные). А вот для чисел наоборот **не нужны**. Иначе сравнение будет работать некорректно. -::: - -![Пример №2](./assets/IF/IF_pic2.png) - -**1.** Создадим переменную `value1` и присвоим ей значение `“Hello World“`. -**2.** Добавим кубик **IF** с помощью действий: ***Логика → If***. -**3.** В поле свойств кубика вставим операнд: `{-Variable.value1-}` -**4.** Добавим оператор *не равно*: `!=` -**5.** Вставим второе сравниваемое значение: константу `“Hello World“`. -**6.** Если теперь запустить кубик, то он завершится по красной линии. Потому что значение ошибочное (***False***), так как переменные равны (а у нас оператор **Не равно**). -**7.** Когда мы поменяем значение переменной `value1` на `“Goodbye World“` и повторим кубик, то действие уже завершится по зеленой линии (***True***). -_______________________________________________ -### Пример №3 -Сравнение можно также использовать для проверки того, загрузился ли на странице хоть какой-то текст. - -![Пример №3](./assets/IF/IF_pic5.png) - -**1.** Проверяем переменную окружения `{-Page.Text-}` на пустоту. -**2.** Если на странице нет текста (она пустая), то кубик выйдет по зеленой ветке (***True***). -**3.** Тогда можно перезагрузить страницу или поставить дополнительную паузу, ожидая подгрузки страницы. - -Также кубик **IF** часто используется в циклах со счетчиком для сравнения с каким-либо максимальным значением. -_______________________________________________ -## Доступные операторы. -:::info **Для логического сравнения, помимо кубика «IF», можно использовать аналогичный оператор из C# кода.** -::: -#### Таблица всех операторов: -| Оператор | Описание | Пример использования | -|----------|:-------------:|------:| -| `<` | Меньше | `1<2` | -| `>` | Больше | `5>3` | -| `<=` | Меньше или равно | `7 <= 10` | -| `>=` | Больше или равно | `8 >= 8` | -| `==` | Равно | `“Привет” == “Привет”` | -| `!=` | Не равно | `“Привет” != “Пока”` | -| `&&` | Логическое **И** | `“Привет” != “Пока” && 5>3` | -| || | Логическое **ИЛИ** | “День“ == “Ночь” || 2 > 1 | -_______________________________________________ -### Оператор ИЛИ || -Этот оператор записывается как двойной символ вертикального слэша. Он позволяет сравнить сразу несколько условий в цепи, которые будут вычисляться слева направо. Кубик выдаст истинное значение **True**, если хотя бы одно из условий оказалось верным. Тогда как для получения **False** нужно, чтобы все выражения оказались ложными. - -![Оператор ИЛИ](./assets/IF/IF_pic3.png) - - -**1.** Присвоим переменной `{-Variable.value1-}` значение `1`, а `{-Variable.value2-}` значение `12`. -**2.** В поле ввода экшена напишем строку: `{-Variable.value1-} > 0 || {-Variable.value2-} < 10`. -**3.** Несмотря на то, что второе равенство *неверное*, кубик все равно завершится по зеленой ветке. Так как оператор **ИЛИ** выдает ***True***, если хотя бы одно из сравнений **верное**. -**4.** Изменим значение первой переменной на `-6`, тогда кубик выдаст ***False***, потому что все значения **неверные**. -_______________________________________________ -### Оператор И && -Оператор **И** пишется как два амперсанда `&&` и возвращает ***True***, когда все аргументы истинны, а если хотя бы одно ложное — ***False***. - -Рассмотрим работу этого оператора на конкретном примере с текстовыми строками. - -![Оператор И](./assets/IF/IF_pic4.png) - -В этом случае оба аргумента истинны. В переменной `value1` значение отличное от (**Не равно**) `“Hello“`, а в переменной `value2` как раз значение (**Равно**) `“World“`. Поэтому кубик завершается по зеленой ветке. -:::warning **Приоритет операторов.** -Приоритет оператора **И &&** больше, чем у **ИЛИ ||**, поэтому **И** выполняется в первую очередь, если они оба присутствуют в одном кубике. -::: - - - diff --git a/docs/Project Editor/Logic/Notification.mdx b/docs/Project Editor/Logic/Notification.mdx deleted file mode 100644 index f9a49afa..00000000 --- a/docs/Project Editor/Logic/Notification.mdx +++ /dev/null @@ -1,57 +0,0 @@ ---- -sidebar_position: 3 -title: Оповещение -description: Как оповещать пользователя шаблона. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../../Disclaimer).** -::: -_______________________________________________ -С помощью этого действия можно оповещать пользователя о событиях, происходящих в проекте. Сообщения будут отображаться в **Окне лога**. - -Используется для: -- Логирования действий в шаблоне; -- Оповещения пользователей об изменениях; -- Сообщения о версии шаблона и этапах его работы; -- Уведомления о количестве обработанных данных. -_______________________________________________ -### Как добавить в проект? -Через контекстное меню: **Добавить действие → Логика → Оповещение**. - -![Как добавить в проект?](./assets/Notification/Notification_pic1.png) -_______________________________________________ -## Как работать с экшеном? - -![Как работать с экшеном?](./assets/Notification/Notification_pic2.png) -_______________________________________________ -### Доступные параметры: -#### Текст сообщения. -Сюда мы пишем текст, который отобразится у пользователя. Можно использовать макросы. - -#### Уровень сообщения. -Тут указываем тип уведомления: -- Информация; -- Предупреждение; -- Ошибка; - -Это влияет на иконки уведомлений, а также позволяет сортировать по типу в **Окне лога**. - -#### Цвет сообщения. -![Цвет сообщения](./assets/Notification/Notification_pic3.png) - -Задает цвет фона для оповещения. В **Окне лога** можно сортировать по цвету. - -#### Показывать в ZennoDroid. -Если поставить галочку, то уведомления также будут приходить и в ZennoDroid, а не только в ProjectMaker. - -#### Выводить только в лог. -Когда эта опция выключена, оповещения будут всплывать прямо на рабочем столе. - -![Выводить только в лог](./assets/Notification/Notification_pic4.png) - -:::info **Важно.** -Если же в настройках программы уже включена опция ***Выводить оповещение только в лог***, то уведомлений на рабочем столе вы не увидите в любом случае. -::: - -#### Автоматически закрывать через N секунд. -Задаем время, которое оповещение будет висеть на рабочем столе после всплытия. - diff --git a/docs/Project Editor/Logic/Pause.mdx b/docs/Project Editor/Logic/Pause.mdx deleted file mode 100644 index 4a8444bd..00000000 --- a/docs/Project Editor/Logic/Pause.mdx +++ /dev/null @@ -1,54 +0,0 @@ ---- -sidebar_position: 4 -title: Пауза -description: Действие остановки проекта. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../../Disclaimer).** -::: -_______________________________________________ -Данное действие позволяет останавливать выполнение проекта на заданный в секундах промежуток времени. - -Используется для: -- Ожидания полной загрузки приложения; -- Создания человеческого поведения с помощью случайных пауз; -- Задания промежутка времени между выполнениями действий; -_______________________________________________ -### Как добавить в проект? -Через контекстное меню: **Добавить действие → Логика → Пауза**. - -![Как добавить в проект?](./assets/Pause/Pause_pic1.png) -_______________________________________________ -## Как работать с экшеном? -:::info **Значение устанавливается в секундах.** -Если используются переменные, то значение должно быть цифровым. -::: - -### Точная. -Проект остановит выполнение на указанное количество секунд. Значение можно задать вручную или через переменную. - -![Точная](./assets/Pause/Pause_pic2.png) - -### Интервал. -Указывается пауза в заданном цифровом промежутке, можно использовать переменные. - -![Интервал](./assets/Pause/Pause_pic3.png) - -- **ОТ**. Минимальное время в секундах. -- **ДО**. Максимальная пауза в секундах (**НЕ ВКЛЮЧИТЕЛЬНО**). - -Например, после настроек со скриншота проект уйдет в ожидание на время, выбранное случайным образом из диапазона от 20 до 59 секунд. -_______________________________________________ -### Пример. -Допустим, что нам нужно сделать несколько однотипных действий в приложении. Чтобы они не выглядели роботизировано из-за молниеносного выполнения, мы рекомендуем делать случайные паузы между действиями. - -Это может выглядеть вот так: -1. Открываем приложение. -2. Выполняем необходимые действия. -3. Задаем паузу в интервале. -4. Снова выполняем действия. - -Таким образом, выдерживая паузы между действиями, мы даем понять сайту, что работает *живой* пользователь, а не бот. - - - - diff --git a/docs/Project Editor/Logic/Switch.mdx b/docs/Project Editor/Logic/Switch.mdx deleted file mode 100644 index be7ab96c..00000000 --- a/docs/Project Editor/Logic/Switch.mdx +++ /dev/null @@ -1,55 +0,0 @@ ---- -sidebar_position: 2 -title: Оператор Switch -description: Выбор из нескольких вариантов ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../../Disclaimer).** -::: - -export const VideoSample = ({source}) => ( - -); - -Оператор Switch представляет собой расширенную версию [**IF**](./IF). Но оператор **IF** имеет только два выхода — ***True*** или ***False*** (*зеленая или красная ветви*), тогда как у **Switch** есть возможность выбрать несколько разных вариантов. В случае отсутствия нужного варианта, кубик выйдет по ветке *Default*. - -### Как добавить в проект? -Через контекстное меню: **Добавить действие → Логика → Switch**. - -![Добавление в проект.](./assets/Switch/Switch_pic1.png) -_______________________________________________ -## Как пользоваться? -Данный экшен нужен для выбора варианта из заданного перечня. Либо для проверки на определенное соответствие. - -![Как пользоваться?](./assets/Switch/Switch_pic2.png) -_______________________________________________ -### Доступные свойства. -#### Переменная. -Здесь указывается переменная, которую мы будем проверять. Если она не была создана ранее, то ее можно задать прямо из этого поля. - -#### Список условий. -Тут мы пишем условия для выхода. Значение из *переменной* будет сравниваться с каждым из условий и при нахождении совпадения выйдет по соответствующей ветке. - -В качестве условия для выхода можно использовать не только жестко заданный текст, но и переменные. Как в этом примере: - -![Список условий](./assets/Switch/Switch_pic3.png) - -#### Выход Default. -Если не будет найдено ни одного совпадения, то экшен выйдет по ветке ***Default***. Если данная ветка при этом не соединена с экшеном, то появится ошибка. -_______________________________________________ -### Пример работы. - -![Пример работы](./assets/Switch/Switch_pic4.png) -_______________________________________________ -### Пример в видео. -Представим ситуацию, в которой у нас существует какое-либо значение для переменной `switch_test`. - -Далее создадим операции **Оповещение (Notification/Запись в лог)** для каждого из вариантов. - -Видео с примером: - - - - - diff --git a/docs/Project Editor/Logic/_category_.json b/docs/Project Editor/Logic/_category_.json deleted file mode 100644 index 9250b36c..00000000 --- a/docs/Project Editor/Logic/_category_.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "label": "Логика в ZD", - "position": 4, - "link": { - "type": "generated-index", - "title": "Какие логические операции есть в ZennoDroid?" - } - } - \ No newline at end of file diff --git a/docs/Project Editor/Logic/assets/BadEnd/BadEnd_pic1.png b/docs/Project Editor/Logic/assets/BadEnd/BadEnd_pic1.png deleted file mode 100644 index 70cd98f5..00000000 Binary files a/docs/Project Editor/Logic/assets/BadEnd/BadEnd_pic1.png and /dev/null differ diff --git a/docs/Project Editor/Logic/assets/BadEnd/BadEnd_pic10.png b/docs/Project Editor/Logic/assets/BadEnd/BadEnd_pic10.png deleted file mode 100644 index f8433a5e..00000000 Binary files a/docs/Project Editor/Logic/assets/BadEnd/BadEnd_pic10.png and /dev/null differ diff --git a/docs/Project Editor/Logic/assets/BadEnd/BadEnd_pic2.png b/docs/Project Editor/Logic/assets/BadEnd/BadEnd_pic2.png deleted file mode 100644 index a523ad78..00000000 Binary files a/docs/Project Editor/Logic/assets/BadEnd/BadEnd_pic2.png and /dev/null differ diff --git a/docs/Project Editor/Logic/assets/BadEnd/BadEnd_pic3.png b/docs/Project Editor/Logic/assets/BadEnd/BadEnd_pic3.png deleted file mode 100644 index 45214d28..00000000 Binary files a/docs/Project Editor/Logic/assets/BadEnd/BadEnd_pic3.png and /dev/null differ diff --git a/docs/Project Editor/Logic/assets/BadEnd/BadEnd_pic4.png b/docs/Project Editor/Logic/assets/BadEnd/BadEnd_pic4.png deleted file mode 100644 index e8e10459..00000000 Binary files a/docs/Project Editor/Logic/assets/BadEnd/BadEnd_pic4.png and /dev/null differ diff --git a/docs/Project Editor/Logic/assets/BadEnd/BadEnd_pic5.png b/docs/Project Editor/Logic/assets/BadEnd/BadEnd_pic5.png deleted file mode 100644 index c675b614..00000000 Binary files a/docs/Project Editor/Logic/assets/BadEnd/BadEnd_pic5.png and /dev/null differ diff --git a/docs/Project Editor/Logic/assets/BadEnd/BadEnd_pic6.png b/docs/Project Editor/Logic/assets/BadEnd/BadEnd_pic6.png deleted file mode 100644 index d2ed4c6a..00000000 Binary files a/docs/Project Editor/Logic/assets/BadEnd/BadEnd_pic6.png and /dev/null differ diff --git a/docs/Project Editor/Logic/assets/BadEnd/BadEnd_pic7.png b/docs/Project Editor/Logic/assets/BadEnd/BadEnd_pic7.png deleted file mode 100644 index 7571eb84..00000000 Binary files a/docs/Project Editor/Logic/assets/BadEnd/BadEnd_pic7.png and /dev/null differ diff --git a/docs/Project Editor/Logic/assets/BadEnd/BadEnd_pic8.png b/docs/Project Editor/Logic/assets/BadEnd/BadEnd_pic8.png deleted file mode 100644 index 1378581f..00000000 Binary files a/docs/Project Editor/Logic/assets/BadEnd/BadEnd_pic8.png and /dev/null differ diff --git a/docs/Project Editor/Logic/assets/BadEnd/BadEnd_pic9.png b/docs/Project Editor/Logic/assets/BadEnd/BadEnd_pic9.png deleted file mode 100644 index 9a138da5..00000000 Binary files a/docs/Project Editor/Logic/assets/BadEnd/BadEnd_pic9.png and /dev/null differ diff --git a/docs/Project Editor/Logic/assets/GoodEnd/GoodEnd_pic1.png b/docs/Project Editor/Logic/assets/GoodEnd/GoodEnd_pic1.png deleted file mode 100644 index 3021902d..00000000 Binary files a/docs/Project Editor/Logic/assets/GoodEnd/GoodEnd_pic1.png and /dev/null differ diff --git a/docs/Project Editor/Logic/assets/GoodEnd/GoodEnd_pic2.png b/docs/Project Editor/Logic/assets/GoodEnd/GoodEnd_pic2.png deleted file mode 100644 index 78cf3c1c..00000000 Binary files a/docs/Project Editor/Logic/assets/GoodEnd/GoodEnd_pic2.png and /dev/null differ diff --git a/docs/Project Editor/Logic/assets/IF/IF_pic1.png b/docs/Project Editor/Logic/assets/IF/IF_pic1.png deleted file mode 100644 index 5c10183d..00000000 Binary files a/docs/Project Editor/Logic/assets/IF/IF_pic1.png and /dev/null differ diff --git a/docs/Project Editor/Logic/assets/IF/IF_pic2.png b/docs/Project Editor/Logic/assets/IF/IF_pic2.png deleted file mode 100644 index 6a1b0565..00000000 Binary files a/docs/Project Editor/Logic/assets/IF/IF_pic2.png and /dev/null differ diff --git a/docs/Project Editor/Logic/assets/IF/IF_pic3.png b/docs/Project Editor/Logic/assets/IF/IF_pic3.png deleted file mode 100644 index 7275e3b8..00000000 Binary files a/docs/Project Editor/Logic/assets/IF/IF_pic3.png and /dev/null differ diff --git a/docs/Project Editor/Logic/assets/IF/IF_pic4.png b/docs/Project Editor/Logic/assets/IF/IF_pic4.png deleted file mode 100644 index e69607df..00000000 Binary files a/docs/Project Editor/Logic/assets/IF/IF_pic4.png and /dev/null differ diff --git a/docs/Project Editor/Logic/assets/IF/IF_pic5.png b/docs/Project Editor/Logic/assets/IF/IF_pic5.png deleted file mode 100644 index 8302e828..00000000 Binary files a/docs/Project Editor/Logic/assets/IF/IF_pic5.png and /dev/null differ diff --git a/docs/Project Editor/Logic/assets/IF/IF_pic6.png b/docs/Project Editor/Logic/assets/IF/IF_pic6.png deleted file mode 100644 index 5d2405da..00000000 Binary files a/docs/Project Editor/Logic/assets/IF/IF_pic6.png and /dev/null differ diff --git a/docs/Project Editor/Logic/assets/Notification/Notification_pic1.png b/docs/Project Editor/Logic/assets/Notification/Notification_pic1.png deleted file mode 100644 index cea5592a..00000000 Binary files a/docs/Project Editor/Logic/assets/Notification/Notification_pic1.png and /dev/null differ diff --git a/docs/Project Editor/Logic/assets/Notification/Notification_pic2.png b/docs/Project Editor/Logic/assets/Notification/Notification_pic2.png deleted file mode 100644 index fb70d866..00000000 Binary files a/docs/Project Editor/Logic/assets/Notification/Notification_pic2.png and /dev/null differ diff --git a/docs/Project Editor/Logic/assets/Notification/Notification_pic3.png b/docs/Project Editor/Logic/assets/Notification/Notification_pic3.png deleted file mode 100644 index 5bc18c81..00000000 Binary files a/docs/Project Editor/Logic/assets/Notification/Notification_pic3.png and /dev/null differ diff --git a/docs/Project Editor/Logic/assets/Notification/Notification_pic4.png b/docs/Project Editor/Logic/assets/Notification/Notification_pic4.png deleted file mode 100644 index 4baa71be..00000000 Binary files a/docs/Project Editor/Logic/assets/Notification/Notification_pic4.png and /dev/null differ diff --git a/docs/Project Editor/Logic/assets/Pause/Pause_pic1.png b/docs/Project Editor/Logic/assets/Pause/Pause_pic1.png deleted file mode 100644 index ce312e13..00000000 Binary files a/docs/Project Editor/Logic/assets/Pause/Pause_pic1.png and /dev/null differ diff --git a/docs/Project Editor/Logic/assets/Pause/Pause_pic2.png b/docs/Project Editor/Logic/assets/Pause/Pause_pic2.png deleted file mode 100644 index 64cae22a..00000000 Binary files a/docs/Project Editor/Logic/assets/Pause/Pause_pic2.png and /dev/null differ diff --git a/docs/Project Editor/Logic/assets/Pause/Pause_pic3.png b/docs/Project Editor/Logic/assets/Pause/Pause_pic3.png deleted file mode 100644 index 572b6d44..00000000 Binary files a/docs/Project Editor/Logic/assets/Pause/Pause_pic3.png and /dev/null differ diff --git a/docs/Project Editor/Logic/assets/Switch/Switch_pic1.png b/docs/Project Editor/Logic/assets/Switch/Switch_pic1.png deleted file mode 100644 index 9d19498e..00000000 Binary files a/docs/Project Editor/Logic/assets/Switch/Switch_pic1.png and /dev/null differ diff --git a/docs/Project Editor/Logic/assets/Switch/Switch_pic2.png b/docs/Project Editor/Logic/assets/Switch/Switch_pic2.png deleted file mode 100644 index e2995f0a..00000000 Binary files a/docs/Project Editor/Logic/assets/Switch/Switch_pic2.png and /dev/null differ diff --git a/docs/Project Editor/Logic/assets/Switch/Switch_pic3.png b/docs/Project Editor/Logic/assets/Switch/Switch_pic3.png deleted file mode 100644 index ee257ede..00000000 Binary files a/docs/Project Editor/Logic/assets/Switch/Switch_pic3.png and /dev/null differ diff --git a/docs/Project Editor/Logic/assets/Switch/Switch_pic4.png b/docs/Project Editor/Logic/assets/Switch/Switch_pic4.png deleted file mode 100644 index a28cfb3c..00000000 Binary files a/docs/Project Editor/Logic/assets/Switch/Switch_pic4.png and /dev/null differ diff --git a/docs/Project Editor/Project/BotInterface.mdx b/docs/Project Editor/Project/BotInterface.mdx deleted file mode 100644 index 2cb939c2..00000000 --- a/docs/Project Editor/Project/BotInterface.mdx +++ /dev/null @@ -1,126 +0,0 @@ ---- -sidebar_position: 3 -title: Интерфейс бота -description: Визуальный конструктор для создания интерфейса. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../../Disclaimer).** -::: -_______________________________________________ -## Описание. -Интерфейс бота (англ. bot user interface, далее BotUI) — это визуальный конструктор для создания интерфейса на основе web-технологий: HTML, CSS, Java Script. - -С помощью данного редактора вы сможете без знаний веб разработки быстро и просто создавать красивый и интуитивно понятный интерфейс для ваших проектов! - -BotUI включает функционал настроек и позволяет передавать входные параметры шаблону/плагину для его последующего выполнения в ZennoDroid. -_______________________________________________ -## Как добавить в проект? -Через контекстное меню: **Добавить действие → Проект → Интерфейс бота**. - -![Как добавить в проект?](./assets/BotInterface/BotInterface_pic1.png) - -Или через ***Панель статических блоков***: - -![через Панель](./assets/BotInterface/BotInterface_pic2.png) - -![иконка](./assets/BotInterface/BotInterface_pic3.png) На панели появится соответствующая иконка. -_______________________________________________ -:::info **Данный блок настроек не совместим с *Входными настройками*.** -Так что при добавлении одного, другой сразу удаляется из проекта. Будьте внимательны и предварительно сохраняйте настройки. - -![не совместим](./assets/InputSetting/InputSetting_pic4.png) -::: -_______________________________________________ - -## Редактор интерфейса бота. -![иконка](./assets/BotInterface/BotInterface_pic4.png) -_______________________________________________ -### Основные настройки. -#### Меню. -![иконка](./assets/BotInterface/BotInterface_pic5.png) - -- **Новый**. Создает новый интерфейс. При создании основное полотно полностью очищается, а имеющиеся на нем элементы удаляются. -- **Просмотр**. Предварительный просмотр интерфейса -- **Отменить**. Вернуться на шаг назад. -- **Повторить**. Перейти на шаг вперед. -- **Открыть код**. Открывает редактор исходного кода, который скрыт за визуальной оболочкой. -- **Язык**. Переключает язык интерфейса. -- **Справка**. Переносит вас на текущую статью в справке. - -#### Рабочая область. -![иконка](./assets/BotInterface/BotInterface_pic6.png) - -**1. Панель инструментов.** -Здесь располагаются различные элементы для построения клиентского интерфейса. Например, формы для ввода текста, выбор между вариантами, дополнительные модули и сервисы, кнопки и чекбоксы. - -**2. Внешний вид интерфейса.** -Макет (полотно) для будущих входных настроек. На него можно перетаскивать различные элементы из панели слева, располагая их нужным образом. - -**3. Свойства элемента.** -Здесь мы настраиваем свойства конкретного элемента. Задаем цвет, шрифт, переменную и прочее. -_______________________________________________ -### Элементы в Панели инструментов. -| Название | Внешний вид | Описание | -| :----------------: | :------: | :----: | -| ***Text*** | ![иконка](./assets/BotInterface/BotInterface_pic7.png) | Обычный текст для заметок на полотне. | -| ***Textbox*** | ![иконка](./assets/BotInterface/BotInterface_pic8.png) | Однострочное поле ввода. | -| ***Password*** | ![иконка](./assets/BotInterface/BotInterface_pic9.png) | Поле для пароля. Отличается тем, что визуально символы заменяются на кружочки. | -| ***Number*** | ![иконка](./assets/BotInterface/BotInterface_pic10.png) | Только для целочисленных значений | -| ***Boolean*** | ![иконка](./assets/BotInterface/BotInterface_pic11.png) | Чекбокс для выбора: True или False.| -| ***TextArea*** | ![иконка](./assets/BotInterface/BotInterface_pic12.png) | Поле для многострочного текста. | -| ***Select*** | ![иконка](./assets/BotInterface/BotInterface_pic13.png) | Выпадающий список. Варианты для выбора задаются через **Options**, где `Text` — отображаемый текст, `Value` — значение для переменной. | -| ***Radio*** | ![иконка](./assets/BotInterface/BotInterface_pic14.png) | Группа кнопок для выбора одного из вариантов. | -| ***Filename*** | ![иконка](./assets/BotInterface/BotInterface_pic15.png) | Поле для ввода пути к файлу. Значение по умолчанию указывается в параметре **FilePath**. | -| ***Button*** | ![иконка](./assets/BotInterface/BotInterface_pic16.png) | Кнопка, к которой можно привязать JavaScript-событие. | -| ***Multiselect*** | ![иконка](./assets/BotInterface/BotInterface_pic17.png) | Выпадающий список с возможностью выбора нескольких вариантов. | -| ***Captcha Modules*** | ![иконка](./assets/BotInterface/BotInterface_pic18.png) | Выбор сервиса для ***распознавания капчи*** из списка доступных. | -| ***Sms Services*** | ![иконка](./assets/BotInterface/BotInterface_pic19.png) | Выбор сервиса для ***приема СМС*** из списка доступных. | -| ***Translate Services*** | ![иконка](./assets/BotInterface/BotInterface_pic20.png) | Выбор сервиса для ***перевода текста*** из списка доступных. | -| ***Tab*** | ![иконка](./assets/BotInterface/BotInterface_pic21.png) | Коллекция вкладок. Можно добавлять любые другие элементы, кроме непосредственно ***Tab***. Редактируется через параметр **Tabs**. | -| ***Language Selector*** | ![иконка](./assets/BotInterface/BotInterface_pic22.png) | Выбор языка интерфейса, который настраивается в разделе **Локализация**. | -| ***Start Button*** | ![иконка](./assets/BotInterface/BotInterface_pic23.png) | Кнопка для старта. | -| ***Stop Button*** | ![иконка](./assets/BotInterface/BotInterface_pic24.png) | Кнопка для остановки. | -| ***Interrupt Button*** | ![иконка](./assets/BotInterface/BotInterface_pic25.png) | Кнопка, чтобы прервать действие. | -| ***Proxy Control*** | ![иконка](./assets/BotInterface/BotInterface_pic26.png) | Использование прокси из текущего проекта. Сами прокси настраиваются через ZennoDroid. | -| ***Mapper*** | | Элемент для синхронизации списков/таблиц/google таблиц текущего проекта с плагином. | -| ***User Control*** | | Сюда можно добавить любые пользовательские элементы с помощью HTML кода. | -_______________________________________________ -### Как добавить элемент в интерфейс? -Каждый элемент можно перетащить мышкой на полотно. Располагать их можно только в видимой области. - -![иконка](./assets/BotInterface/BotInterface_pic27.gif) -_______________________________________________ -### Внешний вид интерфейса. -![иконка](./assets/BotInterface/BotInterface_pic28.png) -_______________________________________________ -### Свойства элемента. -При нажатии на элемент, который расположен на полотне, справа появляются его свойства. -#### Основные. -![иконка](./assets/BotInterface/BotInterface_pic29.png) - -Каждый элемент имеет свои уникальные параметры, которые можно изменять в этом окне. Например: шрифт, размер и цвет текста. -
-**При нажатии на любой из параметров снизу появится его описание.** - - - ![иконка](./assets/BotInterface/BotInterface_pic30.png) -
- -#### Дополнительно. -![иконка](./assets/BotInterface/BotInterface_pic31.png) - -Дополнительные свойства (метаданные) элемента, которые нужны для более тонкой настройки отображения. Описание каждой из настроек также дано внизу окна. -:::tip **Пример для поля с паролем.** -![иконка](./assets/BotInterface/BotInterface_pic32.gif) -::: -_______________________________________________ -## Локализация. -Здесь можно задать то, как определенные настройки будут отображаться на разных языках. Добавление языков осуществляется через кнопку **Выбор языков** в левом верхнем углу. - -![иконка](./assets/BotInterface/BotInterface_pic33.png) -_______________________________________________ -## Пример итогового интерфейса. -Открыть пользовательский интерфейс в ZD можно нажатием **ПКМ по проекту в списке → Настройки**. Или дважды кликнуть по нему. - -![иконка](./assets/BotInterface/BotInterface_pic34.png) - -Получился вот такой простой и понятный интерфейс, который можно использовать для своего шаблона или плагина, а затем передавать его другому пользователю. \ No newline at end of file diff --git a/docs/Project Editor/Project/InputSetting.mdx b/docs/Project Editor/Project/InputSetting.mdx deleted file mode 100644 index 43dacb6a..00000000 --- a/docs/Project Editor/Project/InputSetting.mdx +++ /dev/null @@ -1,227 +0,0 @@ ---- -sidebar_position: 2 -title: Входные настройки -description: Установка входных параметров. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../../Disclaimer).** -::: -_______________________________________________ -С помощью входных настроек можно задать необходимые значения для корректного запуска проекта. - -:::warning **Входные настройки считываются только при старте!** -Их изменение во время выполнения проекта не будет применено до следующего запуска. -::: -_______________________________________________ -## Как добавить «Входные настройки» в проект? -Через контекстное меню: **Добавить действие → Проект → Входные настройки**. - -![Как добавить в проект?](./assets/InputSetting/InputSetting_pic1.png) - -Или через ***Панель статических блоков***: - -![через Панель](./assets/InputSetting/InputSetting_pic2.png) - -![иконка](./assets/InputSetting/InputSetting_pic3.png) На панели появится соответствующая иконка. -_______________________________________________ -:::info **Данный блок настроек не совместим с *Интерфейсом бота*.** -Так что при добавлении одного, другой сразу удаляется из проекта. Будьте внимательны и предварительно сохраняйте настройки. - -![не совместим](./assets/InputSetting/InputSetting_pic4.png) -::: -_______________________________________________ -## Редактирование входных параметров. -![Доступные поля](./assets/InputSetting/InputSetting_pic5.png) -_______________________________________________ -### Доступные поля: -#### Имя. -Здесь задаем название для создаваемой настройки. - -#### Тип. -![Тип](./assets/InputSetting/InputSetting_pic6.png) ![Как добавить в проект?](./assets/InputSetting/InputSetting_pic7.png) - -Поддерживаются разные типы данных. Они определяют, какую информацию сможет внести пользователь, а также вид отображаемой настройки. - -Ниже, в отдельной секции, мы рассмотрим каждый из них подробнее. - -#### Значение по умолчанию. -Начальное значение параметра. При старте проекта оно также будет находиться в ***переменной проекта***. - -#### Сохранить в переменную. -Имя переменной, в которую запишется указанное значение. - -#### Справка. -Справочное пояснение для настройки в виде всплывающей подсказки. - -![Справка](./assets/InputSetting/InputSetting_pic8.png) -_______________________________________________ -### Кнопки справа. -![Кнопки справа](./assets/InputSetting/InputSetting_pic9.png) - -#### Предварительный просмотр. -Значок «Лупы» позволяет в любой момент посмотреть на то, как будут выглядеть созданные настройки. - -![Предварительный просмотр](./assets/InputSetting/InputSetting_pic10.png) - -#### Перемещение настроек вверх и вниз. -Для того, чтобы переместить настройку выше или ниже по списку её надо выделить и перемещать с помощью стрелочек. - -![вверх и вниз](./assets/InputSetting/InputSetting_pic11.gif) - -#### Удаление настройки. -Для удаления надо выделить настройку и нажать на минус. - -![Удаление настройк](./assets/InputSetting/InputSetting_pic12.png) - -#### Скопировать макрос переменной. -Для того, чтобы скопировать макрос в буфер обмена, надо кликнуть по значку файлика справа. - -![Скопировать макрос](./assets/InputSetting/InputSetting_pic13.png) -_______________________________________________ -### Кнопки предварительного просмотра. -![Кнопки предварительного просмотра](./assets/InputSetting/InputSetting_pic14.png) - -#### Экспорт. -Позволяет сохранить текущие настройки в файл. - -#### Импорт. -Дает возможность загрузить из файла настройки, которые были сохранены ранее. - -#### По умолчанию. -Сбрасывает настройки до значений, выставленных по умолчанию. -_______________________________________________ -## Доступные типы параметров. -### Label. -Заголовок. Используется для визуального разделения логических секций. - -![Label](./assets/InputSetting/InputSetting_pic15.png) -_______________________________________________ -### Boolean. -Чекбокс (галочка). Либо она есть, либо ее нет (значения True или False). - -![Boolean](./assets/InputSetting/InputSetting_pic16.png) -_______________________________________________ -### Number. -Поле с указанием целого числа. - -![Number](./assets/InputSetting/InputSetting_pic17.png) -_______________________________________________ -### Text. -Текстовое поле. -#### Однострочный текст. -![Однострочный текст](./assets/InputSetting/InputSetting_pic18.png) - -Используется по умолчанию. - -![Однострочный](./assets/InputSetting/InputSetting_pic19.png) - -#### Многострочный текст. -![Многострочный текст](./assets/InputSetting/InputSetting_pic20.png) - -Чтобы вставить многострочный текст, нужно указать в имени дополнительную установку: `{multi|height}`, где `height` — это высота поля в пикселях. - -![height](./assets/InputSetting/InputSetting_pic21.png) -_______________________________________________ -### Select. -![Select](./assets/InputSetting/InputSetting_pic22.png) - -Группа кнопок, представляющая собой выбор из нескольких вариантов. Вам нужно указать в имени параметра все возможные варианты, например: `{HTTP|SOCKS4|SOCKS5}`. - -![Группа кнопок](./assets/InputSetting/InputSetting_pic23.png) -_______________________________________________ -### FileName. -Поле ввода для указания пути к файлу или директории в файловой системе. Можно прописать вручную, либо выбрать через окно выбора файлов, кликнув по кнопке […]. - -**Доступные варианты:** -#### Открыть файл. -Открывается окно выбора существующего файла. Поведение этого поля по умолчанию. -#### Сохранить файл. -Сохраняет результат работы в файл. Для вызова нужно добавить к имени настройки конструкцию `{save}` - -![Сохранить файл](./assets/InputSetting/InputSetting_pic24.png) - -:::info **Можно сохранить даже в файл, которого еще не существует.** -В то время как опция «Открыть файл» работает только с существующим файлом. -::: - -#### Путь к директории. -Для работы с директорией нужно к имени параметра добавить `{folder}` -_______________________________________________ -### Dropdown. -Выпадающий список с выбором значения. Доступно 2 опции: -#### Отображать элементы «Как есть». -![Как есть](./assets/InputSetting/InputSetting_pic25.png) - -Варианты в выпадающем списке будут отображены как и в редакторе настроек. -Синтаксис такой: `Имя настройки {Вариант1|Вариант2|Вариант3}`. - -#### Именованные элементы. -![Именованные](./assets/InputSetting/InputSetting_pic26.png) - -Синтаксис: `Имя настройки {Вариант1:Значение1|Вариант2:Значение2|Вариант3:Значение3}`. -`Вариант` — это настройка, которая видна пользователю. -`Значение` — то, что сохранится в переменную. -_______________________________________________ -### DropDownMultiSelect. -Выпадающий список с множественным выбором значений. Позволяет выбрать чекбоксами несколько значений одновременно. - -![DropDownMultiSelect](./assets/InputSetting/InputSetting_pic27.png) - -В поле **Значения по умолчанию** можно прописать несколько значений через запятую. -Синтаксис такой же как и у типа DropDown. Если выбрано несколько вариантов, то в переменную они сохранятся через запятую. -:::info **Только элементы «Как есть». Именованные значения не поддерживаются.** -::: -_______________________________________________ -### SmsServices. -Выбор сервиса для приёма SMS из списка доступных. - -![SmsServices](./assets/InputSetting/InputSetting_pic28.png) -_______________________________________________ -### TranslateServices. -Выбор сервиса для ***перевода текста*** из списка доступных. - -![TranslateServices](./assets/InputSetting/InputSetting_pic29.png) -_______________________________________________ -### Tab. -Добавление ещё одной вкладки в окно настроек. Например, можно разделить «Основные» и «Дополнительные настройки» по вкладкам. - -![Tab](./assets/InputSetting/InputSetting_pic30.png) -_______________________________________________ -### Comment. -Поле, позволяющее вставлять текст во всю ширину окна настроек. Может использоваться как описание или комментарий к другим настройкам. - -![Comment](./assets/InputSetting/InputSetting_pic31.png) - -Отображаемый текст в этом поле можно форматировать. Поддерживаемые теги: -| Свойство | Синтаксис | -| -------- | ------- | -| Жирный текст | `Текст` | -| Цвет шрифта | `Красный цвет шрифта` | -| Размер букв| `Размер текста` | - -:::tip **Пример со скриншота выше.** -- **Первая строка:** *`Зелёный, жирный текст. Размер шрифта - 15`* -- **Вторая строка:** *`Синий текст. Размер шрифта - 13`* -::: -_______________________________________________ -### Password. -Данные, которые сюда вводятся, скрываются от просмотра. Но в самом проекте будут видны! - -![Password](./assets/InputSetting/InputSetting_pic32.png) -_______________________________________________ -:::info **Символы Unicode.** -Во всех полях можно использовать Unicode символы. Пример — ± ♻ 📞 💙 🚢. -Хоть браузер и отображает их цветным, в настройках самой программы они черно-белые. -::: -_______________________________________________ -## Обзор входных настроек в ZennoDroid. -Открыть входные настройки в ZD можно нажатием **ПКМ по проекту в списке → Настройки**. Или дважды кликнуть по нему. - -![Обзор входных настроек](./assets/InputSetting/InputSetting_pic33.png) - -Получился вот такой простой и понятный интерфейс входных настроек. Теперь можно передавать проект другому пользователю. - - - - - - \ No newline at end of file diff --git a/docs/Project Editor/Project/Notes.mdx b/docs/Project Editor/Project/Notes.mdx deleted file mode 100644 index 9c0d7680..00000000 --- a/docs/Project Editor/Project/Notes.mdx +++ /dev/null @@ -1,55 +0,0 @@ ---- -sidebar_position: 4 -title: Заметки -description: Заметки в проекте. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../../Disclaimer).** -::: -_______________________________________________ -![Описание](./assets/Notes/Notes_pic2.png) - -Заметка — полотно, на котором можно оставить многострочный комментарий. Подобно бумажным стикерам, которые вы клеите в офисе или на холодильнике. -_______________________________________________ -## Как добавить в проект заметку? -Через контекстное меню: **Добавить действие → Проект → Заметка**: - -![Как добавить в проект?](./assets/InputSetting/InputSetting_pic1.png) - -Или **ПКМ по холсту → Новая заметка**: - -![ПКМ по холсту](./assets/Notes/Notes_pic3.png) -_______________________________________________ -## Примеры использования. -### Развёрнутое описание конкретного экшена. -![Развёрнутое описание](./assets/Notes/Notes_pic4.png) - -Иногда есть необходимость подробно описать свои действия, так как с первого взгляда это может быть не очевидно. Внутренний комментарий в теле экшена ограничен всего несколькими словами. Поэтом на помощь приходят Заметки. -_______________________________________________ -### Комментирование сразу большого числа экшенов. -![Комментирование](./assets/Notes/Notes_pic5.png) - -Бывает, что проект разростается до огромных размеров, и уже тяжело визуально в нем ориентироваться. Например, на скриншоте выше есть два отдельных древа экшенов, а сверху над ними зеленые заметки с кратким описанием. -_______________________________________________ -### Передача шаблона другим людям. -![Передача шаблона](./assets/Notes/Notes_pic6.png) - -Если вы хотите поделиться своим проектом с кем-то еще, то Заметки могут содержать полезные данные или ваши контакты. Их использование ограничено только вашей фантазией. -_______________________________________________ -:::info **Различные примеры использования также доступны в тестовых проектах на *Стартовой странице*.** -::: -_______________________________________________ - -## Настройки. -Нажмите ПКМ по заметке, чтобы изменить ее внешний вид. -_______________________________________________ -### Цвет заметки. -![Цвет заметки](./assets/Notes/Notes_pic7.png) -_______________________________________________ -### Размер шрифта. -По умолчанию установлен размер 8. - -![Размер шрифта](./assets/Notes/Notes_pic8.png) -_______________________________________________ -## Примеры оформления. -![Примеры оформления](./assets/Notes/Notes_pic9.png) ![Примеры оформления](./assets/Notes/Notes_pic10.png) - diff --git a/docs/Project Editor/Project/Project_in_Project.mdx b/docs/Project Editor/Project/Project_in_Project.mdx deleted file mode 100644 index 1d02204b..00000000 --- a/docs/Project Editor/Project/Project_in_Project.mdx +++ /dev/null @@ -1,78 +0,0 @@ ---- -sidebar_position: 1 -title: Проект в проекте -description: Подключение проекта к другому проекту. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../../Disclaimer).** -::: -_______________________________________________ -## Для чего нужен? -Этот экшен позволяет подключить уже готовый проект к текущему, над которым вы еще работаете. - -Чаще всего используется для повторяющихся частей. Например: - -**1.** Для работы с конкретным сайтом у вас есть несколько отдельных шаблонов: -- Парсер товаров; -- Парсер пользователей; -- Рассыльщик сообщений. - -**2.** При этом нужно быть авторизованным. -**3.** В каждом из шаблонов есть одинаковый участок с авторизацией. -**4.** Выносим этот участок в отдельный подшаблон и подключаем его в нужных местах. -**5.** Теперь мы можем вносить правки только в один подшаблон, а не сразу в нескольких проектах. - -Также этот экшен подойдет для: -- Вынесения универсальных функций в подшаблон для использования в других проектах: - - *генерация текста*, - - *проверка на уникальность*, - - *загрузка изображений на хостинги*. -- Разбивка одного большого шаблона на несколько маленьких по функциям. -- Использования шаблона как вложенного. Все ограничено лишь вашей фантазией. -_______________________________________________ -## Как добавить в проект? -Через контекстное меню: **Добавить действие → Проект → Проект в проекте**. - -![Как добавить в проект?](./assets/Project_in_Project/Project_in_Project_pic1.png) -_______________________________________________ -## Как работать с экшеном? -![Как работать с экшеном?](./assets/Project_in_Project/Project_in_Project_pic3.png) -_______________________________________________ -### Базовые настройки. -![Базовые настройки](./assets/Project_in_Project/Project_in_Project_pic2.png) - -#### Путь к вложенному проекту. -Тут нужно указать абсолютный путь к подшаблону. Можно использовать переменные, например, `{-Project.Directory-}` *(путь к текущей папке проекта)*. - -#### Передавать контекст проекта (project.Context). -Данная опция используется при работе с ***C# кодом***. `project.Context` позволяет сохранять С# объекты и переносить их между разными частями шаблона. -_______________________________________________ -### Передача переменных. -![Передача переменных](./assets/Project_in_Project/Project_in_Project_pic4.png) - -#### Сопоставление переменных. -В данном окне происходит передача данных из внешнего проекта во внутренний. -Передать данные можно только с помощью переменных. - -#### Сопоставлять переменные с одинаковыми именами. -При включении данной опции все переменные, имена которых идентичны в обоих проектах, будут автоматически сопоставлены, без необходимости ручной настройки. - -:::warning **Ручная настройка имеет больший приоритет.** -Например, в обоих проектах есть переменная `variable`. Вы включили опцию *Сопоставлять переменные*, но вручную ассоциировали эту переменную с другой — `second_var`. Так что теперь переменные `variable` из обоих проектов будут сопоставлены с `second_var`, а не друг с другом. -::: - -#### Не передавать значения обратно при неудачном выполнении. -По умолчанию все изменения переменных во внутреннем проекте отражаются также и на переменных из внешнего проекта. При включении данной настройки изменения переменных будут игнорироваться внешним проектом в случае ошибочного завершения внутреннего. -_______________________________________________ -## Пример использования. -В качестве примера отправим себе оповещение через Email. - -![Пример использовани](./assets/Project_in_Project/Project_in_Project_pic5.png) - -Создаем шаблон, который будет автоматически определять настройки для соединения с сервером на основе переданного Email. После этого нам нужно будет только передать со внешнего проекта текст сообщения, данные отправителя и получателя. -_______________________________________________ -## Ошибка загрузки проекта. -![Ошибка загрузки проекта](./assets/Project_in_Project/Project_in_Project_pic6.png) - -Если во время создания проекта появилась такая ошибка, то скорее всего проблема в том, что вы пытаетесь запустить закрытый шаблон на неактивном оборудовании. - -Для исправления вам нужно зайти в [**Личный кабинет → вкладка Оборудование**](https://userarea.zennolab.com/lk/userarea/UserAddHardware.aspx) и активировать оборудование, с которого вы сейчас работаете. \ No newline at end of file diff --git a/docs/Project Editor/Project/_category_.json b/docs/Project Editor/Project/_category_.json deleted file mode 100644 index 19090e47..00000000 --- a/docs/Project Editor/Project/_category_.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "label": "Проект", - "position": 6, - "link": { - "type": "generated-index", - "title": "Работа в проекте" - } - } - \ No newline at end of file diff --git a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic1.png b/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic1.png deleted file mode 100644 index 65a25723..00000000 Binary files a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic1.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic10.png b/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic10.png deleted file mode 100644 index eee25581..00000000 Binary files a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic10.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic11.png b/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic11.png deleted file mode 100644 index 0d727a6e..00000000 Binary files a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic11.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic12.png b/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic12.png deleted file mode 100644 index dec1fe1a..00000000 Binary files a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic12.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic13.png b/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic13.png deleted file mode 100644 index dac32bc9..00000000 Binary files a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic13.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic14.png b/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic14.png deleted file mode 100644 index d52e691a..00000000 Binary files a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic14.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic15.png b/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic15.png deleted file mode 100644 index 1746e674..00000000 Binary files a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic15.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic16.png b/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic16.png deleted file mode 100644 index 1b34e835..00000000 Binary files a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic16.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic17.png b/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic17.png deleted file mode 100644 index 9fe9c8f9..00000000 Binary files a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic17.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic18.png b/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic18.png deleted file mode 100644 index 0380c5fb..00000000 Binary files a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic18.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic19.png b/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic19.png deleted file mode 100644 index 8378509b..00000000 Binary files a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic19.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic2.png b/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic2.png deleted file mode 100644 index 47d6b65d..00000000 Binary files a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic2.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic20.png b/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic20.png deleted file mode 100644 index 939f790d..00000000 Binary files a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic20.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic21.png b/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic21.png deleted file mode 100644 index a0259cb7..00000000 Binary files a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic21.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic22.png b/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic22.png deleted file mode 100644 index 23f655fb..00000000 Binary files a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic22.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic23.png b/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic23.png deleted file mode 100644 index 056eae1f..00000000 Binary files a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic23.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic24.png b/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic24.png deleted file mode 100644 index 334ef46a..00000000 Binary files a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic24.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic25.png b/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic25.png deleted file mode 100644 index 3a07d149..00000000 Binary files a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic25.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic26.png b/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic26.png deleted file mode 100644 index 3bbd4fbd..00000000 Binary files a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic26.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic27.gif b/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic27.gif deleted file mode 100644 index 9b6e68c6..00000000 Binary files a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic27.gif and /dev/null differ diff --git a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic28.png b/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic28.png deleted file mode 100644 index d2671a4c..00000000 Binary files a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic28.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic29.png b/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic29.png deleted file mode 100644 index 20102a7a..00000000 Binary files a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic29.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic3.png b/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic3.png deleted file mode 100644 index c9ea0cc5..00000000 Binary files a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic3.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic30.png b/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic30.png deleted file mode 100644 index 2edb7f0f..00000000 Binary files a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic30.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic31.png b/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic31.png deleted file mode 100644 index b4a660da..00000000 Binary files a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic31.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic32.gif b/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic32.gif deleted file mode 100644 index ebf0c272..00000000 Binary files a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic32.gif and /dev/null differ diff --git a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic33.png b/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic33.png deleted file mode 100644 index 653668dc..00000000 Binary files a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic33.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic34.png b/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic34.png deleted file mode 100644 index 92868168..00000000 Binary files a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic34.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic4.png b/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic4.png deleted file mode 100644 index cee9eeb1..00000000 Binary files a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic4.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic5.png b/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic5.png deleted file mode 100644 index 8e8755cd..00000000 Binary files a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic5.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic6.png b/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic6.png deleted file mode 100644 index a641df61..00000000 Binary files a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic6.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic7.png b/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic7.png deleted file mode 100644 index dc29fe94..00000000 Binary files a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic7.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic8.png b/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic8.png deleted file mode 100644 index 1c473c22..00000000 Binary files a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic8.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic9.png b/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic9.png deleted file mode 100644 index 3482b0b2..00000000 Binary files a/docs/Project Editor/Project/assets/BotInterface/BotInterface_pic9.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic1.png b/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic1.png deleted file mode 100644 index 643cf348..00000000 Binary files a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic1.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic10.png b/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic10.png deleted file mode 100644 index 94f5fbb9..00000000 Binary files a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic10.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic11.gif b/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic11.gif deleted file mode 100644 index e262d74b..00000000 Binary files a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic11.gif and /dev/null differ diff --git a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic12.png b/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic12.png deleted file mode 100644 index 315ce218..00000000 Binary files a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic12.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic13.png b/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic13.png deleted file mode 100644 index 47bfbb28..00000000 Binary files a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic13.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic14.png b/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic14.png deleted file mode 100644 index 344d27bf..00000000 Binary files a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic14.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic15.png b/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic15.png deleted file mode 100644 index c74bc0a5..00000000 Binary files a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic15.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic16.png b/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic16.png deleted file mode 100644 index 31c1f2de..00000000 Binary files a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic16.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic17.png b/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic17.png deleted file mode 100644 index 5fe85bf7..00000000 Binary files a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic17.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic18.png b/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic18.png deleted file mode 100644 index 977d5bd3..00000000 Binary files a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic18.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic19.png b/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic19.png deleted file mode 100644 index 044a8bf4..00000000 Binary files a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic19.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic2.png b/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic2.png deleted file mode 100644 index a5951a2f..00000000 Binary files a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic2.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic20.png b/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic20.png deleted file mode 100644 index a9077c5b..00000000 Binary files a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic20.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic21.png b/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic21.png deleted file mode 100644 index 5c9f0c18..00000000 Binary files a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic21.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic22.png b/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic22.png deleted file mode 100644 index 5ba35962..00000000 Binary files a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic22.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic23.png b/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic23.png deleted file mode 100644 index 43cd261d..00000000 Binary files a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic23.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic24.png b/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic24.png deleted file mode 100644 index 8e9019f8..00000000 Binary files a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic24.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic25.png b/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic25.png deleted file mode 100644 index a9de3800..00000000 Binary files a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic25.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic26.png b/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic26.png deleted file mode 100644 index b95c999f..00000000 Binary files a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic26.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic27.png b/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic27.png deleted file mode 100644 index 96c65c63..00000000 Binary files a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic27.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic28.png b/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic28.png deleted file mode 100644 index 9a9f4523..00000000 Binary files a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic28.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic29.png b/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic29.png deleted file mode 100644 index 108dff2a..00000000 Binary files a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic29.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic3.png b/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic3.png deleted file mode 100644 index c107d880..00000000 Binary files a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic3.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic30.png b/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic30.png deleted file mode 100644 index bffdd363..00000000 Binary files a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic30.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic31.png b/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic31.png deleted file mode 100644 index 516bef4a..00000000 Binary files a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic31.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic32.png b/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic32.png deleted file mode 100644 index cdddb8d6..00000000 Binary files a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic32.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic33.png b/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic33.png deleted file mode 100644 index 781dcf77..00000000 Binary files a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic33.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic4.png b/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic4.png deleted file mode 100644 index ac3f8b55..00000000 Binary files a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic4.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic5.png b/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic5.png deleted file mode 100644 index 48ba5f44..00000000 Binary files a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic5.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic6.png b/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic6.png deleted file mode 100644 index 23bddb58..00000000 Binary files a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic6.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic7.png b/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic7.png deleted file mode 100644 index b33bbef6..00000000 Binary files a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic7.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic8.png b/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic8.png deleted file mode 100644 index 98c1a027..00000000 Binary files a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic8.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic9.png b/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic9.png deleted file mode 100644 index 30e51109..00000000 Binary files a/docs/Project Editor/Project/assets/InputSetting/InputSetting_pic9.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/Notes/Notes_pic1.png b/docs/Project Editor/Project/assets/Notes/Notes_pic1.png deleted file mode 100644 index a7cf2cc7..00000000 Binary files a/docs/Project Editor/Project/assets/Notes/Notes_pic1.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/Notes/Notes_pic10.png b/docs/Project Editor/Project/assets/Notes/Notes_pic10.png deleted file mode 100644 index 70f59a84..00000000 Binary files a/docs/Project Editor/Project/assets/Notes/Notes_pic10.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/Notes/Notes_pic2.png b/docs/Project Editor/Project/assets/Notes/Notes_pic2.png deleted file mode 100644 index 0360897d..00000000 Binary files a/docs/Project Editor/Project/assets/Notes/Notes_pic2.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/Notes/Notes_pic3.png b/docs/Project Editor/Project/assets/Notes/Notes_pic3.png deleted file mode 100644 index f5ecf170..00000000 Binary files a/docs/Project Editor/Project/assets/Notes/Notes_pic3.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/Notes/Notes_pic4.png b/docs/Project Editor/Project/assets/Notes/Notes_pic4.png deleted file mode 100644 index 063cb41d..00000000 Binary files a/docs/Project Editor/Project/assets/Notes/Notes_pic4.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/Notes/Notes_pic5.png b/docs/Project Editor/Project/assets/Notes/Notes_pic5.png deleted file mode 100644 index 948ca199..00000000 Binary files a/docs/Project Editor/Project/assets/Notes/Notes_pic5.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/Notes/Notes_pic6.png b/docs/Project Editor/Project/assets/Notes/Notes_pic6.png deleted file mode 100644 index cf615aed..00000000 Binary files a/docs/Project Editor/Project/assets/Notes/Notes_pic6.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/Notes/Notes_pic7.png b/docs/Project Editor/Project/assets/Notes/Notes_pic7.png deleted file mode 100644 index 537b1f06..00000000 Binary files a/docs/Project Editor/Project/assets/Notes/Notes_pic7.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/Notes/Notes_pic8.png b/docs/Project Editor/Project/assets/Notes/Notes_pic8.png deleted file mode 100644 index a2c4d8c6..00000000 Binary files a/docs/Project Editor/Project/assets/Notes/Notes_pic8.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/Notes/Notes_pic9.png b/docs/Project Editor/Project/assets/Notes/Notes_pic9.png deleted file mode 100644 index 584ca035..00000000 Binary files a/docs/Project Editor/Project/assets/Notes/Notes_pic9.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/Project_in_Project/Project_in_Project_pic1.png b/docs/Project Editor/Project/assets/Project_in_Project/Project_in_Project_pic1.png deleted file mode 100644 index c367fe93..00000000 Binary files a/docs/Project Editor/Project/assets/Project_in_Project/Project_in_Project_pic1.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/Project_in_Project/Project_in_Project_pic2.png b/docs/Project Editor/Project/assets/Project_in_Project/Project_in_Project_pic2.png deleted file mode 100644 index 1a469c53..00000000 Binary files a/docs/Project Editor/Project/assets/Project_in_Project/Project_in_Project_pic2.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/Project_in_Project/Project_in_Project_pic3.png b/docs/Project Editor/Project/assets/Project_in_Project/Project_in_Project_pic3.png deleted file mode 100644 index 522bfda7..00000000 Binary files a/docs/Project Editor/Project/assets/Project_in_Project/Project_in_Project_pic3.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/Project_in_Project/Project_in_Project_pic4.png b/docs/Project Editor/Project/assets/Project_in_Project/Project_in_Project_pic4.png deleted file mode 100644 index b73b42ea..00000000 Binary files a/docs/Project Editor/Project/assets/Project_in_Project/Project_in_Project_pic4.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/Project_in_Project/Project_in_Project_pic5.png b/docs/Project Editor/Project/assets/Project_in_Project/Project_in_Project_pic5.png deleted file mode 100644 index 36b70882..00000000 Binary files a/docs/Project Editor/Project/assets/Project_in_Project/Project_in_Project_pic5.png and /dev/null differ diff --git a/docs/Project Editor/Project/assets/Project_in_Project/Project_in_Project_pic6.png b/docs/Project Editor/Project/assets/Project_in_Project/Project_in_Project_pic6.png deleted file mode 100644 index 4ba6ab52..00000000 Binary files a/docs/Project Editor/Project/assets/Project_in_Project/Project_in_Project_pic6.png and /dev/null differ diff --git a/docs/Project Editor/RecieveEmails.mdx b/docs/Project Editor/RecieveEmails.mdx deleted file mode 100644 index ca7f5671..00000000 --- a/docs/Project Editor/RecieveEmails.mdx +++ /dev/null @@ -1,148 +0,0 @@ ---- -sidebar_position: 1 -title: Принять почту -description: Работа с почтовыми аккаунтами ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ -## Описание. -Позволяет найти нужное письмо и информацию в нём. Подходит для массовой обработки входящей корреспонденции. - -![Описание](./assets/RecieveEmails/RecieveEmails_pic1.png) - -Подходит для: -- Быстрого доступа к письмам; -- Получения данных из письма; -- Активации учетных записей; -- Удаление ненужных писем; -- Удаление загруженных писем. -_______________________________________________ -## Как добавить в проект? -Через контекстное меню: **Добавить действие → Логика → GoodEnd**. - -![Как добавить в проект?](./assets/RecieveEmails/RecieveEmails_pic2.png) -_______________________________________________ -## Как работать с экшеном? -:::info **Перед работой убедитесь, что в вашей учетной записи активирована опция доступа через IMAP.** -::: -_______________________________________________ -### Вкладка «Основные». -![Вкладка «Основные»](./assets/RecieveEmails/RecieveEmails_pic3.png) - -#### Кнопка «Расширенный вид». -При клике по данной кнопке откроется окно ***Обработки почты***. - -#### Email и Пароль. -Указываем эти данные от электронного ящика -_______________________________________________ -### Настройки подключения. -![Настройки подключения.](./assets/RecieveEmails/RecieveEmails_pic4.png) - -#### Автоопределение настроек. -При включении данной настройки ZennoDroid автоматически подберёт параметры для соединения с почтовым сервером. - -:::warning **Работает не со всеми почтовыми провайдерами.** -::: - -#### Сервер, Порт, Имя пользователя, Использовать SSL, Протокол. -Все эти параметры нужно взять из документации выбранного почтового провайдера. -_______________________________________________ -### Как искать письмо. -![Как искать письмо.](./assets/RecieveEmails/RecieveEmails_pic5.png) - -#### Каталоги Imap. -![Каталоги Imap.](./assets/RecieveEmails/RecieveEmails_pic6.png) - -Здесь можно выбрать папки почтового ящика, в которых будет производиться поиск письма. - -![кнопка](./assets/RecieveEmails/RecieveEmails_pic7.png) А эта кнопка обновляет список доступных папок. - -#### Рег. выр. (Регулярное выражение). -В данное поле вносится регулярное выражение, согласно которому будет происходить поиск письма в ящике. - -#### Интервалы загрузки писем. -Письма от сервисов могут приходить с задержкой. Поэтому можно указать промежуток времени в секундах и количество попыток скачивания списка писем. - - Разделитель `;` указывает на количество попыток. Например, на скриншоте это: *первая через 15 сек, вторая - 30 сек, третья - 60 сек*. - -#### Из каталога загружать не более писем. -Указываем количество писем, которые будут загружены. - -#### Удалять найденное письмо. -При включении данной настройки найденное письмо будет удалено из ящика после обработки. -_______________________________________________ -### Поиск текста в письме. -![Поиск текста в письме](./assets/RecieveEmails/RecieveEmails_pic8.png) - -Можно сохранять результат работы сразу нескольких регулярных выражений! - -Например, в письме есть: -- код активации, -- адрес сайта, -- номер телефона, -- имя и фамилия. -Все это можно достать за одно действие! Достаточно под каждый элемент составить регулярное выражение и добавить переменные, в которые будет сохранён результат работы. - -#### Регулярное выражение. -Тут указываем регулярное выражение для поиска нужного текста. - -#### № совпадения. -Часто для одного регулярного выражения может быть сразу несколько совпадений. Тут отобразится порядковый номер найденного элемента. ***Нумерация с нуля***. - -:::warning **Не рекомендуем привязываться к номеру совпадения.** -Так как структура проекта может измениться, а вместе с ней и порядковый номер ссылки. -Старайтесь подбирать регулярное выражение таким образом, чтобы в результате его работы оставалось только одно совпадение. -::: - -#### Сохранить в переменную. -В этой колонке нужно выбрать существующую или создать новую переменную, куда будет сохранён результат работы регулярного выражения. -_______________________________________________ -### Сохранить ошибку в переменную. -![Сохранить ошибку в переменную](./assets/RecieveEmails/RecieveEmails_pic9.png) - -Если во время работы экшена возникнет ошибка, то эта настройка сохранит её текст в переменную (новую или уже созданную). -_______________________________________________ -### Вкладка «Прокси». -![Вкладка «Прокси»](./assets/RecieveEmails/RecieveEmails_pic10.png) - -#### Без прокси. -Работа экшена будет происходить через реальный ip компьютера/сервера. - -#### Строка формата. -![Строка формата](./assets/RecieveEmails/RecieveEmails_pic11.png) - -Указываем прокси в формате: -- ***С авторизацией***. `socks5://логин:пароль@ip:port` или `http://логин:пароль@ip:port` -- ***Без авторизации***. `socks5://ip:port` или `http://ip:port` -- ***Без указания протокола*** *(по умолчанию http://)*. `логин:пароль@ip:port` или `ip:port` - -:::tip **Можно указывать переменные.** -::: - -#### Другой. -![Другой](./assets/RecieveEmails/RecieveEmails_pic12.png) - -Эта опция выбирается, если необходимо указать детальные настройки прокси. Такие как: тип прокси, данные авторизации, адрес и порт. Эту информацию можно узнать у поставщика услуг. - -:::tip **Можно использовать переменные в любом из полей.** -::: - -:::info **Если не указать протокол прокси, то по умолчанию будет выбран http://** -::: -_______________________________________________ -## Пример использования. -Допустим, что после регистрации в приложении нам нужно подтвердить свою учетную запись, перейдя по ссылке из письма. - -![Пример использования](./assets/RecieveEmails/RecieveEmails_pic13.png) - -1. Регистрируемся в приложении. -2. Добавляем в проект экшен **Принять почту** и настраиваем его. -3. Получаем письмо для активации аккаунта. -4. Переходим по ссылке. -5. Аккаунт успешно подтвержден. - -Это особенно удобно при массовых действиях в приложениях, так как работа без отдельного почтового клиента экономит время и ресурсы. - - - diff --git a/docs/Project Editor/Static Block Panel/CommonPrinciples.mdx b/docs/Project Editor/Static Block Panel/CommonPrinciples.mdx deleted file mode 100644 index 59119ec4..00000000 --- a/docs/Project Editor/Static Block Panel/CommonPrinciples.mdx +++ /dev/null @@ -1,36 +0,0 @@ ---- -sidebar_position: 3 -title: Общие принципы -description: Панель статических блоков. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../../Disclaimer).** -::: - -## Что такое статические блоки? -![Поиск](./assets/CommonPrinciples/CommonPrinciples_pic1.png) - -В каждом проекте в нижней части есть специальное поле — панель статических блоков. Это элементы, которые принадлежат сразу всему проекту и доступны из любой его части. В отличии от действий (кубиков), выполнение которых происходит последовательно во времени. - -Каждый статический блок отвечает за одно или несколько свойств проекта. Такие как настройки проекта, настройки профиля в проекте, шифрование, а также списки и таблицы с данными. - -При создании проекта в нем уже имеются несколько обязательных статических блоков, которые нельзя удалить. -_______________________________________________ -## Как показать эту панель? -![Поиск](./assets/CommonPrinciples/CommonPrinciples_pic2.png) - -Если вы не видите панель статических блоков, то нажмите ПКМ в любом пустом месте полотна и в контекстном меню выберете **Показать статические блоки**. -_______________________________________________ -## Добавление статических блоков. -![Поиск](./assets/CommonPrinciples/CommonPrinciples_pic3.png) - -Через иконку со значком **+**. -_______________________________________________ -## Изменение размера панели. -![Поиск](./assets/CommonPrinciples/CommonPrinciples_pic4.png) -_______________________________________________ -## Удаление статического блока. -**ПКМ на блоке → Удалить:** - -![Поиск](./assets/CommonPrinciples/CommonPrinciples_pic5.png) - -Если кнопка **Удалить** неактивна, то удалить такой статический блок нельзя. \ No newline at end of file diff --git a/docs/Project Editor/Static Block Panel/Encryption.mdx b/docs/Project Editor/Static Block Panel/Encryption.mdx deleted file mode 100644 index afab4341..00000000 --- a/docs/Project Editor/Static Block Panel/Encryption.mdx +++ /dev/null @@ -1,47 +0,0 @@ ---- -sidebar_position: 4 -title: Шифрование -description: Защита проектов. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../../Disclaimer).** -::: - -Шифрование позволяет защитить созданные проекты от непредвиденного копирования и редактирования. Это, например, может пригодится при передаче шаблона другому пользователю, чтобы доступ был только у него. - -## Где находится? -![Поиск](./assets/Encryption/Encryption_pic1.png) - -После создания проекта внизу, на панели статических блоков, есть иконка замка. Это и есть блок шифрования. -_______________________________________________ -## Описание полей. -![Поиск](./assets/Encryption/Encryption_pic2.png) -_______________________________________________ -### Минимальная версия ZennoDroid. -В выпадающем списке можно выбрать минимальную версию, на которой запустится шаблон. - -После клика по кнопке **Проверить** запустится проверка шаблона для оценки минимально-возможной версии. -_______________________________________________ -### Разрешения. -| Email | Выполнение | Чтение | Изменение | Полный доступ | -| :----------------: | :------: | :----: |:------: | :----: | -| Поле для ввода идентификатора | Отвечает за возможность выполнять проект | Дает просмотреть структуру проекта | Позволяет редактировать проект | Всё перечисленное + выдача права другим пользователям. | - -#### Доступные форматы идентификатора: -- **support@zennolab.com**. Почта, к которой привязан ZennoDroid. -- **e927aabf-5ee3-4d3d-9ba7-e0f70537b923@zenno.club**. Можно получить в [**Личном кабинете**](https://account.zennolab.com/personal-area-profile). -- **allusers@zennolab.com**. Универсальный адрес, который распространяется на всех пользователей. - -#### Подробнее про настройки доступа. -**Выполнение → Чтение → Изменение → Полный доступ**. Именно в такой иерархии происходит выдача доступа. -Например, если выдать **Изменение**, то **Чтение** и **Выполнение** включатся автоматически. И наоборот, если снять **Выполнение**, то все следующие также станут неактивны. -_______________________________________________ -### Скрыть ID автора. -Включите эту опцию, если при передаче шаблона другим пользователям, вы не хотите раскрывать свой внутренний ID в системе ZennoLab. -_______________________________________________ -### Скрыть инстанс для пользователей. -Эту опцию стоит включить, когда вы не хотите, чтобы браузер был виден при передаче шаблона другим пользователям. - -Данная настройка не влияет на выполнение проекта, а лишь скрывает отображение браузера в ProjectMaker. Она применяется для тех пользователей, у которых есть доступ только на **Выполнение** шаблона. - -Скрывается конкретно окно браузера в ProjectMaker при выполнения проекта в качестве плагина или подпроекта. Но опция не распространяется на экшен ***Ожидание действий пользователя***. - diff --git a/docs/Project Editor/Static Block Panel/Profile.mdx b/docs/Project Editor/Static Block Panel/Profile.mdx deleted file mode 100644 index 883fb8eb..00000000 --- a/docs/Project Editor/Static Block Panel/Profile.mdx +++ /dev/null @@ -1,93 +0,0 @@ ---- -sidebar_position: 2 -title: Профиль -description: Генерация профиля для проекта ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../../Disclaimer).** -::: - -![Поиск](./assets/Profile/Profile_pic1.png) -_______________________________________________ -**Профиль** — это виртуальная личность, параметры которой генерируются при каждом новом запуске шаблона. В ProjectMaker генерация происходит во время нажатия кнопки **«Сначала»**; а в ZennoDroid — при каждом новом выполнении проекта. Подробная информация о профиле указана в **Окне профиля**. - -![Поиск](./assets/Profile/Profile_pic2.png) - -При выполнении проекта в профиле сгенерируются все необходимые данные. Такие как: -- личные, которые используются при регистрации; -- от устройства, они нужны для работы с сервисами. -:::warning **Важно.** -Лучше избегать переназначений отдельных настроек профиля в рамках одного выполнения проекта — вместо этого просто завершите проект и выполните его ещё столько раз, сколько потребуется. Это позволит не усложнять проект внутренними циклами. -::: - -При регистрации аккаунтов правильная логика работы с проектом выглядит так: -**1.** Старт проекта. -**2.** Генерация одного нового профиля. -**3.** Выполнение необходимых действи. -**4.** Завершение проекта. -_______________________________________________ -## Настройка генерации профиля для текущего проекта. -Для открытия параметров генерации профиля необходимо кликнуть по иконке **Профиля** на **Панели статических блоков**. Она находится под холстом с экшенами. - -![Поиск](./assets/Profile/Profile_pic3.png) -:::info **Не отображается *Панель Статических Блоков*?** -Нужно кликнуть правой кнопкой мыши в любом пустом месте холста с экшенами и выбрать соответствующую настройку из контекстного меню, которая включает эту область. - -![Поиск](./assets/Profile/Profile_pic4.png) -::: - -## Вкладка «Пользователь». -![Поиск](./assets/Profile/Profile_pic5.png) -### Национальность. -:::tip **Национальность по умолчанию.** -*Можно выставить в Настройках, во вкладке Профиль. Также там можно указать email и пароль от него.* -::: - -Доступно 6 национальностей: -- Россия, -- USA (США), -- Germany (Германия), -- France (Франция), -- Spain (Испания), -- United Kingdom (Великобритания). -_______________________________________________ -### Местоположение. -Местоположение настраивается при помощи выпадающего списка с возможностью выбора нескольких значений. Содержимое списка зависит от выбранной страны: -- Россия — области, края, республики, некоторые большие города (Москва, Сочи и другие); -- США — штаты; -- Германия — земли; -- Франция — регионы; -- Испания — автономные сообщества; -- Великобритания — страны, входящие в её состав. - -![Поиск](./assets/Profile/Profile_pic6.png) -### Логин. -При генерации логина используется формула из нескольких частей. По умолчанию в настройках уже сохранены несколько видов формул. Вы также можете вписать туда свою. - -![Поиск](./assets/Profile/Profile_pic7.png) -#### Подробное описание формул. -На данный момент для формул поддерживаются языки: `Eng` — английский, `Lat` — латынь, `Jap` — японский. -Например, при вводе значения `[Eng|4]` сгенерируется никнейм длиной в 4 английских слога с вероятностью таких же сочетаний слогов, как в реальных словах. Через изменение формулы можно создавать более сложные конструкции. Разберем такую формулу: - -`[RndSym|[RndNum|0|4]|0123456789][Lat|3][RndSym|[RndNum|0|2]|-][Jap|1][RndText|2|D]` - -`[RndSym|[RndNum|0|4]|0123456789]` — означает, что в начале ника будет использоваться от 0 до 3 цифр; -`[Lat|3]` — генерируем 3 слога на латыни; -`[RndSym|[RndNum|0|2]|-]` — берем случайные 2 буквы или цифры. - -В результате генерации получатся такие ники: -- 053bomenca-iem, -- 7lialeme-nozr, -- 46atbemig-poex, -- simpvido-se8f, -- 3afosuxhif6, -- frigulimdeif, -- misssefu-yucn. -_______________________________________________ -### Пол. -С помощью этого ползунка устанавливается вероятность генерации того или иного пола. -_______________________________________________ -### Возраст. -Этот параметр позволяет выставить диапазон, в пределах которого будет генерироваться возраст для профиля. -_______________________________________________ -## Для чего нужен Профиль? -Для регистрации на сайтах, форумах, блогах, в социальных сетях и т.д. Благодаря ему вам не нужно ломать голову над тем, где взять имена, фамилии, индексы, города, логины и как генерировать различные параметры устройства. Всё это уже встроено в программу. Вы же можете сосредоточиться на решении более важных задач. diff --git a/docs/Project Editor/Static Block Panel/ProjectSettings.mdx b/docs/Project Editor/Static Block Panel/ProjectSettings.mdx deleted file mode 100644 index af9a437f..00000000 --- a/docs/Project Editor/Static Block Panel/ProjectSettings.mdx +++ /dev/null @@ -1,51 +0,0 @@ ---- -sidebar_position: 1 -title: Настройки проекта -description: Настройки для запуска проекта ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../../Disclaimer).** -::: - -С помощью данных настроек можно задать значения, которые будут автоматически применены при запуске шаблона. -_______________________________________________ -## Как открыть настройки? -Для того чтобы открыть **Настройки проекта**, необходимо нажать соответствующую кнопку в ***Панели статических блоков***. - -![Поиск](./assets/ProjectSettings/ProjectSettings_pic1.png) -_______________________________________________ -## Доступные параметры. -### Android. -![Поиск](./assets/ProjectSettings/ProjectSettings_pic2.png) - -Здесь доступна настройка **Паузы между действиями**, которая будет выполнена перед действием. После ее изменения нужно начать проект **С начала** с помощью специальной кнопки в верхней панели. - -Список экшенов, на которые влияет данная опция: -- ***Взятие значения***; -- ***Установка значения***; -- ***Выполнить событие***; -- ***Эмуляция touch***; -- ***Эмуляция swipe***; -- ***Эмуляция клавиатуры***. - -Стоит учитывать, что в некоторых из этих экшенов есть свои настройки пауз. Так что по итогу эти две настройки сложатся — сначала выполнится пауза из настроек проекта, затем из настроек экшена. - -:::tip **Пример настроек паузы из экшена.** -![Поиск](./assets/ProjectSettings/ProjectSettings_pic3.png) -::: -_______________________________________________ -### Настройки проксичекера. -![Поиск](./assets/ProjectSettings/ProjectSettings_pic4.png) - -Тут можно выбрать правило, по которому будут браться прокси при старте проекта. Само правило для ***Proxychecker*** можно изменить, используя экшен ***Получить прокси***. -_______________________________________________ -### Настройки HTTP. -![Поиск](./assets/ProjectSettings/ProjectSettings_pic5.png) - -В этой вкладке устанавливается способ передачи HTTP-запросов: -- **По умолчанию**. Способ, который выбран в *настройках программы во вкладке «Выполнение»*. -- **Стандартный метод**. Будет использована библиотека Chilkat. -- **Альтернативный метод**. Выбирается *ZennoHttpClient*, который позволяет решить проблемы с некоторыми сайтами. - -Данные настройки используются для работы с экшенами запросов. Подробнее про их работу можно почитать в статьях ***GET-запрос***, ***POST-запрос*** и ***HTTP-запросы***. - - diff --git a/docs/Project Editor/Static Block Panel/_category_.json b/docs/Project Editor/Static Block Panel/_category_.json deleted file mode 100644 index 9c51f1dc..00000000 --- a/docs/Project Editor/Static Block Panel/_category_.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "label": "Панель статических блоков", - "position": 8, - "link": { - "type": "generated-index", - "title": "Все о панели статических блоков" - } - } - \ No newline at end of file diff --git a/docs/Project Editor/Static Block Panel/assets/CommonPrinciples/CommonPrinciples_pic1.png b/docs/Project Editor/Static Block Panel/assets/CommonPrinciples/CommonPrinciples_pic1.png deleted file mode 100644 index c04e2a51..00000000 Binary files a/docs/Project Editor/Static Block Panel/assets/CommonPrinciples/CommonPrinciples_pic1.png and /dev/null differ diff --git a/docs/Project Editor/Static Block Panel/assets/CommonPrinciples/CommonPrinciples_pic2.png b/docs/Project Editor/Static Block Panel/assets/CommonPrinciples/CommonPrinciples_pic2.png deleted file mode 100644 index 074273f7..00000000 Binary files a/docs/Project Editor/Static Block Panel/assets/CommonPrinciples/CommonPrinciples_pic2.png and /dev/null differ diff --git a/docs/Project Editor/Static Block Panel/assets/CommonPrinciples/CommonPrinciples_pic3.png b/docs/Project Editor/Static Block Panel/assets/CommonPrinciples/CommonPrinciples_pic3.png deleted file mode 100644 index 785b163c..00000000 Binary files a/docs/Project Editor/Static Block Panel/assets/CommonPrinciples/CommonPrinciples_pic3.png and /dev/null differ diff --git a/docs/Project Editor/Static Block Panel/assets/CommonPrinciples/CommonPrinciples_pic4.png b/docs/Project Editor/Static Block Panel/assets/CommonPrinciples/CommonPrinciples_pic4.png deleted file mode 100644 index 378edd2f..00000000 Binary files a/docs/Project Editor/Static Block Panel/assets/CommonPrinciples/CommonPrinciples_pic4.png and /dev/null differ diff --git a/docs/Project Editor/Static Block Panel/assets/CommonPrinciples/CommonPrinciples_pic5.png b/docs/Project Editor/Static Block Panel/assets/CommonPrinciples/CommonPrinciples_pic5.png deleted file mode 100644 index 2582e254..00000000 Binary files a/docs/Project Editor/Static Block Panel/assets/CommonPrinciples/CommonPrinciples_pic5.png and /dev/null differ diff --git a/docs/Project Editor/Static Block Panel/assets/Encryption/Encryption_pic1.png b/docs/Project Editor/Static Block Panel/assets/Encryption/Encryption_pic1.png deleted file mode 100644 index b865407d..00000000 Binary files a/docs/Project Editor/Static Block Panel/assets/Encryption/Encryption_pic1.png and /dev/null differ diff --git a/docs/Project Editor/Static Block Panel/assets/Encryption/Encryption_pic2.png b/docs/Project Editor/Static Block Panel/assets/Encryption/Encryption_pic2.png deleted file mode 100644 index 58352edd..00000000 Binary files a/docs/Project Editor/Static Block Panel/assets/Encryption/Encryption_pic2.png and /dev/null differ diff --git a/docs/Project Editor/Static Block Panel/assets/Profile/Profile_pic1.png b/docs/Project Editor/Static Block Panel/assets/Profile/Profile_pic1.png deleted file mode 100644 index a76f7772..00000000 Binary files a/docs/Project Editor/Static Block Panel/assets/Profile/Profile_pic1.png and /dev/null differ diff --git a/docs/Project Editor/Static Block Panel/assets/Profile/Profile_pic2.png b/docs/Project Editor/Static Block Panel/assets/Profile/Profile_pic2.png deleted file mode 100644 index 00d09877..00000000 Binary files a/docs/Project Editor/Static Block Panel/assets/Profile/Profile_pic2.png and /dev/null differ diff --git a/docs/Project Editor/Static Block Panel/assets/Profile/Profile_pic3.png b/docs/Project Editor/Static Block Panel/assets/Profile/Profile_pic3.png deleted file mode 100644 index bc512c9c..00000000 Binary files a/docs/Project Editor/Static Block Panel/assets/Profile/Profile_pic3.png and /dev/null differ diff --git a/docs/Project Editor/Static Block Panel/assets/Profile/Profile_pic4.png b/docs/Project Editor/Static Block Panel/assets/Profile/Profile_pic4.png deleted file mode 100644 index 6e1af1c6..00000000 Binary files a/docs/Project Editor/Static Block Panel/assets/Profile/Profile_pic4.png and /dev/null differ diff --git a/docs/Project Editor/Static Block Panel/assets/Profile/Profile_pic5.png b/docs/Project Editor/Static Block Panel/assets/Profile/Profile_pic5.png deleted file mode 100644 index 76a117b1..00000000 Binary files a/docs/Project Editor/Static Block Panel/assets/Profile/Profile_pic5.png and /dev/null differ diff --git a/docs/Project Editor/Static Block Panel/assets/Profile/Profile_pic6.png b/docs/Project Editor/Static Block Panel/assets/Profile/Profile_pic6.png deleted file mode 100644 index ab792348..00000000 Binary files a/docs/Project Editor/Static Block Panel/assets/Profile/Profile_pic6.png and /dev/null differ diff --git a/docs/Project Editor/Static Block Panel/assets/Profile/Profile_pic7.png b/docs/Project Editor/Static Block Panel/assets/Profile/Profile_pic7.png deleted file mode 100644 index db95c126..00000000 Binary files a/docs/Project Editor/Static Block Panel/assets/Profile/Profile_pic7.png and /dev/null differ diff --git a/docs/Project Editor/Static Block Panel/assets/ProjectSettings/ProjectSettings_pic1.png b/docs/Project Editor/Static Block Panel/assets/ProjectSettings/ProjectSettings_pic1.png deleted file mode 100644 index a5c6ad33..00000000 Binary files a/docs/Project Editor/Static Block Panel/assets/ProjectSettings/ProjectSettings_pic1.png and /dev/null differ diff --git a/docs/Project Editor/Static Block Panel/assets/ProjectSettings/ProjectSettings_pic2.png b/docs/Project Editor/Static Block Panel/assets/ProjectSettings/ProjectSettings_pic2.png deleted file mode 100644 index 6a1bffd8..00000000 Binary files a/docs/Project Editor/Static Block Panel/assets/ProjectSettings/ProjectSettings_pic2.png and /dev/null differ diff --git a/docs/Project Editor/Static Block Panel/assets/ProjectSettings/ProjectSettings_pic3.png b/docs/Project Editor/Static Block Panel/assets/ProjectSettings/ProjectSettings_pic3.png deleted file mode 100644 index 4e8813c5..00000000 Binary files a/docs/Project Editor/Static Block Panel/assets/ProjectSettings/ProjectSettings_pic3.png and /dev/null differ diff --git a/docs/Project Editor/Static Block Panel/assets/ProjectSettings/ProjectSettings_pic4.png b/docs/Project Editor/Static Block Panel/assets/ProjectSettings/ProjectSettings_pic4.png deleted file mode 100644 index 7504f7c3..00000000 Binary files a/docs/Project Editor/Static Block Panel/assets/ProjectSettings/ProjectSettings_pic4.png and /dev/null differ diff --git a/docs/Project Editor/Static Block Panel/assets/ProjectSettings/ProjectSettings_pic5.png b/docs/Project Editor/Static Block Panel/assets/ProjectSettings/ProjectSettings_pic5.png deleted file mode 100644 index 68cfb298..00000000 Binary files a/docs/Project Editor/Static Block Panel/assets/ProjectSettings/ProjectSettings_pic5.png and /dev/null differ diff --git a/docs/Project Editor/_category_.json b/docs/Project Editor/_category_.json deleted file mode 100644 index 65011259..00000000 --- a/docs/Project Editor/_category_.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "label": "Редактор проектов", - "position": 4, - "link": { - "type": "generated-index", - "title": "Все о работе с редактором" - } - } - \ No newline at end of file diff --git a/docs/Project Editor/assets/GetProxy/GetProxy_pic1.png b/docs/Project Editor/assets/GetProxy/GetProxy_pic1.png deleted file mode 100644 index 4a216189..00000000 Binary files a/docs/Project Editor/assets/GetProxy/GetProxy_pic1.png and /dev/null differ diff --git a/docs/Project Editor/assets/GetProxy/GetProxy_pic2.png b/docs/Project Editor/assets/GetProxy/GetProxy_pic2.png deleted file mode 100644 index 815406ea..00000000 Binary files a/docs/Project Editor/assets/GetProxy/GetProxy_pic2.png and /dev/null differ diff --git a/docs/Project Editor/assets/RecieveEmails/RecieveEmails_pic1.png b/docs/Project Editor/assets/RecieveEmails/RecieveEmails_pic1.png deleted file mode 100644 index 53d2a970..00000000 Binary files a/docs/Project Editor/assets/RecieveEmails/RecieveEmails_pic1.png and /dev/null differ diff --git a/docs/Project Editor/assets/RecieveEmails/RecieveEmails_pic10.png b/docs/Project Editor/assets/RecieveEmails/RecieveEmails_pic10.png deleted file mode 100644 index be59246e..00000000 Binary files a/docs/Project Editor/assets/RecieveEmails/RecieveEmails_pic10.png and /dev/null differ diff --git a/docs/Project Editor/assets/RecieveEmails/RecieveEmails_pic11.png b/docs/Project Editor/assets/RecieveEmails/RecieveEmails_pic11.png deleted file mode 100644 index 28d0a7ba..00000000 Binary files a/docs/Project Editor/assets/RecieveEmails/RecieveEmails_pic11.png and /dev/null differ diff --git a/docs/Project Editor/assets/RecieveEmails/RecieveEmails_pic12.png b/docs/Project Editor/assets/RecieveEmails/RecieveEmails_pic12.png deleted file mode 100644 index 0fa5e8fc..00000000 Binary files a/docs/Project Editor/assets/RecieveEmails/RecieveEmails_pic12.png and /dev/null differ diff --git a/docs/Project Editor/assets/RecieveEmails/RecieveEmails_pic13.png b/docs/Project Editor/assets/RecieveEmails/RecieveEmails_pic13.png deleted file mode 100644 index 8b530d8a..00000000 Binary files a/docs/Project Editor/assets/RecieveEmails/RecieveEmails_pic13.png and /dev/null differ diff --git a/docs/Project Editor/assets/RecieveEmails/RecieveEmails_pic2.png b/docs/Project Editor/assets/RecieveEmails/RecieveEmails_pic2.png deleted file mode 100644 index d5b94098..00000000 Binary files a/docs/Project Editor/assets/RecieveEmails/RecieveEmails_pic2.png and /dev/null differ diff --git a/docs/Project Editor/assets/RecieveEmails/RecieveEmails_pic3.png b/docs/Project Editor/assets/RecieveEmails/RecieveEmails_pic3.png deleted file mode 100644 index 0cfb3235..00000000 Binary files a/docs/Project Editor/assets/RecieveEmails/RecieveEmails_pic3.png and /dev/null differ diff --git a/docs/Project Editor/assets/RecieveEmails/RecieveEmails_pic4.png b/docs/Project Editor/assets/RecieveEmails/RecieveEmails_pic4.png deleted file mode 100644 index 2eb474db..00000000 Binary files a/docs/Project Editor/assets/RecieveEmails/RecieveEmails_pic4.png and /dev/null differ diff --git a/docs/Project Editor/assets/RecieveEmails/RecieveEmails_pic5.png b/docs/Project Editor/assets/RecieveEmails/RecieveEmails_pic5.png deleted file mode 100644 index 8e79bc72..00000000 Binary files a/docs/Project Editor/assets/RecieveEmails/RecieveEmails_pic5.png and /dev/null differ diff --git a/docs/Project Editor/assets/RecieveEmails/RecieveEmails_pic6.png b/docs/Project Editor/assets/RecieveEmails/RecieveEmails_pic6.png deleted file mode 100644 index 213f56d0..00000000 Binary files a/docs/Project Editor/assets/RecieveEmails/RecieveEmails_pic6.png and /dev/null differ diff --git a/docs/Project Editor/assets/RecieveEmails/RecieveEmails_pic7.png b/docs/Project Editor/assets/RecieveEmails/RecieveEmails_pic7.png deleted file mode 100644 index d870fddd..00000000 Binary files a/docs/Project Editor/assets/RecieveEmails/RecieveEmails_pic7.png and /dev/null differ diff --git a/docs/Project Editor/assets/RecieveEmails/RecieveEmails_pic8.png b/docs/Project Editor/assets/RecieveEmails/RecieveEmails_pic8.png deleted file mode 100644 index dd1c26b9..00000000 Binary files a/docs/Project Editor/assets/RecieveEmails/RecieveEmails_pic8.png and /dev/null differ diff --git a/docs/Project Editor/assets/RecieveEmails/RecieveEmails_pic9.png b/docs/Project Editor/assets/RecieveEmails/RecieveEmails_pic9.png deleted file mode 100644 index 9f49f723..00000000 Binary files a/docs/Project Editor/assets/RecieveEmails/RecieveEmails_pic9.png and /dev/null differ diff --git a/docs/Settings/Appearance.mdx b/docs/Settings/Appearance.mdx deleted file mode 100644 index 6c6af5f4..00000000 --- a/docs/Settings/Appearance.mdx +++ /dev/null @@ -1,8 +0,0 @@ ---- -sidebar_position: 3 -title: Внешний вид -description: Изменение интерфейса программы. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ \ No newline at end of file diff --git a/docs/Settings/Captcha.mdx b/docs/Settings/Captcha.mdx deleted file mode 100644 index 0b39cc51..00000000 --- a/docs/Settings/Captcha.mdx +++ /dev/null @@ -1,8 +0,0 @@ ---- -sidebar_position: 7 -title: Каптчи -description: Настройки модулей распознавания капч. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ \ No newline at end of file diff --git a/docs/Settings/Creator_and_GoogleSheets.mdx b/docs/Settings/Creator_and_GoogleSheets.mdx deleted file mode 100644 index 985458f0..00000000 --- a/docs/Settings/Creator_and_GoogleSheets.mdx +++ /dev/null @@ -1,8 +0,0 @@ ---- -sidebar_position: 10 -title: Создание контента и Google таблицы -description: Создание контента и Google таблицы. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ \ No newline at end of file diff --git a/docs/Settings/Debugging.mdx b/docs/Settings/Debugging.mdx deleted file mode 100644 index 76728da2..00000000 --- a/docs/Settings/Debugging.mdx +++ /dev/null @@ -1,8 +0,0 @@ ---- -sidebar_position: 5 -title: Отладка -description: Настройки воспроизведения проектов. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ \ No newline at end of file diff --git a/docs/Settings/Editor.mdx b/docs/Settings/Editor.mdx deleted file mode 100644 index af7c039f..00000000 --- a/docs/Settings/Editor.mdx +++ /dev/null @@ -1,104 +0,0 @@ ---- -sidebar_position: 2 -title: Редактор -description: Настройки редактора проектов. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ -![Внешний вид](./assets/Editor/Editor_pic1.png) - -## Редактор. -### Открывать при запуске ранее открытые проекты. -Если включить эту опцию, то при запуске программы будут открываться все проекты, которые не были закрыты перед последним выключением. - -### Рисовать скриншот элемента (если есть). -![скриншот элемента](./assets/Editor/Editor_pic2.png) - -На блоке с действием будет отрисовываться скриншот соответствующего элемента. Это увеличивает общий вес шаблона, но зато помогает лучше в нём ориентироваться. - -### Не заполнять кэш настроек действий. -Отключает заполнение кэша настроек действий, тем самым ускоряя запуск программы. - -### Показывать результирующую переменную в описании действия. -Добавляет в комментарии некоторых блоков (в которых подразумевается возврат результата) такую конструкцию: `название действия → {переменная}`. - -![результирующую переменную](./assets/Editor/Editor_pic5.png) - -### Сортировать переменные проекта по алфавиту. -Переменные будут расположены в алфавитном порядке. - -### Использовать автодополнение в выпадающих списках. -![автодополнение](./assets/Editor/Editor_pic3.gif) - -При написании имени переменной или списка/таблицы в выпадающем поле будет срабатывать автонабор. Это позволит не писать всё название целиком и быстро заполнить поле. - -:::info **Для применения требуется перезагрузка.** -::: - -### Не предлагать сохранять новый проект. -Убирает окошко с предложением сохранить проект после нажатия кнопки ***С начала***. - -### Предлагать создание действий для новой линии. -При создании новой линии, когда вы потянете за стрелочку от кубика, будет автоматически появляться список возможных действий для добавления. - -![создание действий](./assets/Editor/Editor_pic4.gif) - -### Показывать окно быстрого перехода к действиям. -При наведении на точки крепления линий будет выводится окно для быстрого перехода к действиям. - -![быстрого перехода](./assets/Editor/Editor_pic6.png) - -## Свойства действия. -### Ограничить ширину свойств действий. -Управляет сеткой окна **Свойства действия**. Если стоит галочка, то сетка будет фиксированной. Но если ее убрать, она станет гибкой, подстраиваемой под ширину окна. - -### Открывать несколько настроек действий в режиме “С Устройством/Без Устройства“. -Позволяет открывать сразу несколько настроек действий рядом с кубиком. По умолчанию опция включена только в режиме “Без Устройства“. Это значит, что если вы подключите устройство, то настройка станет не активной. - -| ![несколько настроек](./assets/Editor/Editor_pic7.png) | -| :--------: | -| *Открыть можно два и более окон настроек* | - -## Другое. -### Максимальная высота сообщения в логе до появления скролла. -Устанавливает высоту поля с сообщением в логе, которая будет видна без необходимости прокрутки. Число означает количество строк, которые поместятся для предпросмотра. - -### Высота ячейки в списке переменных до появления скролла. -По аналогии с прошлым пунктом задаётся высота ячейки в окне **Переменные** доступная для просмотра. - -### Количество строк в статических блоках до появления скролла. -Здесь также задаём доступное количество строк в разделе статических блоков до появления прокрутки. - -### Запоминать количество последних открытых проектов. -Регулирует количество последних открытых проектов, которые будут отображаться на ***Стартовой странице***. - -### Таймаут автосохранения. -Устанавливаем время в минутах, через которое проект будет автоматически сохраняться. - -### Директория C# сниппетов. -Указываем директорию, из которой в программу будут автоматически подгружаться ***C# сниппеты***. - -**Директория по умолчанию:** -`C:\Users\*USERNAME*\AppData\Roaming\ZennoLab\ZennoDroid\2\Snippets` - -### Шрифт C# и JavaScript кода. -Задаём шрифт, который будет использоваться в экшенах ***C#*** и ***JavaScript*** кода. По умолчанию стоит *Consolas* 10-го размера. - -### Запоминать положение курсора в C# блоке. -Код будет открываться на той строке, где вы остановились работать в прошлый раз. - -### Нумерация строк в C# блоке по умолчанию. -Строки в ***Коде C#*** будут автоматически пронумерованы. - -![Нумерация строк](./assets/Editor/Editor_pic8.png) - -### Перенос строк в C# блоке по умолчанию. -Эта опция включает автоматический перенос строк в C# коде, если они не помещаются в текущее окно. - -| ![Перенос включён](./assets/Editor/Editor_pic9.png) | ![Перенос выключен](./assets/Editor/Editor_pic10.png) | -| -------- | ------- | -| Перенос включён | Перенос выключен | - -### Массовое шифрование проектов. -Эта кнопка включает позволяет ***Зашифровать*** все открытые проекты. \ No newline at end of file diff --git a/docs/Settings/Entry_Setting.mdx b/docs/Settings/Entry_Setting.mdx deleted file mode 100644 index 9a777ecc..00000000 --- a/docs/Settings/Entry_Setting.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -sidebar_position: 4 -title: Входные настройки -description: Входные параметры для проектов. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: - -## Что такое Входные параметры? -Эти настройки нужны для передачи данных в шаблон. В ZennoDroid существуют два типа входных параметров: **классические** и **интерфейс бота (BotUI)**. В них могут содержаться различные типы данных, такие как: пути к файлам, строки текста, числа, сервисы по работе с капчей, СМС-сервисы, выпадающие списки и так далее. - diff --git a/docs/Settings/Execution.mdx b/docs/Settings/Execution.mdx deleted file mode 100644 index b5b9080c..00000000 --- a/docs/Settings/Execution.mdx +++ /dev/null @@ -1,8 +0,0 @@ ---- -sidebar_position: 6 -title: Выполнение -description: Настройки выполнения проекта. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ \ No newline at end of file diff --git a/docs/Settings/Hotkeys.mdx b/docs/Settings/Hotkeys.mdx deleted file mode 100644 index a40db533..00000000 --- a/docs/Settings/Hotkeys.mdx +++ /dev/null @@ -1,8 +0,0 @@ ---- -sidebar_position: 13 -title: Горячие клавиши -description: Список горячих клавиш. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ \ No newline at end of file diff --git a/docs/Settings/Other_Settings.mdx b/docs/Settings/Other_Settings.mdx deleted file mode 100644 index 9555b667..00000000 --- a/docs/Settings/Other_Settings.mdx +++ /dev/null @@ -1,8 +0,0 @@ ---- -sidebar_position: 14 -title: Другое -description: Другие доступные настройки. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ diff --git a/docs/Settings/Profile_Setting.mdx b/docs/Settings/Profile_Setting.mdx deleted file mode 100644 index d5dace04..00000000 --- a/docs/Settings/Profile_Setting.mdx +++ /dev/null @@ -1,31 +0,0 @@ ---- -sidebar_position: 12 -title: Профиль и Почта -description: Настройки профиля и почтового ящика. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ -## Настройки заполнения профиля. -![Настройки заполнения профиля](./assets/Profile_Setting/Profile_Setting_pic1.png) - -Позволяют указать характеристики, который будет генерироваться по умолчанию при старте проекта. -_______________________________________________ -### Национальность по умолчанию. -![Национальность по умолчанию](./assets/Profile_Setting/Profile_Setting_pic2.png) - -Национальность для генерации профиля. Её также можно изменить и на уровне шаблона, в настройках профиля проекта. -_______________________________________________ -### E-mail для регистраций. -Указанный в этой настройке *e-mail* будет использоваться для всех новых профилей. -Его также можно изменить через переназначение полей в **Операциях над профилем**. -Значение хранится в переменной окружения `{-Profile.Email-}`. - -![Email and Password](./assets/Profile_Setting/Profile_Setting_pic3.png) -_______________________________________________ -### Пароль от e-mail для регистраций. -Этот *пароль от e-mail* будет использоваться для всех новых профилей. Его также можно изменить в -**Операциях над профилем**. Значение хранится в переменной окружения `{-Profile.EmailPassword-}`. - -_______________________________________________ -## Настройки почтовых сервисов. \ No newline at end of file diff --git a/docs/Settings/Proxy_Traffic.mdx b/docs/Settings/Proxy_Traffic.mdx deleted file mode 100644 index e24e8261..00000000 --- a/docs/Settings/Proxy_Traffic.mdx +++ /dev/null @@ -1,8 +0,0 @@ ---- -sidebar_position: 11 -title: Проксирование трафика -description: Подробнее про Proxifier и Redsocks. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ \ No newline at end of file diff --git a/docs/Settings/Record_and_InputMethods.mdx b/docs/Settings/Record_and_InputMethods.mdx deleted file mode 100644 index d8497683..00000000 --- a/docs/Settings/Record_and_InputMethods.mdx +++ /dev/null @@ -1,93 +0,0 @@ ---- -sidebar_position: 4 -title: Запись и Ввод -description: Запись проекта, а также доступные способы ввода. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ -## Запись проекта. -![Запись проекта](./assets/Record_and_InputMethods/Record_and_InputMethods_pic2.png) - -Данная вкладка содержит настройки, которые активируются при включенной записи проекта. - -![Настройки](./assets/Record_and_InputMethods/Record_and_InputMethods_pic1.png) -_______________________________________________ -## Автоматически вставлять макрос директории. -:::tip **Эта настройка работает даже *при выключенной записи* проекта.** -::: - -В ZennoDroid существуют ***переменные окружения***. Например, `{-Project.Directory-}`, в которой хранится путь к директории, где сохранён файл проекта. -:::info **Если проект не сохранён на диске, то переменная содержит пустую строку.** -::: - -При включении данной настройки во время создания проекта ProjectMaker будет подставлять макрос -**директории проекта** туда, куда это возможно. Например, в другие настройки и экшены. -Указываемый путь должен находиться в той же папке, что и файл проекта, либо в одной из подпапок. -_______________________________________________ -## Запись действий по координатам. -Эта настройка отвечает за то, что при записи проекта все клики внутри **Окна эмулятора** будут записываться вместе с координатами. В проект добавятся экшены ***эмуляции touch***, в которые автоматически внесутся координаты нажатия. -:::warning **Разрешение эмулятора должно быть одинаковым во время создания и выполнения проекта!** -::: -_______________________________________________ -## Запись нажатий через поиск по картинкам. -После включения параметра при каждом клике внутри **Окна эмулятора** в проект будет добавлен ***экшен touch*** через **Поиск по картинке**. -### Цветовой режим. -Поиск по картинке будет по умолчанию производиться в одном из режимов: -- **RGB**. Поиск по цветному изображению. -- **Gray**. Картинка только с оттенками серого. -- **Black**. Черно-белый режим. -![Цветовой режим](./assets/Record_and_InputMethods/Record_and_InputMethods_pic4.png) -:::tip **Советуем.** -*Для ускорения поиска производите поиск в режиме **Gray** или **Black*** -::: - -### Область поиска. -Выбор области, которая будет выставляться по умолчанию: -- По всему экрану. -- По выделенной области экрана. -:::info **В целях снижения нагрузки на CPU лучше производить поиск по области экрана.** -::: -_______________________________________________ -## Задержка при вводе символов -Используется в экшенах **Эмуляция клавиатуры** и **Установка значения** в качестве *значения по умолчанию*. -_______________________________________________ -## Время ожидания элемента. -Применяется в действиях **Установка значения**, **Взятие значения** и **Выполнить событие** в качестве *значения по умолчанию* для поля ***«Ждать элемент не более (сек)»***. -_______________________________________________ -## Время поиска элемента. -Используется в экшене **Поиск по картинке** в качестве *значения по умолчанию* для поля -***«Ждать элемент не более (сек)»***. -_______________________________________________ -## Способы ввода. -В программе есть **4 способа** ввода символов с клавиатуры. -![4](./assets/Record_and_InputMethods/Record_and_InputMethods_pic3.png) -Ввод символов по-разному работает на устройствах, поэтому наличие нескольких способов дает возможность самостоятельно подобрать оптимальный. Первые три варианта позволяют вводить любые символы, включая эмодзи, последний же работает только с ASCII. -_______________________________________________ -### Подробное описание. -#### ADBKeyboard. -Применяется сторонняя клавиатура. Автоматически устанавливается при подключении к устройству. Позволяет вводить символы, как если бы их набирали на виртуальной клавиатуре. -#### AccessibilityService. -Используется [***UiAutomator2***](https://github.com/appium/appium-uiautomator2-driver). Позволяет задать любое значение полю, которое находится в фокусе. -По своей сути не является вводом символов, а просто меняет у поля свойство **Text** на нужное значение. -:::tip **Имейте в виду.** -*Не будет работать в приложениях, в которых нет стандартного дерева элементов. Например, в играх.* -::: - -#### Native input + Clipboard. -Ввод символов осуществляется через интерфейс **IInputManager** и **IClipboard**. Работает достаточно быстро. -:::info **Внимательно.** -*Ввод кириллицы/эмодзи возможен только на Android 7 и выше, ASCII - на любых устройствах.* -::: - -#### Input text. -Аналог команды ***input text***, но с добавлением всех необходимых преобразований текста для корректного ввода спецсимволов `< > | ) (` и прочих. Позволяет вводить **только ASCII символы**. -:::info **Рекомендуем.** -*Посимвольный ввод работает медленно, поэтому лучше выбирать тип ввода с **отключенной задержкой**.* -::: -_______________________________________________ -### Не установилась клавиатура ADBKeyboard. Что делать? -1. Нужно установить на телефон приложение ***com.android.adbkeyboard.apk*** (*файл лежит в корневой папке с программой*). Например, с помощью экшена **Установить приложение**. -2. Зайти на телефоне в настройки языка ввода и поставить галку на ***AdbKeyboard***. -3. Выполнить экшен **Запустить ВМ**. Это активирует клавиатуру. Она появится в любом поле, где нужно ввести текст - снизу вы увидите маленькое уведомление `Adb keyboard ON`. - \ No newline at end of file diff --git a/docs/Settings/SMS.mdx b/docs/Settings/SMS.mdx deleted file mode 100644 index 3fbe53a5..00000000 --- a/docs/Settings/SMS.mdx +++ /dev/null @@ -1,8 +0,0 @@ ---- -sidebar_position: 8 -title: SMS -description: Настройки подключения SMS-сервисов. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ \ No newline at end of file diff --git a/docs/Settings/Settings_for_Android.mdx b/docs/Settings/Settings_for_Android.mdx deleted file mode 100644 index 3f98c114..00000000 --- a/docs/Settings/Settings_for_Android.mdx +++ /dev/null @@ -1,110 +0,0 @@ ---- -sidebar_position: 1 -title: Настройки Android -description: Параметры для настройки эмуляции Android. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ -На этой вкладке находятся различные параметры для настройки эмуляции Android, а также настройки реального устройства на базе Android. - -## Параметры при работе с Memu. -![при работе с Memu](./assets/Settings_for_Android/Settings_for_Android_pic1.png) -_______________________________________________ -### Использовать устройство по умолчанию. -Эта настройка позволяет выбрать устройство, которое будет использоваться по умолчанию в -Project Maker — при условии, что не выбрано другое устройство. При этом данное устройство -будет игнорироваться ZennoDroid'ом при случайном выборе из списка доступных. - -Если вы хотите использовать выбранное устройство при выполнении проектов в ZennoDroid, то необходимо отключить эту настройку, чтобы не возникало ошибки ***Устройство занято в Project Maker***. -:::info **Кнопка «Обновить» позволяет обновить список доступных устройств** -::: - -### Использовать MJPEG для захвата изображения. -Альтернативный способ захвата изображения с устройства. Эту настройку стоит включать только в том случае, если при запуске устройства через ZennoDroid процесс всегда завершается ошибкой, а в логе появляется запись ***Не удалось захватить изображение***. -_______________________________________________ -### Время ожидания загрузки устройства. -Это время, отведённое на загрузку эмулятора. Если не удалось загрузить устройство за отведённое здесь время, то выполнение завершится с ошибкой. -_______________________________________________ -### Случайное отклонение клика. -Позволяет делать клики с небольшим отклонением от заданных параметров. Используется в экшенах: -- ***Поиск по картинке***. Нажатие на экран будет осуществляться не в точное место, а с небольшим смещением. -- ***Выполнить событие***. Если для координат нажатия выбран **Центр**, то нажатие на элемент будет произведено не точно, а с небольшим отклонением. -_______________________________________________ -### Случайное отклонение при вводе символов. -Используется в экшенах **Эмуляция клавиатуры** и **Установка значения**. Позволяет настроить отклонение задержки от заданного значения. - -Например, если задана задержка 150 мс, а отклонение 10%, то реальная задержка при вводе каждого символа составит от 135 мс до 165 мс. -_______________________________________________ -### Задержка перед и после ввода символов. -Как и прошлый параметр, используется в действиях **Эмуляция клавиатуры** и **Установка значения** для установки задержки. -_______________________________________________ -### Проксирование трафика (Proxifier и Redsocks). -ZennoDroid позволяет выбрать способ проксирования трафика для выполнения экшена **Установка прокси**. По умолчанию используется Proxifier. - -![Проксирование трафика](./assets/Settings_for_Android/Settings_for_Android_pic3.png) -_______________________________________________ -### Ограничивать частоту кадров. -Эта настройка влияет на FPS запускаемых эмуляторов. Если она включена, то всем эмуляторам будет принудительно установлено указанное количество кадров. -_______________________________________________ -### Отключать вывод звука и микрофон. -Возможность выключать у эмуляторов звук, а также использование микрофона. Отключение звука снижает нагрузку на процессор. -_______________________________________________ -### Включить оптимизацию памяти GPU. -Лучше всегда держать включенной, так как позволяет снизить нагрузку на видеокарту. -_______________________________________________ -### Отключить Анти-Мерцание. -Эта функция позволяет решить проблему мерцания экрана, что позволяет улучшить отображение картинки. -:::info **Советуем.** -*При запуске одновременно нескольких эмуляторов **лучше отключайте** Анти-Мерцание для снижения нагрузки на систему.* -::: -_______________________________________________ -### Отключить рекламу. -В лаунчер Memu вшит показ рекламы. Это может сломать работу шаблона, так как реклама отображается поверх всех окон. Рекомендуется всегда её отключать. -_______________________________________________ -### Использовать общий системный диск. -При создании нового эмулятора будет использоваться общий системный диск. Его можно использовать вообще для всех эмуляторов, тем самым значительно экономя память. Например, один системный диск Android 9 занимает ~ 2ГБ. - -Общий диск работает в режиме только для чтения, то есть на него нельзя записать информацию (как правило, это и не требуется). - -Способ подключения диска для уже созданны х эмуляторов, можно изменить с помощью специального экшена. -_______________________________________________ -### Добавить в устройство команду cURL. -В новых версиях Memu эта утилита добавлена по умолчанию, но только для Android 7.1. Этот параметр позволяет добавить cURL в более старые версии эмулятора, а также в эмуляторы на базе Android 5.1. -_______________________________________________ -### Эмулировать разрядку батареи. -По умолчанию батарея всегда находится в состоянии ***Заряжается*** и её заряд равен 100%. При включении этой настройки батарея будет разряжаться (~ до 20%), а затем заряжаться (~ до 70%). -_______________________________________________ -## Параметры для версии Enterprise. -![для версии Enterprise](./assets/Settings_for_Android/Settings_for_Android_pic2.png) -Многие настройки дублируют таковые из первой части статьи, поэтому далее буду перечислены только отличающиеся. -_______________________________________________ -### Время ожидания загрузки устройства. -С помощью этого параметра можно задать тайм-аут ожидания подключения к устройству в секундах, прежде чем появится ошибка. -_______________________________________________ -### Отключение анимации. -Настройка позволяет отключить плавную анимацию переходов, которая сильно замедляет работу с устройством. -_______________________________________________ - -### Способ ввода символов. -Настройка позволяет выбрать наиболее подходящий способ эмуляции ввода символов: -- **ADBKeyboard**. -- **AccessibilityService**. -- **Native input + Clipboard**. -- **Input text**. -:::info **Внимательно.** -*Первые три способа выводят любые символы, включая кириллицу и эмодзи. Последний же только ASCII символы.* -::: - -### Использование фиктивных местоположений. -Данный параметр нужен для подмены местоположения устройства через экшен **Установка Geo-позиции**. -_______________________________________________ -### Настройки для устройств с Root. -Эти настройки необходимы для экшенов **Сохранить/восстановить данные приложения**. Мы не рекомендуем менять эти параметры без необходимости. - -Команда `su` позволяет указать путь и параметры для запуска команд с привилегиями суперпользователя. По умолчанию: `su -c`. - -Настройка **Путь к busybox** позволяет указать путь к файлу busybox. -По умолчанию: `/sbin/.magisk/busybox/busybox`. - - diff --git a/docs/Settings/Translators.mdx b/docs/Settings/Translators.mdx deleted file mode 100644 index b7cf506a..00000000 --- a/docs/Settings/Translators.mdx +++ /dev/null @@ -1,8 +0,0 @@ ---- -sidebar_position: 9 -title: Переводчики -description: Настройки сервисов для перевода текста. ---- -:::info **Пожалуйста, ознакомьтесь с [*Правилами использования материалов на данном ресурсе*](../Disclaimer).** -::: -_______________________________________________ \ No newline at end of file diff --git a/docs/Settings/_category_.json b/docs/Settings/_category_.json deleted file mode 100644 index b73c8a25..00000000 --- a/docs/Settings/_category_.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "label": "Настройки", - "position": 7, - "link": { - "type": "generated-index", - "title": "Какие есть настройки?" - } - } - \ No newline at end of file diff --git a/docs/Settings/assets/Editor/Editor_pic1.png b/docs/Settings/assets/Editor/Editor_pic1.png deleted file mode 100644 index c03541fc..00000000 Binary files a/docs/Settings/assets/Editor/Editor_pic1.png and /dev/null differ diff --git a/docs/Settings/assets/Editor/Editor_pic10.png b/docs/Settings/assets/Editor/Editor_pic10.png deleted file mode 100644 index 61ad3bdd..00000000 Binary files a/docs/Settings/assets/Editor/Editor_pic10.png and /dev/null differ diff --git a/docs/Settings/assets/Editor/Editor_pic2.png b/docs/Settings/assets/Editor/Editor_pic2.png deleted file mode 100644 index df897302..00000000 Binary files a/docs/Settings/assets/Editor/Editor_pic2.png and /dev/null differ diff --git a/docs/Settings/assets/Editor/Editor_pic3.gif b/docs/Settings/assets/Editor/Editor_pic3.gif deleted file mode 100644 index 6a75db90..00000000 Binary files a/docs/Settings/assets/Editor/Editor_pic3.gif and /dev/null differ diff --git a/docs/Settings/assets/Editor/Editor_pic4.gif b/docs/Settings/assets/Editor/Editor_pic4.gif deleted file mode 100644 index d2989f64..00000000 Binary files a/docs/Settings/assets/Editor/Editor_pic4.gif and /dev/null differ diff --git a/docs/Settings/assets/Editor/Editor_pic5.png b/docs/Settings/assets/Editor/Editor_pic5.png deleted file mode 100644 index 5f879073..00000000 Binary files a/docs/Settings/assets/Editor/Editor_pic5.png and /dev/null differ diff --git a/docs/Settings/assets/Editor/Editor_pic6.png b/docs/Settings/assets/Editor/Editor_pic6.png deleted file mode 100644 index 62e95f53..00000000 Binary files a/docs/Settings/assets/Editor/Editor_pic6.png and /dev/null differ diff --git a/docs/Settings/assets/Editor/Editor_pic7.png b/docs/Settings/assets/Editor/Editor_pic7.png deleted file mode 100644 index a457158b..00000000 Binary files a/docs/Settings/assets/Editor/Editor_pic7.png and /dev/null differ diff --git a/docs/Settings/assets/Editor/Editor_pic8.png b/docs/Settings/assets/Editor/Editor_pic8.png deleted file mode 100644 index b9605d45..00000000 Binary files a/docs/Settings/assets/Editor/Editor_pic8.png and /dev/null differ diff --git a/docs/Settings/assets/Editor/Editor_pic9.png b/docs/Settings/assets/Editor/Editor_pic9.png deleted file mode 100644 index c6f2eb88..00000000 Binary files a/docs/Settings/assets/Editor/Editor_pic9.png and /dev/null differ diff --git a/docs/Settings/assets/Profile_Setting/Profile_Setting_pic1.png b/docs/Settings/assets/Profile_Setting/Profile_Setting_pic1.png deleted file mode 100644 index ee115903..00000000 Binary files a/docs/Settings/assets/Profile_Setting/Profile_Setting_pic1.png and /dev/null differ diff --git a/docs/Settings/assets/Profile_Setting/Profile_Setting_pic2.png b/docs/Settings/assets/Profile_Setting/Profile_Setting_pic2.png deleted file mode 100644 index 37f9bc7c..00000000 Binary files a/docs/Settings/assets/Profile_Setting/Profile_Setting_pic2.png and /dev/null differ diff --git a/docs/Settings/assets/Profile_Setting/Profile_Setting_pic3.png b/docs/Settings/assets/Profile_Setting/Profile_Setting_pic3.png deleted file mode 100644 index 9877869e..00000000 Binary files a/docs/Settings/assets/Profile_Setting/Profile_Setting_pic3.png and /dev/null differ diff --git a/docs/Settings/assets/Record_and_InputMethods/Record_and_InputMethods_pic1.png b/docs/Settings/assets/Record_and_InputMethods/Record_and_InputMethods_pic1.png deleted file mode 100644 index ad70891c..00000000 Binary files a/docs/Settings/assets/Record_and_InputMethods/Record_and_InputMethods_pic1.png and /dev/null differ diff --git a/docs/Settings/assets/Record_and_InputMethods/Record_and_InputMethods_pic2.png b/docs/Settings/assets/Record_and_InputMethods/Record_and_InputMethods_pic2.png deleted file mode 100644 index 31c6cb70..00000000 Binary files a/docs/Settings/assets/Record_and_InputMethods/Record_and_InputMethods_pic2.png and /dev/null differ diff --git a/docs/Settings/assets/Record_and_InputMethods/Record_and_InputMethods_pic3.png b/docs/Settings/assets/Record_and_InputMethods/Record_and_InputMethods_pic3.png deleted file mode 100644 index 121a3e70..00000000 Binary files a/docs/Settings/assets/Record_and_InputMethods/Record_and_InputMethods_pic3.png and /dev/null differ diff --git a/docs/Settings/assets/Record_and_InputMethods/Record_and_InputMethods_pic4.png b/docs/Settings/assets/Record_and_InputMethods/Record_and_InputMethods_pic4.png deleted file mode 100644 index 86876e02..00000000 Binary files a/docs/Settings/assets/Record_and_InputMethods/Record_and_InputMethods_pic4.png and /dev/null differ diff --git a/docs/Settings/assets/Settings_for_Android/Settings_for_Android_pic1.png b/docs/Settings/assets/Settings_for_Android/Settings_for_Android_pic1.png deleted file mode 100644 index 24c1cd9d..00000000 Binary files a/docs/Settings/assets/Settings_for_Android/Settings_for_Android_pic1.png and /dev/null differ diff --git a/docs/Settings/assets/Settings_for_Android/Settings_for_Android_pic2.png b/docs/Settings/assets/Settings_for_Android/Settings_for_Android_pic2.png deleted file mode 100644 index bc232fce..00000000 Binary files a/docs/Settings/assets/Settings_for_Android/Settings_for_Android_pic2.png and /dev/null differ diff --git a/docs/Settings/assets/Settings_for_Android/Settings_for_Android_pic3.png b/docs/Settings/assets/Settings_for_Android/Settings_for_Android_pic3.png deleted file mode 100644 index 0b9aa67d..00000000 Binary files a/docs/Settings/assets/Settings_for_Android/Settings_for_Android_pic3.png and /dev/null differ diff --git a/docs/Tools/Installed_App.mdx b/docs/Tools/Installed_App.mdx deleted file mode 100644 index 5536cfa6..00000000 --- a/docs/Tools/Installed_App.mdx +++ /dev/null @@ -1,17 +0,0 @@ ---- -sidebar_position: 1 -title: Установленные приложения -description: Инструменты → Установленные приложения ---- -Открыть окно можно через верхнее меню **Инструменты → Установленные приложения**. - -![Инструменты](./assets/Installed_App_pic1.png) - -В нем отобразятся все установленные в системе приложения вместе с их понятными названиями, -которые обычно написаны на иконке. - -![Установленные приложения](./assets/Installed_App_pic2.png) - -Идентификатор приложения можно скопировать в буфер обмена и использовать в экшене -**Действия с приложениями** для их запуска, остановки и удаления. А также для сохранения -и восстановления данных. При этом все действия будут записаны в проект. \ No newline at end of file diff --git a/docs/Tools/_category_.json b/docs/Tools/_category_.json deleted file mode 100644 index 5a0557fa..00000000 --- a/docs/Tools/_category_.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "label": "Инструменты", - "position": 8, - "link": { - "type": "generated-index", - "title": "Полезные инструменты" - } - } - \ No newline at end of file diff --git a/docs/Tools/assets/Installed_App_pic1.png b/docs/Tools/assets/Installed_App_pic1.png deleted file mode 100644 index 1ab34d3d..00000000 Binary files a/docs/Tools/assets/Installed_App_pic1.png and /dev/null differ diff --git a/docs/Tools/assets/Installed_App_pic2.png b/docs/Tools/assets/Installed_App_pic2.png deleted file mode 100644 index 7f7ede4b..00000000 Binary files a/docs/Tools/assets/Installed_App_pic2.png and /dev/null differ diff --git a/docs/ZennoBrowser/install-and-setting/ZennoBrowser_System_Requirements.mdx b/docs/ZennoBrowser/install-and-setting/ZennoBrowser_System_Requirements.mdx new file mode 100644 index 00000000..b174bf8e --- /dev/null +++ b/docs/ZennoBrowser/install-and-setting/ZennoBrowser_System_Requirements.mdx @@ -0,0 +1,35 @@ +--- +sidebar_position: 7 +title: "Системные требования ZennoBrowser" +description: " " +date: "2026-01-25" +slug: system-requirements +--- +import DisclaimerNotice from '@site/src/components/DisclaimerNotice'; + + + +_______________________________________________ +## **Минимальные требования** + +- **Процессор:** Intel или AMD, 2 ядра, не менее 1,5 ГГц каждое ядро; +- **RAM:** 8 Гб; +- **Операционная система:** Windows 10 x64 и более поздние версии, Windows Server 2019 и более поздние; +- **.NET 8.0 (SDK);** +- **Права администратора:** для установки и обновления; +- **Интернет:** обязательно. + +## **Рекомендуемые требования** + +- **Процессор:** 8-16 ядер Intel или AMD; +- **RAM:** 16 Гб; +- **Жесткий диск:** SSD; +- **Операционная система:** Windows 10 x64 и более поздние версии, Windows Server 2019 и более поздние; +- **.NET 9.0;** +- **DirectX 11+;** +- **Права администратора:** для установки и обновления; +- **Интернет:** обязательно. +- **Наличие:** физическая видеокарта + +Примечания: +Системные требования шаблонов необходимо уточнять у его разработчика. \ No newline at end of file diff --git a/docs/ZennoDroid/Android/Enterprise/Clash.mdx b/docs/ZennoDroid/Android/Enterprise/Clash.mdx index b703834d..7dec71a6 100644 --- a/docs/ZennoDroid/Android/Enterprise/Clash.mdx +++ b/docs/ZennoDroid/Android/Enterprise/Clash.mdx @@ -14,6 +14,16 @@ Clash позволяет настроить прозрачный прокси н Эта программа понадобится для [Установки прокси в режиме Clash](../../Settings/Proxy_Traffic_Ent). _______________________________________________ +## Автоматическая установка +Модуль **Box for Root** устанавливается автоматически при первой установке прокси в режиме Clash. + +### Автоматическое обновление +Если Clash уже установлен на устройстве, то он **не будет автоматически обновляться**. + +Для обновления установленной версии, нужно совершить следующие действия: +1. **Удалить установленный Clash**. Для этого выполните экшен Adb Shell *с галочкой у прав суперпользователя*: `rm -rf /data/adb/box` +2. После этого установить прокси в режиме Clash. **Новая версия установится автоматически**. +_______________________________________________ ## Установка вручную. :::warning **Ставить модуль вручную необязательно.** Box for Root автоматически устанавливается при первом использовании прокси в режиме Clash. diff --git a/docs/ZennoDroid/Android/Enterprise/Files.mdx b/docs/ZennoDroid/Android/Enterprise/Files.mdx index fac817ca..5d74fb33 100644 --- a/docs/ZennoDroid/Android/Enterprise/Files.mdx +++ b/docs/ZennoDroid/Android/Enterprise/Files.mdx @@ -9,14 +9,15 @@ import DisclaimerNotice from '@site/src/components/DisclaimerNotice'; # Работа с файлами (Enterprise) +## Описание Данный экшен позволяет отправлять файлы с компьютера на устройство и наоборот. -_______________________________________________ -## Как добавить в проект? + +### Как добавить в проект? ***Нажимаем ПКМ → Добавить действие → Android → Файлы*** ![Добавить в проект](../assets/Files/Files_pic1.png) _______________________________________________ -### Отправка файла. +## Отправка файла. Эту функция нужна, чтобы скопировать файл с компьютера на устройство. ![Отправка файла](../assets/Files/Files_pic2.png) @@ -31,7 +32,10 @@ _______________________________________________ Например: `su -c cp /data/local/tmp/myfile /data/data/app/myfile` ::: -### Получение файла. +- *Выполнять с правами суперпользователя*. Этот параметр нужен для отправки файлов в папки с доступом по правам суперпользователя. +При отправке файла в такие папки выдаётся сообщение, содержащее `Permission denied`. Если при выключенной настройке файл отправляется без ошибок, то включать данную настройку категорически **не рекомендуется**. + +## Получение файла. С помощью данного действия можно наоборот скопировать файл уже с устройства на компьютер. ![Получение файла](../assets/Files/Files_pic3.png) @@ -40,6 +44,8 @@ _______________________________________________ - *Путь к файлу*. Полный путь к файлу на смартфоне. - *Новый путь*. Место на компьютере, куда будет перемещён этот файл. Можно указать полный путь, задав сразу название для файла: `c:\Images\pic.png` или же указать только папку: `/sdcard/Pictures/`. Во втором сценарии файл будет скопирован с имеющимся названием. -_______________________________________________ +- *Выполнять с правами суперпользователя*. Этот параметр нужен для отправки файлов в папки с доступом по правам суперпользователя. +При отправке файла в такие папки выдаётся сообщение, содержащее `Permission denied` или `No such file or directory`. Если при выключенной настройке файл отправляется без ошибок, то включать данную настройку категорически **не рекомендуется**. +______________________________________________ ## Полезные ссылки. - [**Установка Root-прав**](../../Enterprise/Root) \ No newline at end of file diff --git a/docs/ZennoDroid/Android/Enterprise/Utilities_Ent.mdx b/docs/ZennoDroid/Android/Enterprise/Utilities_Ent.mdx index c66c1b31..c84700fe 100644 --- a/docs/ZennoDroid/Android/Enterprise/Utilities_Ent.mdx +++ b/docs/ZennoDroid/Android/Enterprise/Utilities_Ent.mdx @@ -9,10 +9,11 @@ import DisclaimerNotice from '@site/src/components/DisclaimerNotice'; # Утилиты (Enterprise) +## Описание В данном экшене собраны различные функции, которые будут полезны при работе с проектом. -## Как добавить утилиты в проект? -***Нажимаем ПКМ → Добавить действие → Android → Утилиты*** +### Как добавить их в проект? +**Нажимаем ПКМ → Добавить действие → Android → Утилиты** ![Добавить утилиту](../assets/Utilities/Utilities_pic1.png) _______________________________________________ diff --git a/docs/ZennoDroid/Android/Enterprise/setting.mdx b/docs/ZennoDroid/Android/Enterprise/setting.mdx index fe975f08..abdda5ff 100644 --- a/docs/ZennoDroid/Android/Enterprise/setting.mdx +++ b/docs/ZennoDroid/Android/Enterprise/setting.mdx @@ -104,10 +104,82 @@ _______________________________________________ Можно произвольно установить: **год, месяц, день, час, минуту и секунду**. ![время](../assets/setting/Android_Setting_pic17.png) Если оставить все поля пустыми, то произойдет автоматическая синхронизация с текущим временем. +_______________________________________________ +## **Доступ к WebView** +:::info **Добавлено в версии ZennoDroid 2.4.6.0.** +::: + +Предоставляет возможность выполнять JavaScript в приложениях содержащих WebView. + +![image1](../assets/setting/image-20251115-154623.png) + +По умолчанию доступ к WebView в приложениях, не являющихся браузерами, всегда выключен. Данная настройка позволяет получить доступ к HTML-разметке не только браузеров, но и приложений использующих WebView. Для этого в дереве элементов должен присутствовать элемент `android.webkit.WebView`. + +**Пример выполнения JavaScript:** +| Доступ к WebView выключен | ![image2](../assets/setting/image-20251115-161200.png) | +| :-----------: | ----------- | +| **Включен** | ![image3](../assets/setting/image-20251115-161937.png) | + + + + +:::warning **Требуется установленный [*модуль «ZennoDroid» для LSPosed*](../../Enterprise/LSPosed#установка-модуля-zennodroid).** +::: +_______________________________________________ +## **Сгенерировать устройство** +:::info **Добавлено в версии ZennoDroid 2.4.6.0.** +::: + +Позволяет сформировать устройство по заданным фильтрам или из предварительно настроенных параметров в формате JSON. + +![image4](../assets/setting/image-20251112-122340.png) + +:::warning **Требуется установленный [*модуль «ZennoDroid» для LSPosed*](../../Enterprise/LSPosed#установка-модуля-zennodroid).** +::: +### **Случайное** +Генерация и применение случайного устройства по заданным фильтрам и настройкам. + +![image6](../assets/setting/image-20251112-122715.png) + +#### Вкладка «Фильтр» +- **Страна**. Используется для генерации мобильного оператора и сопутствующих настроек. +Страна может быть указана в формате ISO: + - два символа, например, `ru`, `fr`, `us` + - или полностью: `Russia`, `France`, `United States of America` + - также поддерживается формат указанный в профиле в поле **Country** (Россия, France, USA) +:::tip **Предпочтительно использовать двухбуквенный формат ISO** +Посмотреть коды и наименования стран можно на сайте [http://www.mcc-mnc.com/](http://www.mcc-mnc.com/) +::: + +- **Производитель устройства**. Можно указать несколько производителей: `google|samsung`. +- **Бренд устройства**. Используется если у производителя их несколько и нужен конкретный бренд. +Например, у производителя Xiaomi есть бренды Poco и Redmi. +- **Модель устройства**. Нужно для указания конкретного набора моделей. +Например, `Pixel [7|8]` — только Google Pixel 7 или 8. +- **Версия Android**. Для выбора конкретных версий Android: `12|13|14|15` + +#### Вкладка «Дополнительно» +- **Добавить шум к Canvas Fingerprint** — добавляет шум для *Canvas Fingerprint* (в приложениях и в браузерах). +- **Генерировать GPU** — позволяет указать в приложениях **GPU Vendor** и **GPU Renderer**. В браузерах изменяет параметры WebGL: **Unmasked Vendor** и **Unmasked Renderer**. +- **GPU Vendor** — позволяет задать фильтр *GPU Vendor* (`Qualcomm|ARM`). +На некоторых телефонах при использовании вендора Qualcomm или ARM наблюдаются *проблемы с отображением на экране (**белый экран**)*. Можно установить фильтр, чтобы использовался только рабочий вендор. В случае проблем с обоими вендорами рекомендуется **отключить генерацию GPU**. +- **Положить результат в переменную** — сгенерированное устройство будет сохранено в переменную в формате JSON. В дальнейшем можно повторно использовать сгенерированное устройство. + +После установки фильтров рекомендуем проверить настройки, выполнив экшен. Если значения заданы некорректно или в базе устройств отсутствуют модели с необходимыми характеристиками, то появится предупреждение о невозможности сформировать устройство. + +### **Использовать JSON** +Позволяет установить устройство из предварительно заданных параметров в формате JSON. + +![image7](../assets/setting/image-20251112-130628.png) + +**Входные данные** — требуется строка в формате JSON, *можно указать переменную*. +> Получить строку и ознакомиться с ее форматом можно при генерации случайного устройства. _______________________________________________ ## Как поставить прокси: Данная настройка позволяет установить прокси на все подключённые устройства. + ![прокси](../assets/setting/Android_Setting_pic20.png) + Формат для прокси: - **С авторизацией**: `protocol://login:password@ip:port`. - **Без авторизации**: `protocol://ip:port`. @@ -190,7 +262,21 @@ instance.DroidInstance.Proxy.SetProxy("socks5://10.20.30.40:8080", settings); :::warning **Одновременно можно использовать либо белый, либо черный список.** Если же заполнены оба поля, то будет использоваться только белый список. -::: +::: + +#### Правила проксирования. +Есть возможность задать собственные правила для проксирования. Их нужно разделять точкой с запятой `;` или переносом строки. + +| Примеры правил: | Описание| +| :-----------: | ----------- | +| `DOMAIN-REGEX,^abc,DIRECT` | Не проксировать, если домен начинается с **abc** | +| `DOMAIN-SUFFIX,ya.ru,REJECT` | Блокировать трафик на домен **ya.ru** | +| `DOMAIN-KEYWORD,google,PROXY` | Проксировать трафик, если имя домена **google** | +| `IP-CIDR,1.1.1.1/32,DIRECT` | Не проксировать трафик на адрес **1.1.1.1** | +| `AND,((NETWORK,TCP),(DST-PORT,5228-5230)),DIRECT` | Не проксировать трафик на порты **TCP 5228-5230** | +| `MATCH,DIRECT` | Не проксировать весь трафик | +| `MATCH,PROXY` | Проксировать весь трафик | +| `DOMAIN-SUFFIX,2ip.ru,PROXY;MATCH,DIRECT` | Проксируется только трафик на **2ip.ru** | ___________________________________________ ## Полезные ссылки. - [**Установка Root-прав**](../../Enterprise/Root). diff --git a/docs/ZennoDroid/Android/assets/Files/Files_pic2.png b/docs/ZennoDroid/Android/assets/Files/Files_pic2.png index c5691fd8..b9ae2bac 100644 Binary files a/docs/ZennoDroid/Android/assets/Files/Files_pic2.png and b/docs/ZennoDroid/Android/assets/Files/Files_pic2.png differ diff --git a/docs/ZennoDroid/Android/assets/Files/Files_pic3.png b/docs/ZennoDroid/Android/assets/Files/Files_pic3.png index fe45a276..67e2b49e 100644 Binary files a/docs/ZennoDroid/Android/assets/Files/Files_pic3.png and b/docs/ZennoDroid/Android/assets/Files/Files_pic3.png differ diff --git a/docs/ZennoDroid/Android/assets/setting/image-20251112-122340.png b/docs/ZennoDroid/Android/assets/setting/image-20251112-122340.png new file mode 100644 index 00000000..2e5bb89e Binary files /dev/null and b/docs/ZennoDroid/Android/assets/setting/image-20251112-122340.png differ diff --git a/docs/ZennoDroid/Android/assets/setting/image-20251112-122715.png b/docs/ZennoDroid/Android/assets/setting/image-20251112-122715.png new file mode 100644 index 00000000..94182d3a Binary files /dev/null and b/docs/ZennoDroid/Android/assets/setting/image-20251112-122715.png differ diff --git a/docs/ZennoDroid/Android/assets/setting/image-20251112-130628.png b/docs/ZennoDroid/Android/assets/setting/image-20251112-130628.png new file mode 100644 index 00000000..ca0bad0b Binary files /dev/null and b/docs/ZennoDroid/Android/assets/setting/image-20251112-130628.png differ diff --git a/docs/ZennoDroid/Android/assets/setting/image-20251115-154623.png b/docs/ZennoDroid/Android/assets/setting/image-20251115-154623.png new file mode 100644 index 00000000..bdc13b03 Binary files /dev/null and b/docs/ZennoDroid/Android/assets/setting/image-20251115-154623.png differ diff --git a/docs/ZennoDroid/Android/assets/setting/image-20251115-161200.png b/docs/ZennoDroid/Android/assets/setting/image-20251115-161200.png new file mode 100644 index 00000000..99f6d51d Binary files /dev/null and b/docs/ZennoDroid/Android/assets/setting/image-20251115-161200.png differ diff --git a/docs/ZennoDroid/Android/assets/setting/image-20251115-161937.png b/docs/ZennoDroid/Android/assets/setting/image-20251115-161937.png new file mode 100644 index 00000000..3cb3639b Binary files /dev/null and b/docs/ZennoDroid/Android/assets/setting/image-20251115-161937.png differ diff --git a/docs/ZennoDroid/Enterprise/BlueStacks.mdx b/docs/ZennoDroid/Enterprise/BlueStacks.mdx index f9b39258..e50c8fff 100644 --- a/docs/ZennoDroid/Enterprise/BlueStacks.mdx +++ b/docs/ZennoDroid/Enterprise/BlueStacks.mdx @@ -1,5 +1,5 @@ --- -sidebar_position: 5 +sidebar_position: 6 sidebar_label: Работа с BlueStacks title: Работа с BlueStacks | Документация ZennoDroid | ZennoLab description: Работа с BlueStacks - раздел официальной документации ZennoDroid от ZennoLab. Подробные инструкции, примеры использования и руководство по настройке diff --git a/docs/ZennoDroid/Enterprise/BusyBox.mdx b/docs/ZennoDroid/Enterprise/BusyBox.mdx index 84e4c8a6..046903e9 100644 --- a/docs/ZennoDroid/Enterprise/BusyBox.mdx +++ b/docs/ZennoDroid/Enterprise/BusyBox.mdx @@ -1,5 +1,5 @@ --- -sidebar_position: 6 +sidebar_position: 7 sidebar_label: Установка BusyBox title: Установка BusyBox | Документация ZennoDroid | ZennoLab description: Установка BusyBox - раздел официальной документации ZennoDroid от ZennoLab. Подробные инструкции, примеры использования и руководство по настройке diff --git a/docs/ZennoDroid/Enterprise/LSPosed.mdx b/docs/ZennoDroid/Enterprise/LSPosed.mdx index 200c8c88..fd0c3a7d 100644 --- a/docs/ZennoDroid/Enterprise/LSPosed.mdx +++ b/docs/ZennoDroid/Enterprise/LSPosed.mdx @@ -1,5 +1,5 @@ --- -sidebar_position: 3 +sidebar_position: 4 sidebar_label: Настройка LSPosed title: Настройка LSPosed | Документация ZennoDroid | ZennoLab description: Настройка LSPosed - раздел официальной документации ZennoDroid от ZennoLab. Подробные инструкции, примеры использования и руководство по настройке @@ -17,69 +17,100 @@ export const VideoSample = ({source}) => ( ## Описание. Модуль ZennoDroid необходим для подмены основных параметров устройства: IMEI, Android ID, сотового оператора, модели, WiFi, Bluetooth и других. -:::info **Важно.** -Поддерживаются телефоны с Android 8.1-14. Для функционирования модуля необходимы **Root права** +:::info **Для функционирования модуля необходимы Root-права** +Поддерживаются телефоны с Android 8.1-14 ::: _________________ -## Установка LSPosed Framework. +## Установка LSPosed Framework
Для установки модуля необходим телефон с [**Magisk**](https://github.com/topjohnwu/Magisk) и активным [**LSPosed Framework**](https://github.com/LSPosed/LSPosed). ![Magisk](./assets/LSPosed/LSPosed_pic1.png) ![zygisk](./assets/LSPosed/LSPosed_pic2.png)
-:::tip *Используйте версию для *zygisk*. Разработка *riru* прекращена.* -::: + +Официальная версия LSPosed давно не обновляется и не работает на современных версиях Android. В связи с этим, рекомендуем использовать специальный билд LSPosed Framework с поддержкой API, подготовленный для работы с ZennoDroid. + +> [**Специальный билд v1.10.2**](https://github.com/AnatolyJacobs/LSPosed_CLI/releases/tag/v.1.10.2_cli_auto) +
-[**Последнюю версию LSPosed**](https://github.com/LSPosed/LSPosed/releases/tag/v1.9.2) нужно скачать на телефон в папку **sdcard/Download/** и установить с помощью стандартного меню. + Этот билд нужно скачать на телефон в папку **sdcard/Download/** и установить с помощью стандартного меню. ![Из хранилища](./assets/LSPosed/LSPosed_pic3.png) ![LSposed](./assets/LSPosed/LSPosed_pic4.png)
-:::warning **По умолчанию модуль LSPosed Framework не имеет иконки и открывается нажатием на уведомление.** +:::warning **По умолчанию модуль LSPosed Framework не имеет иконки** +**Открыть его можно, нажав на уведомление в шторке:** + ![Шторка](./assets/LSPosed/LSPosed_pic5.png) ::: _________________ -## Установка модуля «ZennoDroid». +## Установка модуля «ZennoDroid» Модуль ZennoDroid устанавливается автоматически при первой попытке изменить параметры устройства. -При первом запуске на экране устройства возникнет запрос прав суперпользователя. -Необходимо нажать на кнопку **«Разрешить»**. + +При запуске на экране устройства возникнет запрос прав суперпользователя. Необходимо нажать на кнопку **«Разрешить»**. ![Разрешить](./assets/LSPosed/LSPosed_pic6.png) -_________________ -Если Вы не успели этого сделать или случайно нажали на кнопку **«Запретить»**, необходимо открыть **Magisk**, перейти на вкладку **Superuser (Суперпользователь)** и включить *автоматическую выдачу прав суперпользователя для ZennoDroid*. + +Если вы не успели этого сделать или случайно нажали на кнопку **«Запретить»**, тогда нужно открыть **Magisk**. Там переходим на вкладку **Superuser (Суперпользователь)** и включаем *автоматическую выдачу прав суперпользователя для ZennoDroid*. ![Вручную](./assets/LSPosed/LSPosed_pic7.png) -_________________ + После запуска модуля на экране устройства появится уведомление о том, что он выключен. ![Модуль выключен](./assets/LSPosed/LSPosed_pic8.png) -_________________ -Чтобы это исправить необходимо запустить LSPosed через меню в шторке, переключиться на вкладку *Модули* и включить *модуль ZennoDroid*. + +Нам нужно запустить LSPosed через меню в шторке, переключиться на вкладку **Модули** и включить *модуль ZennoDroid*. - ![Шторка открыть](./assets/LSPosed/LSPosed_pic9.png) ![Включить модуль](./assets/LSPosed/LSPosed_pic10.png) +![Шторка открыть](./assets/LSPosed/LSPosed_pic9.png) ![Включить модуль](./assets/LSPosed/LSPosed_pic10.png) После этого можно будет выбрать программы, к которым будет применяться подмена параметров устройства. _________________ -#### Важная информация. -- Рекомендуется добавлять в список подмены только те приложения, для которых требуется изменять данные. Также для корректной работы часто требуется добавить в список *Сервисы Google Play (com.google.android.gms)*. Не нужно добавлять в список системный фреймворк (system framework). -- Если после активации Вы удалили приложение, а затем установили его повторно, необходимо обязательно заново активировать приложение в списке подмены (снять и установить галочку). +### Важная информация +- Рекомендуем добавлять в список подмены только те приложения, для которых действительно требуется изменять данные. **Не нужно добавлять в список системный фреймворк (system framework)**. +> *Также для корректной работы часто требуется добавить в список **Сервисы Google Play (com.google.android.gms)**.* +- Если после активации вы удалили приложение, а затем установили его повторно, необходимо обязательно заново активировать приложение в списке подмены **(снять и установить галочку)**. -:::tip **В LSPosed есть визуальный баг.** -После удаления приложения оно автоматически удаляется из списка подменяемых. После повторной установки приложение автоматически не попадает в список подменяемых (галочка при этом стоит, но подмены не работают). +:::tip **В LSPosed есть визуальный баг** +При удалении приложения оно также автоматически удаляется из списка подменяемых. Однако после повторной установки приложение автоматически не попадает в список подменяемых (галочка при этом стоит, но подмены не работают). ::: -- По умолчанию в списке программ отображаются не все приложения. Если вы не видите нужного, например, Google Play Services или Chrome, то нужно зайти в меню *Скрывать* и убрать галочку с нужной группы. +- По умолчанию в списке программ отображаются не все приложения. Если вы не видите нужного, например, Google Play Services или Chrome, то нужно зайти в меню **Скрывать** и убрать галочку с нужной группы. ![Системные](./assets/LSPosed/LSPosed_pic11.png) -- После выбора приложений для подмены нужно вернуться в модуль ZennoDroid и нажать на кнопку **«Перезапустить»**. После перезапуска на экране устройства будет выведено уведомление о том, что модуль готов к работе. Можно менять параметры устройства с помощью экшенов. +- После выбора приложений для подмены нужно вернуться в модуль ZennoDroid и нажать на кнопку **«Перезапустить»**. Далее при перезапуске на экран устройства будет выведено уведомление о том, что модуль готов к работе. Можно менять параметры устройства с помощью экшенов. + +![Модуль включен](./assets/LSPosed/LSPosed_pic12.png) -![Модуль включен](./assets/LSPosed/LSPosed_pic12.png) - Завершите работу нужных приложений после подмены параметров устройства. Предпочтительно делать это экшеном **«Закрыть приложение»**. Если в список подмены добавлены *Сервисы Google Play (com.google.android.gms)*, то их также необходимо закрыть. + :::tip **Можно закрывать приложения и до подмены.** Но тогда некоторые системные приложения тут же перезапускаются, поэтому могут считать старые параметры. ::: +_________________ +## API для управления LSPosed +В версии **ZennoDroid 2.4.0** мы добавили API для управления LSPosed. + +Основные функции: +- включить и выключить нужный модуль; +- выбрать приложения в списке подмены нужного модуля, а также добавить или удалить их из списка; +- создать и восстановить бэкап настроек (поддерживается сохранение как на телефон, так и на компьютер); +- получить информацию о LSPosed. + +### Видеоинструкция +> Настройка модуля ZennoDroid и модуля `FLAG_SECURE`, позволяющего просматривать защищенные страницы. + + + +Также примеры работы с API приведены в архиве [LSPosedAPI.zip](https://www.dropbox.com/scl/fi/xsw5q8ej1wtmhpg5695we/LSPosedAPI.zip?rlkey=menqd2q7a0g6qnmc1l3omq4fr&st=0byf2hwb&dl=0&roistat_visit=1429674). + +Для работы требуется использовать наш [**Специальный билд v1.10.2**](https://github.com/AnatolyJacobs/LSPosed_CLI/releases/tag/v.1.10.2_cli_auto). После установки дополнительно включать ничего не нужно. Для использования с ZennoDroid в форк добавлен CLI с автоматическим включением; *подходит для актуальных версий Android*. + +_________________ +## **Управление LSPosed с помощью экшенов** +В версии 2.4.6 была добавлена возможность удобного [**управления LSPosed**](./LSPosed_Control) с помощью группы экшенов. + _________________ ## Полезные ссылки. - Шаблон для подмены параметров устройства с помощью экшенов и API: [**fakeDeviceBrief.droid**](https://www.dropbox.com/scl/fi/xkyhg4e72l9su4xvqsdn9/fakeDeviceBrief.droid?rlkey=583ltzuficlyh0kxrma83qodb&dl=0) diff --git a/docs/ZennoDroid/Enterprise/LSPosed_Control.mdx b/docs/ZennoDroid/Enterprise/LSPosed_Control.mdx new file mode 100644 index 00000000..338c5530 --- /dev/null +++ b/docs/ZennoDroid/Enterprise/LSPosed_Control.mdx @@ -0,0 +1,98 @@ +--- +sidebar_position: 5 +sidebar_label: Управление LSPosed +title: Управление LSPosed | Документация ZennoDroid | ZennoLab +description: Управление LSPosed - раздел официальной документации ZennoDroid от ZennoLab. Подробные инструкции, примеры использования и руководство по настройке +--- +import DisclaimerNotice from '@site/src/components/DisclaimerNotice'; + +# Управление LSPosed + + +## Описание +Данный экшен нужен для управления различными модулями LSPosed, с помощью которых происходит подмена параметров на устройствах. + +> Для работы требуется использовать наш [**Специальный билд v1.10.2**](https://github.com/AnatolyJacobs/LSPosed_CLI/releases/tag/v.1.10.2_cli_auto). + +### Как добавить в проект? +Через контекстное меню: **Добавить действие → Android → Управление LSPosed** + +![Добавить](./assets/LSPosed_Control/LSPosed_Control_pic1.png) +_________________ +## Принцип работы +### Информация о LSPosed +С помощью этого действия можно получить различную служебную информацию об установленной версии LSPosed, а также проверить её работоспособность. + +![Информация о LSPosed](./assets/LSPosed_Control/LSPosed_Control_pic2.png) + +Данные возвращаются в формате JSON и могут быть обработаны с помощью экшена [Обработка JSON и XML](../Data/JSON_XML). + +Пример ответа: +```json +{ + "API version": "100", + "Injection Interface": "Zygisk", + "Framework version": ".1.10.2_cli_auto(7201)", + "System version": "1а5 (API 35)", + "Device": "Realme RMX3834", + "System ABI": "arm64-v8a" +} +``` + +### Настройка модуля LSPosed +Здесь можно указать список приложений, для которых требуется осуществлять подмену параметров. + +![Настройка модуля LSPosed](./assets/LSPosed_Control/LSPosed_Control_pic3.png) + +По умолчанию указан штатный модуль ZennoModule (`com.zennolab.zennodroid`), но можно указать любой другой. Например, если вместо содержимого отображается черный экран, то можно установить модуль **FLAG_SECURE** (`com.varuns2002.disable_flag_secure`), позволяющий просматривать защищенные страницы. + +#### Доступные параметры +- **Имя модуля**. +Так как модуль для LSPosed является приложением, то здесь нужно указать его идентификатор. Узнать его можно с помощью инструмента [Установленные приложения](../Tools/Installed_App). +- **Включить модуль**. +Определяет статус модуля. В выключенном состоянии подмены не осуществляются. +- **Приложения**. +Список приложений, для которых осуществляется подмена. Должно быть указано как минимум одно приложение. Если их несколько, то разделяются запятой или переносом строки. Идентификаторы, опять же, можно узнать через [Установленные приложения](../Tools/Installed_App). + +### Сохранить настройки модуля +Так сохраняются настройки модуля (или всех модулей), чтобы впоследствии восстановить их. + +![Сохранить настройки модуля](./assets/LSPosed_Control/LSPosed_Control_pic4.png) + +#### Доступные параметры +- **Имя модуля**. +Так как модуль для LSPosed является приложением, то здесь нужно указать его идентификатор. Узнать его можно с помощью инструмента [Установленные приложения](../Tools/Installed_App). +- **Сохранить настройки всех модулей**. +Будут сохранены настройки всех установленных модулей, а не одного конкретного. +- **Путь к файлу с архивом**. +Тут указываем путь, по которому сохранятся данные приложения в архиве формата `.gz`. Можно указать путь на компьютере или смартфоне (например: `/sdcard/com.zennolab.zennodroid.gz`). + +### Восстановить настройки модуля +Это же действие восстанавливает прошлые настройки из выбранного файла. + +![Восстановить настройки модуля](./assets/LSPosed_Control/LSPosed_Control_pic5.png) + +#### Доступные параметры +- **Имя модуля**. +Так как модуль для LSPosed является приложением, то здесь нужно указать его идентификатор. Узнать его можно с помощью инструмента [Установленные приложения](../Tools/Installed_App). +- **Восстановить настройки всех модулей**. +Будут восстановлены настройки всех установленных модулей, а не одного конкретного. +- **Путь к файлу с архивом**. +Тут указываем путь к архиву в формате `.gz`, из которого будут восстановлены данные приложения. Можно указать путь на компьютере или смартфоне (например: `/sdcard/com.zennolab.zennodroid.gz`). + +### Открыть LSPosed +Открывает LSPosed для ручной настройки или визуальной проверки установленных параметров. + +![Открыть LSPosed](./assets/LSPosed_Control/LSPosed_Control_pic6.png) + +#### Доступный параметр +- **Принудительно завершать текущий процесс**. +Рекомендуем включить эту опцию, если ранее выполнялось включение или выключение какого-либо модуля. Иначе может возникнуть визуальный баг: галочка не будет отражать актуальный статус модуля. +_________________ +## Полезные ссылки. +- Шаблон для подмены параметров устройства с помощью экшенов и API: [**fakeDeviceBrief.droid**](https://www.dropbox.com/scl/fi/xkyhg4e72l9su4xvqsdn9/fakeDeviceBrief.droid?rlkey=583ltzuficlyh0kxrma83qodb&dl=0) +- [**Последняя версия LSPosed Framework**](https://github.com/LSPosed/LSPosed/releases/tag/v1.9.2) +- [**Подключение реального устройства к ZennoDroid**](./Connection). +- [**Настройки устройства**](../Settings/Settings_for_Enterprise). + + \ No newline at end of file diff --git a/docs/ZennoDroid/Enterprise/assets/LSPosed_Control/LSPosed_Control_pic1.png b/docs/ZennoDroid/Enterprise/assets/LSPosed_Control/LSPosed_Control_pic1.png new file mode 100644 index 00000000..1e7be6be Binary files /dev/null and b/docs/ZennoDroid/Enterprise/assets/LSPosed_Control/LSPosed_Control_pic1.png differ diff --git a/docs/ZennoDroid/Enterprise/assets/LSPosed_Control/LSPosed_Control_pic2.png b/docs/ZennoDroid/Enterprise/assets/LSPosed_Control/LSPosed_Control_pic2.png new file mode 100644 index 00000000..66fb5edf Binary files /dev/null and b/docs/ZennoDroid/Enterprise/assets/LSPosed_Control/LSPosed_Control_pic2.png differ diff --git a/docs/ZennoDroid/Enterprise/assets/LSPosed_Control/LSPosed_Control_pic3.png b/docs/ZennoDroid/Enterprise/assets/LSPosed_Control/LSPosed_Control_pic3.png new file mode 100644 index 00000000..57e943be Binary files /dev/null and b/docs/ZennoDroid/Enterprise/assets/LSPosed_Control/LSPosed_Control_pic3.png differ diff --git a/docs/ZennoDroid/Enterprise/assets/LSPosed_Control/LSPosed_Control_pic4.png b/docs/ZennoDroid/Enterprise/assets/LSPosed_Control/LSPosed_Control_pic4.png new file mode 100644 index 00000000..060d27d9 Binary files /dev/null and b/docs/ZennoDroid/Enterprise/assets/LSPosed_Control/LSPosed_Control_pic4.png differ diff --git a/docs/ZennoDroid/Enterprise/assets/LSPosed_Control/LSPosed_Control_pic5.png b/docs/ZennoDroid/Enterprise/assets/LSPosed_Control/LSPosed_Control_pic5.png new file mode 100644 index 00000000..7d91c107 Binary files /dev/null and b/docs/ZennoDroid/Enterprise/assets/LSPosed_Control/LSPosed_Control_pic5.png differ diff --git a/docs/ZennoDroid/Enterprise/assets/LSPosed_Control/LSPosed_Control_pic6.png b/docs/ZennoDroid/Enterprise/assets/LSPosed_Control/LSPosed_Control_pic6.png new file mode 100644 index 00000000..43d16082 Binary files /dev/null and b/docs/ZennoDroid/Enterprise/assets/LSPosed_Control/LSPosed_Control_pic6.png differ diff --git a/docs/ZennoDroid/Settings/Legacy/Proxy_Traffic_Ent.mdx b/docs/ZennoDroid/Settings/Legacy/Proxy_Traffic_Ent.mdx new file mode 100644 index 00000000..c29dc8d8 --- /dev/null +++ b/docs/ZennoDroid/Settings/Legacy/Proxy_Traffic_Ent.mdx @@ -0,0 +1,95 @@ +--- +sidebar_position: 1 +sidebar_label: Проксирование трафика (Enterprise) (до версии 2.4.2) +title: Проксирование трафика (Enterprise) (до версии 2.4.2) | Документация ZennoDroid | ZennoLab +description: Проксирование трафика (Enterprise) - раздел официальной документации ZennoDroid от ZennoLab. Подробные инструкции, примеры использования и руководство по настройке +--- +import DisclaimerNotice from '@site/src/components/DisclaimerNotice'; + + +## Описание. +:::warning **Устаревшая информация** +Актуальная для версий ZennoDroid до 2.4.2 +::: +ZennoDroid позволяет выбрать способ проксирования трафика для выполнения экшена [**Установка прокси**](../Android/Enterprise/setting#как-поставить-прокси). + +Параметры задаются на вкладке [**Настройки Android**](../Android/Enterprise/setting#как-поставить-прокси). По умолчанию используется **Proxifier**. + +![Описание](../assets/Proxy_Traffic/Proxy_Traffic_pic2.png) +_______________________________________________ +## [Proxifier](https://proxifier.com/). +Это мощная и гибкая программа для перенаправления интернет-трафика через прокси-сервер. Она позволяет приложениям, которые не поддерживают работу через прокси, использовать его. + +Используется интернет-подключение компьютера. Весь трафик с телефона заворачивается в VPN с помощью Gnirehtet и передаётся на ПК, где уже проксируется через приложение Proxifier. + +:::tip **Gnirehtet — это инструмент, который позволяет раздавать интернет с компьютера на Android-устройство.** +Работает, как привычная всем "точка доступа", но с обратным смыслом. Это полезно в ситуациях, когда у вашего телефона нет мобильного интернета или доступа к Wi-Fi, но ваш компьютер подключен к сети. + +Программа работает через USB-кабель или по беспроводной сети и не требует root-прав на устройстве. +::: +__________________________________________ +## Redsocks. +Данная утилита нужна для перенаправления сетевого трафика через прокси-сервер, минуя необходимость ручной настройки прокси в каждом отдельном приложении. Выполняется прозрачный редиректор TCP/UDP-соединений в прокси. + +Все необходимые файлы копируются на устройство автоматически при первой установке прокси. + +:::warning **Работает только на устройствах с Root.** +::: + +### По умолчанию DNS-запросы будут направляться через прокси-сервер. +Если прокси-сервер блокирует DNS-запросы — отсутствует интернет или возникает ошибка `DNS_PROBE_FINISHED_NO_INTERNET`, то необходимо отключить перенаправление. + +> Отключаем перенаправление с помощью кода C#: +> ``` +> instance.DroidInstance.Proxy.UseDnsTcp = false; +> instance.DroidInstance.Proxy.UseDnsUdp = false; +> ``` +> **Этот код выполняется *перед* установкой прокси.** +_______________________________________________ +## Clash. +Это продвинутый прокси-клиент с возможностью маршрутизации трафика по заданным правилам. Он отличается мощным rule-based подходом и сам решает через какой сервер направить трафик в зависимости от настроенных правил. + +Простое и полное проксирование всего UDP-трафика — в отличие от redsocks, не требуется настраивать отдельное проксирование для каждого IP. Благодаря этому, при использовании прокси с поддержкой UDP, даже IP-адрес через WebRTC отображается как адрес прокси. + +:::warning **Работает только на устройствах с Root.** +Необходим BusyBox версии не ниже 1.36.1. +::: +__________________________________________ +## Использовать интернет-подключение компьютера (Gnirehtet). +Если эта настройка **выключена**, то весь интернет-трафик будет напрямую передаваться через Wi‑Fi-подключение телефона. Однако при её **включении** весь трафик с телефона начинает идти в обход с помощью Gnirehtet и передаваться на компьютер. + +При использовании этого метода нужно выключить передачу данных на телефоне, чтобы исключить случайную утечку трафика в сеть. Сделать это можно вручную или с помощью экшена. + +Консольные команды для отключения: +``` +svc wifi disable +svc data disable +``` + +Такой подход гарантирует, что весь трафик будет проходить строго через интернет-подключение компьютера. + +### Локальный IP. +Настройка локального IP-адреса устройства. + +Если указать последнее число адреса равным **нулю**, например, `192.168.20.0`, то будет сгенерирован случайный адрес из указанной подсети (`192.168.20.2`-`192.168.20.254`). + +Локальный IP можно задать при использовании: +- Proxifier, +- Redsocks + интернет-подключение компьютера. + +> Код C# для указания локального IP у каждого потока в отдельности: +> ``` +> instance.DroidInstance.Proxy.SetLocalAddress("192.168.50.0"); +> ``` +> **Код необходимо выполнить *перед* установкой прокси.** + +### Адреса DNS +Настройка адреса DNS-сервера. Можно указать несколько через запятую: `8.8.8.8,1.1.1.1`. + +> Код C# для указания адреса DNS-сервера у каждого потока в отдельности: +> ``` +> instance.DroidInstance.Proxy.SetDnsServers("8.8.8.8,8.8.4.4"); +> ``` +> **Код необходимо выполнить *перед* установкой прокси.** +_______________________________________________ +- [**Установка Clash (Box for Root).**](../Android/Enterprise/Clash). \ No newline at end of file diff --git a/docs/ZennoDroid/Settings/Legacy/_category_.json b/docs/ZennoDroid/Settings/Legacy/_category_.json new file mode 100644 index 00000000..d8c6ec8c --- /dev/null +++ b/docs/ZennoDroid/Settings/Legacy/_category_.json @@ -0,0 +1,10 @@ +{ + "label": "Устаревшие статьи", + "position": 1, + "link": { + "type": "generated-index", + "title": "Информация для прошлых версий", + "slug": "/legacy" + } + } + \ No newline at end of file diff --git a/docs/ZennoDroid/Settings/Proxy_Traffic_Ent.mdx b/docs/ZennoDroid/Settings/Proxy_Traffic_Ent.mdx index f298a904..287304e0 100644 --- a/docs/ZennoDroid/Settings/Proxy_Traffic_Ent.mdx +++ b/docs/ZennoDroid/Settings/Proxy_Traffic_Ent.mdx @@ -9,13 +9,17 @@ description: Проксирование трафика (Enterprise) - разде ::: ## Описание. -ZennoDroid позволяет выбрать способ проксирования трафика для выполнения экшена [**Установка прокси**](../Android/Enterprise/setting#как-поставить-прокси). - -Параметры задаются на вкладке [**Настройки Android**](../Android/Enterprise/setting#как-поставить-прокси). По умолчанию используется **Proxifier**. +ZennoDroid позволяет выбрать способ проксирования трафика для выполнения экшена [**Установка прокси**](../Android/Enterprise/setting#как-поставить-прокси). Параметры задаются на вкладке [**Настройки Android**](../Android/Enterprise/setting#как-поставить-прокси). ![Описание](./assets/Proxy_Traffic/Proxy_Traffic_pic2.png) + +:::info **Статья актуальна для версий 2.4.2 и выше** +Теперь способ проксирования трафика и другие настройки были вынесены в экшен [**Установка прокси**](../Android/Enterprise/setting#как-поставить-прокси). + +[Информацию для старых версий можно найти здесь](./Legacy/Proxy_Traffic_Ent). +::: _______________________________________________ -### [Proxifier](https://proxifier.com/). +## [Proxifier](https://proxifier.com/). Это мощная и гибкая программа для перенаправления интернет-трафика через прокси-сервер. Она позволяет приложениям, которые не поддерживают работу через прокси, использовать его. Используется интернет-подключение компьютера. Весь трафик с телефона заворачивается в VPN с помощью Gnirehtet и передаётся на ПК, где уже проксируется через приложение Proxifier. @@ -26,35 +30,32 @@ _______________________________________________ Программа работает через USB-кабель или по беспроводной сети и не требует root-прав на устройстве. ::: __________________________________________ -### Redsocks. +## Redsocks. Данная утилита нужна для перенаправления сетевого трафика через прокси-сервер, минуя необходимость ручной настройки прокси в каждом отдельном приложении. Выполняется прозрачный редиректор TCP/UDP-соединений в прокси. Все необходимые файлы копируются на устройство автоматически при первой установке прокси. :::warning **Работает только на устройствах с Root.** ::: + _______________________________________________ -### Clash. +## [Clash](../Android/Enterprise/Clash/) (рекомендуем). Это продвинутый прокси-клиент с возможностью маршрутизации трафика по заданным правилам. Он отличается мощным rule-based подходом и сам решает через какой сервер направить трафик в зависимости от настроенных правил. Простое и полное проксирование всего UDP-трафика — в отличие от redsocks, не требуется настраивать отдельное проксирование для каждого IP. Благодаря этому, при использовании прокси с поддержкой UDP, даже IP-адрес через WebRTC отображается как адрес прокси. +Все необходимые файлы копируются на устройство автоматически при первой установке прокси. + :::warning **Работает только на устройствах с Root.** Необходим BusyBox версии не ниже 1.36.1. ::: __________________________________________ -### Использовать интернет-подключение компьютера (Gnirehtet). -Если эта настройка выключена, то весь интернет-трафик будет передаваться через Wi‑Fi-подключение телефона. - -Но при её включении весь трафик с телефона начинает заворачиваться в VPN с помощью Gnirehtet и передаваться на компьютер. - -:::info **Обязательно выключите передачу данных на телефоне.** -Мы рекомендуем так сделать, если для проксирования трафика используется интернет-подключение компьютера. Это поможет избежать случайной утечки трафика в сеть через Wi-Fi или мобильный интернет смартфона. +## Использовать интернет-подключение компьютера (Gnirehtet). +:::warning **Эта опция доступна при использовании Redsocks или Clash** +::: -Сделать это можно вручную или с помощью экшена [Консольные команды](../Android/pro-lite/ADB_Shell): +Если эта настройка **выключена**, то весь интернет-трафик будет напрямую передаваться через Wi‑Fi-подключение телефона. Однако при её **включении** весь трафик с телефона начинает идти в обход с помощью Gnirehtet и передаваться на компьютер. -- Выключить WiFi: `svc wifi disable` -- Включить WiFi: `svc data disable` -::: +При использовании этого метода нужно выключить передачу данных на телефоне, чтобы исключить случайную утечку трафика в сеть. Сделать это можно вручную или с помощью экшена. _______________________________________________ - [**Установка Clash (Box for Root).**](../Android/Enterprise/Clash). \ No newline at end of file diff --git a/docs/ZennoDroid/Tools/Frida.mdx b/docs/ZennoDroid/Tools/Frida.mdx index dfbae065..d30d2a48 100644 --- a/docs/ZennoDroid/Tools/Frida.mdx +++ b/docs/ZennoDroid/Tools/Frida.mdx @@ -31,7 +31,7 @@ _________________ :::info **Перед началом работы необходимо запустить устройство или эмулятор.** ::: _________________ -## Описание доступных окон. +## Описание доступных окон ![Окна](./assets/Frida/Frida_pic3.png) ### Устройства (1): Список всех устройств, подключенных через ADB. Он автоматически обновляется при подключении/отключении новых устройств или эмуляторов. @@ -64,6 +64,12 @@ _________________ - **Самый верхний**. В таблице будет выбран основной процесс приложения, которое отображается на экране устройства. - **Подключить**. Подключается к выбранному процессу. После этого становятся доступными операции создания и загрузки скрипта. - **Отключиться**. Отключается от процесса. Если приложение завершило работу, то отключение от процесса произойдет автоматически. + +:::warning **Если при попытке обновить список процессов выдается ошибка** +***Enumerate Processes failed: Cannot read properties of undefined (reading 'getRunningAppProcesses')*** + +Тогда необходимо выполнить экшен Adb Shell: `pm uninstall com.google.android.art` и перезагрузить устройство. +::: _________________ ### Скрипт (4): Окно работы со скриптом. Поддерживаются макросы. @@ -94,7 +100,7 @@ _________________ 7. После этого можно нажать **«Выгрузить»**. Сервер Frida работает! _________________ - ## Стандартные сценарии. + ## Стандартные сценарии ### Приложение будет перезапущено даже если уже запущено. 1. На панели *Приложения* выбрать нужное (по названию или с помощью кнопки **«Активное»**). 2. Нажать кнопку **«Запустить»**. Приложение запустится *(или перезапустится если уже было запущено)*, а затем встанет на паузу. Произойдет автоматическое подключение к его процессу. @@ -108,12 +114,13 @@ _________________ с расширением .js). 4. Нажать **«Создать»**, а потом **«Загрузить»**. _________________ - - ## Перехват трафика с помощью Frida и Burp Suite. +## Перехват трафика с помощью Frida и Burp Suite + +> Скачать [**android-ssl-pinning-demo**](https://github.com/httptoolkit/android-ssl-pinning-demo) _________________ - ### 1. Скачать и установить. + ### 1. Скачать и установить
1. Выбрать **Burp Suite Community Edition** и нажать **«Download»** @@ -132,7 +139,7 @@ _________________ ![StartBurp](./assets/Frida/Frida_pic6.png)
- ### 2. Настроить Burp Suite на обработку трафика с локальной сети компьютера. + ### 2. Настроить Burp Suite на обработку трафика с локальной сети компьютера
1. Заходим в **настройки (Settings)** @@ -153,19 +160,19 @@ _________________ ![private kay](./assets/Frida/Frida_pic10.png)
- ### 3. Выбрать необходимое устройство и запустить в Project Maker. + ### 3. Выбрать необходимое устройство и запустить в Project Maker ![projmaker](./assets/Frida/Frida_pic11.png) :::info **Важно.** *В версии ZennoDroid Enterprise необходимо, чтобы в настройках Android было включено использование интернет-подключения компьютера или использование Proxifier.* ::: _________________ -### 4. Перенаправить трафик с устройства в Burp Suite. +### 4. Перенаправить трафик с устройства в Burp Suite ![suite](./assets/Frida/Frida_pic12.png) Нужно выполнить экшен *Перенаправить трафик в Burp*. Для проверки, что все работает правильно, можно с помощью экшена открыть в браузере страницу **http://proxifier.com** (важно чтобы страница была **http://**, а не http**s**://). Запрос к сайту должен отобразиться в Burp Suite (на вкладке *Proxy - Http history* или *Target Site map*). _________________ -### 5. Установить сертификат на устройство. +### 5. Установить сертификат на устройство Сначала нужно выполнить экшен *Установить сертификат*. После этого сертификат Zenno появится в списке **Надежных сертификатов (Trusted credentials)** ![Надежные сертификаты](./assets/Frida/Frida_pic13.png) @@ -194,7 +201,22 @@ _________________ 2. Нажать кнопку **«Отключиться»** на панели *Процессы*. 3. Выполнить экшен *Отключить перенаправление трафика в Burp*. _________________ -## Полезные ссылки. +### **Обновлённая видеоинструкция для ZennoDroid 2.4.7.0 и выше** +:::info **Все необходимые файлы можно скачать по ссылке** +[Frida\_Burp\_HttpToolkit.zip](https://www.dropbox.com/scl/fi/1vp7g23me9ekr34aacsfh/Frida_Burp_HttpToolkit.zip?rlkey=8ykdpi0jve6aplqpfpoh0rcoq&st=lac44ugj&dl=0) +::: + + + +> Скачать [android-ssl-pinning-demo](https://github.com/httptoolkit/android-ssl-pinning-demo) + +#### Установка пользовательского сертификата для перехвата трафика в Chrome +> *Предварительная настройка Burp Suite показана в предыдущем видео* + + + +_________________ +## Полезные ссылки - Официальный источник [**скриптов для Frida**](https://codeshare.frida.re/). - [**Шаблон и все необходимые файлы**](https://www.dropbox.com/scl/fi/2d61v0e0rnsiwz8rww06x/Frida-Burp.zip?rlkey=asbr6w5eqlarbbfjoq4lc34e8&dl=0) (пароль на zenno.pfx - 123). - [**Подключение реального устройства к ZennoDroid**](../Enterprise/Connection). diff --git a/docs/ZennoDroid/Tools/assets/Frida/BurpSuiteCommunity_Frida.mp4 b/docs/ZennoDroid/Tools/assets/Frida/BurpSuiteCommunity_Frida.mp4 new file mode 100644 index 00000000..dcf61efd Binary files /dev/null and b/docs/ZennoDroid/Tools/assets/Frida/BurpSuiteCommunity_Frida.mp4 differ diff --git a/docs/ZennoDroid/Tools/assets/Frida/FridaChrome.mp4 b/docs/ZennoDroid/Tools/assets/Frida/FridaChrome.mp4 new file mode 100644 index 00000000..1a9541ab Binary files /dev/null and b/docs/ZennoDroid/Tools/assets/Frida/FridaChrome.mp4 differ diff --git a/docs/ZennoDroid/Tools/assets/Frida/Frida_SSL_Pinning_Demo.mp4 b/docs/ZennoDroid/Tools/assets/Frida/Frida_SSL_Pinning_Demo.mp4 new file mode 100644 index 00000000..db5a5343 Binary files /dev/null and b/docs/ZennoDroid/Tools/assets/Frida/Frida_SSL_Pinning_Demo.mp4 differ diff --git a/docs/ZennoDroid/pm/Creating/SearchByPic.mdx b/docs/ZennoDroid/pm/Creating/SearchByPic.mdx index 3199e743..06b3fdc1 100644 --- a/docs/ZennoDroid/pm/Creating/SearchByPic.mdx +++ b/docs/ZennoDroid/pm/Creating/SearchByPic.mdx @@ -94,12 +94,18 @@ _______________________________________________ _______________________________________________ ## Пример использования. Представим, что нам нужно создать новую запись в приложении **Заметки**: -1. Выделяем уникальную область на кнопке создания заметки. На левом скриншоте пример правильного выделения, а на правом то, как делать не нужно. -![Правильно](./assets/SearchByPic/SearchByPic_pic16.png) ![Неправильно](./assets/SearchByPic/SearchByPic_pic17.png) +1. Выделяем уникальную область на кнопке создания заметки. + +| Пример правильного выделения | Так делать не нужно | +| ----------- | ----------- | +| ![Правильно](./assets/SearchByPic/SearchByPic_pic16.png) | ![Неправильно](./assets/SearchByPic/SearchByPic_pic17.png) | + 2. С помощью кнопки **«Поиск»** тестируем нахождение объекта. Нажимаем **«Да»** в случае успеха. 3. Добавляем экшен в проект. + ![Добавляем экшщен](./assets/SearchByPic/SearchByPic_pic18.png) -:::warning **Важно.** + +:::warning **Режима рендеринга** *Поиск по картинке может сломаться, если экшен был записан, например, в режиме рендеринга OpenGL, а затем сменён на DirectX.* ::: _______________________________________________ diff --git a/docs/ZennoPoster/ProjectMaker/Project-editor/Actions-in-ProjectMaker-Actions-Blocks/Browser/Browser_settings.mdx b/docs/ZennoPoster/ProjectMaker/Project-editor/Actions-in-ProjectMaker-Actions-Blocks/Browser/Browser_settings.mdx index b1c4048d..58d9c100 100644 --- a/docs/ZennoPoster/ProjectMaker/Project-editor/Actions-in-ProjectMaker-Actions-Blocks/Browser/Browser_settings.mdx +++ b/docs/ZennoPoster/ProjectMaker/Project-editor/Actions-in-ProjectMaker-Actions-Blocks/Browser/Browser_settings.mdx @@ -14,175 +14,209 @@ import DisclaimerNotice from '@site/src/components/DisclaimerNotice'; > 🔗 **[Оригинальная страница](https://zennolab.atlassian.net/wiki/spaces/RU/pages/489324572)** — Источник данного материала _______________________________________________ - ## Описание +Браузер является основной частью автоматизации ZennoPoster. В этом экшене собраны различные действия для изменения опций и свойств браузера. -[❗→ Браузер](https://zennolab.atlassian.net/wiki/spaces/RU/pages/534315373 "https://zennolab.atlassian.net/wiki/spaces/RU/pages/534315373") является основной частью автоматизации ZennoPoster. В экшене собраны различные действия для изменения опций и свойств браузера. Некоторые из них можно также найти в [❗→ Настройках проекта](https://zennolab.atlassian.net/wiki/spaces/RU/pages/534315477 "https://zennolab.atlassian.net/wiki/spaces/RU/pages/534315477"), но следует их различать - настройки проекта задаются при старте шаблона, а с помощью настроек в этом экшене можно изменять опции прямо в процессе исполнения шаблона. Например можно включать и выключать отображение картинок в браузере в любой момент работы когда это необходимо. - -## Как добавить действие в проект? +Некоторые из них можно также найти в [Настройках проекта](../../Static_blocks/Project_Settings), но следует их различать. **Настройки проекта** задаются при старте шаблона, а **Настройки браузера** позволяют изменять опции прямо в процессе выполнения шаблона. Например, можно включать и выключать отображение картинок в браузере в любой момент, когда это необходимо. -Через контекстное меню **Добавить действие** → **Браузер** → **Настройки** +### Как добавить действие в проект? +Через контекстное меню: **Добавить действие → Браузер → Настройки** ![image-20200819-154251](./assets/Browser_settings/Browser_settings_pic1.png) - - -Либо воспользуйтесь [❗→ умным поиском](https://zennolab.atlassian.net/wiki/spaces/RU/pages/506200090/ProjectMaker+7#%D0%A3%D0%BC%D0%BD%D1%8B%D0%B9-%D0%BF%D0%BE%D0%B8%D1%81%D0%BA-%D0%B4%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D0%B9 "https://zennolab.atlassian.net/wiki/spaces/RU/pages/506200090/ProjectMaker+7#%D0%A3%D0%BC%D0%BD%D1%8B%D0%B9-%D0%BF%D0%BE%D0%B8%D1%81%D0%BA-%D0%B4%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D0%B9"). - -## Где это можно применить? - +### Где это можно применить? - Изменение различных браузерных настроек в реальном времени. - Применение к боту различных настроек по безопасности и анонимности проекта. +_______________________________________________ +> **Рассмотрим каждую опцию экшена в подробностях**. -## Как работать с экшеном? - -Рассмотрим каждую опцию экшена в подробностях. - +## Отпечатки браузера (fingerprints) ### AudioContext - ![image-20200821-145204](./assets/Browser_settings/Browser_settings_pic2.png) +Эта настройка нужна для повышения уникальности профиля. Она может принимать два значения: +- **По умолчанию** +- **Эмулировать** +В первом случае значение берется из настроек проекта, во втором — эмулируется случайным образом. -Эта настройка служит для большей уникальности профиля браузера и может принимать два значения: по умолчанию и эмуляция. В первом случае она берется из настроек проекта, во втором - эмулируется случайным образом. - -### Canvas +### Canvas +Ещё одно свойство, помогающее поднять создаваемому боту уникальность. ![image-20220222-133244](./assets/Browser_settings/Browser_settings_pic3.png) +Это элемент отрисовки веб-страницы на основе технологии [WebGL](https://developer.mozilla.org/en-US/docs/WebGL) для аппаратно-ускоренной 3D-графики, который имеет свой *уникальный отпечаток (fingerprint)*. +С ним возможны три действия: +- **Разрешить** *(на основе основных настроек проекта)* +- **Эмулировать** +- **Блокировать** +- **Супер-эмуляция** *(добавлен в ZennoPoster 7.7.0.0; работает только с Chromium)* -Ещё одно из свойств браузера помогающее придать создаваемому боту индивидуальность. Это элемент отрисовки веб-страницы на основе технологии [WebGL](https://developer.mozilla.org/en-US/docs/WebGL "https://developer.mozilla.org/en-US/docs/WebGL") для аппаратно-ускоренной 3D-графики, который имеет свой уникальный отпечаток (fingerprint). С ним возможны три действия: разрешить на основе основных настроек проекта, эмулировать и блокировать. - -:::info Информация -Режим “Супер-эмуляция” был добавлен в ZennoPoster 7.7.0.0.Работает только в движке Chromium.Подробнее можно почитать в статье Профиль | Canvas/WebGL -::: - -:::note На заметку -В основном Canvas передаёт данные о характеристиках вебсистемы и эти данные довольно широко используются на многих сайтах для обеспечения защиты от накруток или иных методов автоматизации. +:::tip В основном Canvas передаёт данные о характеристиках вебсистемы +Которые широко используются на многих сайтах для обеспечения защиты от накруток или иных методов автоматизации. ::: ### ClientRects - ![image-20200821-145349](./assets/Browser_settings/Browser_settings_pic4.png) - - -Ещё один из отпечатков основанный на получении хешей при масштабировании изображения. Эмулируется или используется по умолчанию. - +Один из отпечатков, основанный на получении хешей при масштабировании изображения. Эмулируется или используется по умолчанию. +_______________________________________________ +## JavaScript и плагины ### Flash/Java/Silverlight +Отвечает за включение и отключение популярных когда-то браузерных плагинов. Поможет в работе со старыми сайтами, уменьшив нагрузку на ресурсы и объем передаваемого трафика. ![image-20200821-145318](./assets/Browser_settings/Browser_settings_pic5.png) +Если Flash включен данной настройкой, но по какой-то причине не работает в Chrome браузере, тогда добавьте **Аргументы запуска**: `--enable-system-flash`, `--disable-software-rasterizer` и `--disable-smooth-scrolling`. - -Отключение или включение популярных когда-то браузерных плагинов. Поможет в работе со старыми сайтами, уменьшив нагрузку на ресурсы, и объем передаваемого трафика. - -Если Flash включен данной настройкой, но он по какой-то причине не работает в Chrome браузере, добавьте [❗→ аргументы запуска](https://zennolab.atlassian.net/wiki/spaces/RU/pages/534315477#%D0%90%D1%80%D0%B3%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D1%8B "https://zennolab.atlassian.net/wiki/spaces/RU/pages/534315477#%D0%90%D1%80%D0%B3%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D1%8B") `--enable-system-flash --disable-software-rasterizer --disable-smooth-scrolling` . Подробнее: [Не работает Flash в браузере](https://zennolab.kayako.com/ru/article/392-ne-rabotaet-flash-v-brauzere "https://zennolab.kayako.com/ru/article/392-ne-rabotaet-flash-v-brauzere") +> Подробнее: [Не работает Flash в браузере](https://zennolab.kayako.com/ru/article/392-ne-rabotaet-flash-v-brauzere) ### JavaScript +Включает/отключает поддержку браузером JavaScript. ![image-20200821-145529](./assets/Browser_settings/Browser_settings_pic6.png) +:::warning Все современные сайты теряют работоспособность при отключении JavaScript +Cкрипты нередко формируют не только верстку, но и контент. Не говоря уже о многочисленной защите с помощью них. - -Включает/отключает поддержку браузером JavaScript. - -:::warning Внимание -Все современные сайты практически теряют работоспособность при отключении JavaScript, потому что эти скрипты нередко формируют не только верстку, но и контент, не говоря уже о многочисленной защите посредством JS-скриптов. Однако, иногда бывает полезно с помощью этого действия, временно отключить JS, проделать какие-то действия на сайте (например авторизоваться), а затем включить его снова. Этот хак поможет с “глючными” и особо хитрыми ресурсами. +Не смотря на это, иногда бывает полезно временно отключить JS, проделать какие-то действия на сайте (например, авторизоваться), а затем включить его снова. Этот хак поможет с глючными и особо хитрыми ресурсами. ::: ### Javascript Authorization - ![image-20200821-145504](./assets/Browser_settings/Browser_settings_pic7.png) +Иногда сайты предлагают пользователям авторизоваться через модальное окно выводимое Javascript. Часто такая форма авторизации используется в серверных панелях и админках роутеров. Данное действие позволяется передать логин и пароль в скрипт, чтобы произвести авторизацию. - -Иногда сайты предлагают пользователям авторизоваться через модальное окно выводимое Javascript. Особенно часто такая форма авторизации используется в серверных панелях, в админках роутеров и т. д. Данное действие позволяется передать логин и пароль в скрипт и произвести авторизацию. В поля логин и пароль можно добавить соответствующие [❗→ переменные проекта](https://zennolab.atlassian.net/wiki/spaces/RU/pages/486309922 "https://zennolab.atlassian.net/wiki/spaces/RU/pages/486309922"). +В поля логин и пароль можно добавить соответствующие *переменные проекта*. ### Javascript Confirm - ![image-20200821-145632](./assets/Browser_settings/Browser_settings_pic8.png) +Эта функция подтверждает модальное окно выводимое Javascript. - -Эта функция подтверждает модальное окно выводимое Javascript. При этом нажать можно как “**OK**“, так и “**Cancel**“ выбрав нужный пункт в экшене. - -![34328848](./assets/Browser_settings/Browser_settings_pic9.png) - - +> ![34328848](./assets/Browser_settings/Browser_settings_pic9.png) +> +> Нажать можно как **OK**, так и **Cancel**, выбрав нужный пункт в экшене. ### Javascript Prompt - ![image-20200821-145610](./assets/Browser_settings/Browser_settings_pic10.png) +Похоже на предыдущее свойство, но с возможностью передать заданное значение, которое указывается в текстовом поле или берётся из переменной. +:::tip Обход секретного вопроса +Который часто встречается на форумах, можно выполнить как раз с помощью этого кубика. -Практически тоже самое что и предыдущее свойство, но с возможностью передать какое-то значение, которое может находиться в переменной или быть вписанным в текстовом поле. +В данном случае вопрос выводится именно во всплывающем popup-окне с помощью Javascript. +::: +_______________________________________________ +## Контент и загрузка ресурсов +### Картинки +![image-20200821-150101](./assets/Browser_settings/Browser_settings_pic17.png) -:::note На заметку -Именно с помощью этого кубика решают защиту “Ответьте на секретный вопрос”, который так любят задавать на некоторых форумах. Но в данном случае вопрос выводится именно во всплывающем popup окне с помощью Javascript. +Отключение картинок помогает экономить ресурсы. Если ваши задачи не заключаются в использовании графики, то смело отключайте их. + +:::tip Для социальных сетей такой метод может быть подозрительным +Так как обычные пользователи сейчас редко отключают картинки для экономии трафика. ::: -### Блокировка всплывающих окон +:::warning Решение капч невозможно с отключёнными картинками +Поэтому будет выводиться ошибка +::: -![image-20200821-145700](./assets/Browser_settings/Browser_settings_pic11.png) +### Медиа (Video/Audio) +![image-20210905-143650](./assets/Browser_settings/Browser_settings_pic18.png) +Включение/выключение медиа-контента с HTML элементами `