- Регистрация
- 22.01.2019
- Сообщения
- 2 145
- Реакции
- 4 672
- Баллы
- 113
Cookie Converter — многорежимный двунаправленный конвертер cookies между форматами Netscape и JSON
Всем привет! Хотим поделиться с вами небольшой утилитой для работы с куками — Cookie Converter. Она помогает привести cookies к нужному формату и разобраться с датами их истечения без ручного редактирования и пересчёта временных меток.
Идея для создания этой утилиты появилась из вполне обычной ситуации: выгружаешь куки из браузера или расширения, а другая программа их не принимает. Где-то нужен Netscape, где-то JSON, в одном экспорте время записано в секундах, в другом — в миллисекундах, а иногда вместо timestamp вообще стоит текстовая дата или At the end of the session. Даже кавычки вокруг числового expirationDate могут оказаться причиной ошибки импорта.
Чтобы не разбираться с этим каждый раз вручную, и появился этот конвертер кук. Вставляете исходную куку, выбираете формат результата и представление времени, нажимаете «Конвертировать» — готовый результат появляется в нижнем поле. Остаётся скопировать его и использовать дальше.
Что умеет эта утилита (основной оконный функционал):
- Конвертировать cookies из Netscape в JSON и обратно. Можно принудительно выбрать формат результата или оставить такой же, как на входе.
- Автоматически определять входной формат. При необходимости Netscape или JSON можно указать вручную.
- Обрабатывать JSON-массив cookies, отдельный объект и структуру с массивом cookies. Поддерживаются обычные поля domain, name, value, expirationDate, а также экспорты с названиями вроде Host raw, Name raw, Content raw и Expires raw.
- Распознавать числовые временные метки: Unix timestamp в секундах, миллисекундах, микросекундах и наносекундах, а также Chromium/WebKit timestamp с отсчётом от 1601 года и Windows FILETIME.
- Преобразовывать срок действия в Unix-секунды, миллисекунды, микросекунды или читаемую дату: DD-MM-YYYY HH:MM:SS и MM-DD-YYYY HH:MM:SS. Поддерживается разбор текстовых дат, включая ISO 8601 и HTTP-date.
- Обрабатывать сессионные куки, в том числе At the end of the session, отсутствие даты истечения и другие предусмотренные обозначения сессии.
- Принимать дробные Unix-секунды и отрицательные Unix timestamps в секундах.
- Переносить основные атрибуты: домен, путь, имя, значение, признаки поддоменов, Secure, HttpOnly и срок действия. При работе с JSON также обрабатываются SameSite, session, storeId и id.
- Выводить числовой expirationDate в JSON без кавычек, а не строкой с цифрами.
Всё это — в обычном оконном приложении для Windows. Два текстовых поля, настройки форматов и кнопки конвертации, очистки и копирования результата. Обработка выполняется локально: отправлять куки на сайт или во внешний сервис не нужно.
Где это может пригодиться:
Конвертер cookies может пригодиться в задачах браузерной и HTTP-автоматизации, при переносе cookie-наборов между инструментами, подготовке данных для скриптов и проверке экспортов. В частности, он может быть очень полезен и удобен при работе в программных комплексах ZennoPoster и ZennoBrowser, когда нужно сконвертировать куки из стороннего источника или привести expirationDate к представлению, которое ожидает инструмент импорта ZP и ZB.
Некоторые особенности:
Есть несколько нюансов. Для обычного совместимого Netscape cookies.txt выбирайте вывод времени в секундах. Читаемые даты, миллисекунды и микросекунды в этом формате оставлены для специальных задач и просмотра. Текстовые даты без часового пояса приложение считает временем UTC. А при конвертации JSON → Netscape поля, которых нет в Netscape-формате, например SameSite, storeId и id, в результат не переносятся.
Режим «Такой же формат» сохраняет именно тип представления — Netscape или JSON, а не исходную структуру JSON побайтно: на выходе формируется нормализованный набор поддерживаемых полей. Автоопределение временных меток тоже рассчитано на предусмотренные диапазоны, поэтому с нетипичными или неоднозначными датами результат стоит проверить.
Внизу прикреплен архив утилиты Cookie Converter в .exe формате, т.е. в запускаемом виде в среде Windows. В архиве также есть один дополнительный служебный файл, который необходим для работы конвертера. Также в архиве есть текстовый файл readme в markdown-формате с описанием дополнительного консольного командного режима работы приложения, когда оно запускается с параметрами.
Командный (фоновый) режим с параметрами:
В командном режиме окно программы не показывается и вся работа происходит в невидимом фоновом режиме, согласно прописанным параметрам командной строки. То есть, вы сможете использовать Конвертер при автоматической работе, например в проекте ZennoPoster'а, через кубик Запуск программы.
Расширенный режим командной строки включает в себя два подрежима:
- Подрежим конвертирования кук из файла (один файл на входе и один файл на выходе)
- Пакетный подрежим конвертирования кук из папки, когда можно конвертировать неограниченное количество файлов с куками из определенной папки (много файлов на входе и столько же файлов на выходе)
Проверено на вирусы. Отчёт проверки на VirusTotal: https://www.virustotal.com/gui/file...983c59a04d621e19a9efcce052f17b490ec/detection
Если заметите проблемы при использовании нашего конвертера:
Если попадётся экспорт, который Cookie Converter не распознаёт, прикладывайте небольшой обезличенный пример и описание ожидаемого результата. Только не публикуйте действующие значения авторизационных cookies — для проверки формата их лучше заменить на тестовые.
Вложения
Последнее редактирование модератором:


