Private KeeperPrivate Keeper

Private Keeper 8.6.0

Стабильная версия · сборка 87 · опубликовано 03.08.2026

Скачать

Скачиваний
163
Используют
20

Что изменилось

Private Keeper 8.6.0

Большое обновление Private Keeper и in-Line: папки проектов, новые возможности Студии и Скрипт-бокса, управление HTTP-ответами и прокси, улучшенный почтовый модуль, уведомления и документация.

Серия последних обновлений, завершившаяся версией 8.6.0, закрыла почти весь список задач, который накапливался около шести лет — особенно за последний год. Несколько задач сознательно оставлены на следующие обновления, потому что требуют крупных переработок.

Private Keeper

Главная страница

Добавлено

  • Папки проектов. На главной странице можно создавать и открывать папки, обновлять их содержимое и переносить проекты сразу в нужную папку. При возврате сохраняются поиск, выбранный проект и положение списка.
  • Закреплённые и открытые проекты. Они остаются видны при переходах между папками. Закрепление сохраняется после перезапуска и следует за проектом при переименовании или перемещении.
Уведомления и обновления

Добавлено

  • nLevel в уведомлениях. Если подписка nLevel недоступна, Keeper показывает отдельную компактную страницу в окне уведомлений. Недавно закончившуюся подписку предлагается продлить, а при отсутствии подписки или давнем окончании — купить nLevel-прокси; предложение появляется один раз за запуск.

Изменено

  • Продление nLevel. Раньше ключ nLevel можно было использовать только для первой активации. Теперь подписку можно продлить новым ключом, при этом уже оплаченный остаток не пропадает.
  • Напоминание о лицензии Keeper. Оно появляется один раз, когда до окончания остаётся не больше 12 часов, не дублируется после обновления профиля и исчезает после продления или выхода.
  • Окно новой версии. При выходе обновления показывается его описание. Две отдельные кнопки открывают каналы связи, а кнопка «Скачать» — страницу новой версии.
Системные улучшения

Исправлено

  • Идентификатор сбоя. Он показывается только после успешного сохранения отчёта, поэтому его можно использовать для поиска обращения в поддержке.

Улучшено

  • Стабильность Keeper. Устранён ряд сбоев и зависаний при запуске и закрытии программы, работе Студии, загрузке баз и завершении проектов.
  • Проверка выпуска. Ключевые изменения перед выпуском отдельно проверены в Win32 и Win64, включая сетевые режимы, прокси, капчу, сессии, куки и многострочный текст.
Документация

Добавлено

  • Центр обновлений. На сайте появились отдельные страницы стабильной, бета- и альфа-версий с описаниями выпусков и загрузками Win32/Win64. Предыдущие списки изменений сохранены в архиве, а прежние ссылки перенаправляются на новые страницы.

Изменено

  • Справка разработчика. Полные справочники in-Line Kit и JavaScript PK перенесены на сайт документации и разделены по темам. Заодно исправлены примеры циклов, переходов BREAK/CONTINUE, контейнерных условий и строковых функций. В новой справке ещё остались отдельные визуальные и структурные недочёты — они будут исправлены в ближайшие дни.

in-Line

Проекты и in-Line Приложение

Добавлено

  • Глобальные переменные в сессии. При сохранении сессии Keeper запоминает все глобальные переменные проекта и всегда восстанавливает их при продолжении. Если набор переменных в проекте изменился, старые значения не применяются: проект заново заполняет весь набор начальными значениями и сообщает об этом.
  • Автоматическая пауза. В настройках проекта можно включить автоматическую паузу после непрерывных сетевых ошибок или ошибок капчи, а также при достижении заданного процента ошибок за выбранное время. Оба правила по умолчанию выключены.
  • Автоматическая расширенная статистика. Keeper сам формирует расширенную статистику по дополнительным файлам и увеличивает счётчик после каждого записанного результата, в том числе в проектах, созданных раньше. Для файла можно задать отдельное название в статистике; без него используется имя файла без расширения, а ручные строки статистики остаются без изменений.
  • Защита при запуске большого числа потоков. Перед запуском проекта или увеличением числа потоков Keeper проверяет весь выбранный набор с учётом уже работающих проектов, доступной памяти и системных ресурсов. Если ресурсов не хватает, операция отклоняется до создания новых потоков и Keeper показывает, что ограничивает запуск; остальные проекты продолжают работу. Число потоков можно уменьшить и повторить запуск без перезапуска Keeper.
  • Лицензия серверного проекта. В сведениях о проекте отдельно показываются оставшийся срок, бессрочный доступ, истечение лицензии и временная недоступность данных.

Исправлено

  • Удаление серверного проекта. Удаление локальной копии и удаление проекта с сервера теперь имеют разные понятные подтверждения.
  • Пустой каталог результатов. После завершения удаляется только действительно пустая папка запуска. Если в ней есть результат, журнал, сессия или неизвестный файл, папка сохраняется.
Загрузка базы

Добавлено

  • Разбиение текстового файла. Большой файл можно разделить на части с указанным числом строк. Части получают последовательные имена, а ошибка или отмена не оставляет неполный набор файлов.
Студия

Добавлено

  • Проверка с выбранного действия. Проверку можно начать с любого действия вне контейнера через меню кнопки «Проверить» или контекстное меню списка. Начальный Скрипт-бокс выполняется, но обычные действия выше выбранного пропускаются, поэтому созданных ими переменных и другого контекста не будет. Куки от предыдущей проверки открытого проекта сохраняются автоматически, так что режим подходит для точечной проверки простого участка, которому достаточно этих куки.
  • Режим чтения HTTP-ответа. Кнопка + возле метода обычного HTTP-действия позволяет получить весь ответ, первые N КиБ тела, только заголовки, только строку статуса или ответ до указанного заголовка. Имя конечного заголовка сравнивается без учёта регистра, его значение вводить не нужно. Ограничение размера относится к несжатому телу; сжатый ответ загружается полностью. Подробнее — в справке.
  • Экспорт куки. В окне «Отладка проекта» куки можно экспортировать в форматы расширений Cookie Editor и Cookie Quick Manager — в файл либо в буфер обмена.
  • Время проверки. Студия отдельно показывает полное время действия и время локальной обработки без сети, ожидания капчи и пауз. Окно просмотра подключений продолжает учитывать только сетевое подключение.
  • Бинарный WebSocket. Для WebSocket-действия можно включить бинарный режим: исходящий Base64 отправляется как байты, бинарный ответ возвращается в Base64, а текст принимается только как корректный UTF-8. При подключении используются заголовки текущего действия. Подробнее — в справке.

Исправлено

  • Перемещение окон Студии. Вспомогательное окно следует за главным уже при первом перемещении.

Оптимизировано

  • Журнал Студии. Новые строки добавляются блоками, поэтому длинные проверки выполняются и отображаются заметно быстрее.
Прокси

Добавлено

  • Лимит HTTP-запросов на одну прокси. В настройках проекта можно указать число HTTP-попыток для одной прокси; 0 отключает лимит. Считаются обычные запросы, повторы, каждый переход и HTTP-обращения к сервису распознавания капчи. Попытка, достигшая лимита, заканчивается на текущей прокси, а следующая попытка — в том числе следующий переход — получает другую; посреди уже отправленного запроса прокси не меняется. Значение доступно через |SETPROJECTSETTING|. Подробнее — в справке.

Изменено

  • Работа пула прокси. Прокси, которая исчерпала лимит или была удалена, больше не выдаётся новым запросам. Если проект обязан работать через прокси и доступных адресов не осталось, он останавливается с понятной ошибкой, а не продолжает напрямую.
  • Адрес источника прокси. Готовые адреса http:// и https:// сохраняются, к адресу без схемы добавляется https://, а неподдерживаемая схема отклоняется.

Исправлено

  • Ручная смена прокси. После USEPROXY или PK.setProxy старое постоянное соединение могло остаться активным. Теперь оно закрывается, и следующий запрос в работающем проекте или Студии использует выбранную прокси. Ручная прокси работает и без глобального пула, а действие «без прокси» временно обходит её. Подробнее — в справке.

Оптимизировано

  • Double Core. Алгоритм улучшен: ближе к концу обработки базы проект работает стабильнее, когда число активных потоков уменьшается.
Капча

Добавлено

  • Новая команда |CAPTCHADECISION|. Запись |CAPTCHADECISION| = RECOGNIZE в Скрипт-боксе один раз запускает распознавание ближайшей капчи; вместо RECOGNIZE можно указать PROJECT, чтобы использовать настройку проекта, или SKIP, чтобы пропустить распознавание. Это нужно, когда решение становится известно только во время выполнения проекта; сама настройка проекта при этом не меняется. Подробнее — в справке.

Изменено

  • Повторное использование ответа капчи. Когда быстрая смена прокси немедленно повторяет тот же запрос, Keeper может один раз применить уже оплаченный ответ без нового распознавания. Это происходит только для той же капчи, того же способа распознавания и того же места подстановки; если задача была привязана к прежней прокси или условия изменились, Keeper получает новый ответ. Подробнее — в справке.
  • SVG-капча по ссылке. Keeper определяет SVG по типу и содержимому, преобразует его в обычное изображение и передаёт сервису распознавания или в окно ручного ввода.

Исправлено

  • Ручной ввод капчи. Ответ и состояние подтверждения передаются из окна ручного ввода в ожидающий поток одним согласованным действием. Параллельные проверки и проекты больше не могут получить пустой ответ из-за гонки между интерфейсом и обработчиком.
Интерпретатор и Скрипт-бокс

Добавлено

  • Новые функции |PROJECTSETTING| и |SETPROJECTSETTING|. Скрипт-бокс может прочитать настройку работающего проекта, например |PROJECTSETTING|threads|PROJECTSETTING|, и изменить её через |SETPROJECTSETTING|{"name":"threads","value":"50"}|SETPROJECTSETTING|. Созданные автором поля, флажки и списки доступны по их точным названиям. Полный список настроек и допустимых значений — в справке.
  • Регистр в логических условиях. Для каждого строкового сравнения можно отдельно включить режим без учёта регистра. Он работает внутри существующих выражений с AND, OR и вложенными скобками как в in-Line, так и в поиске Редактора лога. Подробнее — в справке.
  • Новое условие |REGEXMATCH|. Оно проверяет выбранный текст по регулярному выражению. В Редакторе лога можно сопоставить всё содержимое записи через |BLOCK|, а обычный поиск без логического выражения продолжает работать как раньше. Подробнее — в справке.
  • Новые ветви ELSEIF и ELSE. У условия IF в Скрипт-боксе появились дополнительные и запасная ветви, включая правильную работу вложенных условий. Подробнее — в справке.
  • Цикл #FOR. Скрипт-бокс умеет проходить целый диапазон вверх через |TO| или вниз через |DOWNTO|; #BREAK завершает ближайший цикл, а #CONTINUE переходит к следующему значению. Подробнее — в справке.
  • Выбираемая фаза Скрипт-бокса после запроса. Для блока «После выполнения запроса» можно выбрать запуск сразу после получения ответа или после определения хорошего, плохого результата либо капчи. Блок выполняется один раз, даже если внутри действия были повторы или перенаправления. Подробнее — в справке.
  • Новая переменная |CUSTOMCYCLEVALUE|. Она возвращает текущее значение пользовательского цикла и позволяет использовать один и тот же Скрипт-бокс для каждого элемента CUSTOMCYCLE. Подробнее — в справке.
  • Новая функция |UNICODEDECODE|. Она преобразует последовательности вида \u041f в обычный текст Юникода и правильно обрабатывает символы, записанные парой кодов. Подробнее — в справке.
  • Новая функция |TIMESTAMPMS|. Она возвращает Unix-время в миллисекундах и использует тот же момент времени, что и |TIMESTAMP|. Подробнее — в справке.
  • Новая переменная |HTTPSTATUSCODE|. Она содержит итоговый код обычного HTTP-ответа, включая последний переход; если ответ не получен, значение равно 0. Подробнее — в справке.

Изменено

  • Вложенные данные после индекса. После массива, результата парсера или другой индексированной переменной можно продолжать путь на любую глубину. Например, |RESPONSE|["root"]["items"][1]["name"] берёт поле name второго элемента массива items. Подробнее — в справке.
  • Группы регулярных выражений. REGEXPARS без номера возвращает первую группу, если она есть, иначе всё совпадение. REGREPLACE может менять только выбранную группу во всех совпадениях: |REGREPLACE||IN|id=12 id=34|IN||EXPR|id=(\d+)|EXPR||TO|X|TO||GROUP|1|GROUP||REGREPLACE| возвращает id=X id=X. Те же правила действуют в JavaScript PK. Подробнее — в справке.
  • |RANDOMRANGE|. Функция строго проверяет границы и сохраняет ведущие нули в результате. Подробнее — в справке.

Исправлено

  • Циклы парсеров и регулярных выражений. |PARSCYCLE| и |REGEXCYCLE| больше не смешивают результаты и каждый возвращает данные только своего типа.
  • Случайный User-Agent. Пустые строки больше не выбираются; если список не содержит подходящих значений, показывается понятная ошибка.
  • Ошибки динамических переменных. Если переменная записана неправильно, сообщение показывает конкретное поле, строку и причину.
Почтовый модуль

Добавлено

  • Сервер IMAP для отдельного действия. В действии почтового модуля можно указать собственные сервер и порт вместо общего маршрута. В этих полях разрешены обычные переменные и функции in-Line: Keeper вычисляет их перед подключением. Сервер и порт указываются только вместе. Подробнее — в справке.

Изменено

  • Разбор почтовых сообщений. Почтовый модуль корректно разбирает вложенные письма из нескольких частей, исключает вложения и декодирует Base64, quoted-printable, 7bit, 8bit и binary. Поддерживаются UTF-8, семейства Windows-1250…1258, ISO-8859, KOI8, CP866 и распространённые азиатские кодировки. |MCMSGFIELD| возвращает обычный текст письма, а если его нет — HTML. Подробнее — в справке.
Редакторы и многострочный текст

Исправлено

  • CRLF, LF и CR. Многострочные редакторы и поля проекта сохраняют точные окончания строк при вставке, копировании, сохранении и повторном открытии. Конфликт со служебным маркером выдаёт ошибку вместо повреждения текста.
  • Полосы прокрутки редактора. Они сразу обновляются после изменения текста, размера окна, видимости или масштаба.