Get CRX RU : Micro Plus : Context Menu Mod : 2021.12.17
Опубликовано: Бармалей · 17.12.2021 · 00:01 ••• Обновление: 20.11.2023 · 16:10 0

Доработка линейки Micro Plus : Context Menu Mod с расширенным функционалом.
Билд ветки только с контекстным меню страницы (без функций кнопок в омнибоксе и/или на тулбаре).
Вызов только из контекстного меню, другие методы не используются.

Оптимизация кода и изменение интерфейса меню. Исправлены мелкие недочёты предыдущих версий.
Возможность поиска и загрузки аддонов из репозиториев CWS/MEA через сервис ExtPose (ZIP/CRX).
Добавлен поиск зеркал страниц CWS на сайте ExtPose в архиве CRX4Chrome (также и для ссылок на них).
Добавлена функция поиска и загрузки расширений по ссылкам в выделенном тексте (все репозитории).
Добавлена опция предварительной быстрой проверки доступности файлов для загрузки (все репозитории).
Улучшено формирование и обработка ссылок для GreasyFork, OpenUserJS и UserScriptsMirror.

Проверка работоспособности: SRWare Iron 29/31/49, 360 Extreme Explorer 9/11/12/13 (CR63/69/78/86) и Chromium 87.

Версия может конфликтовать с другими менеджерами загрузок.

Эта версия предназначена для браузеров версий 31+, на более старых корректно работать НЕ будет!


При использовании расширенных опций на версиях браузера 81+ возможны проблемы с загрузкой!
Причины и некоторые способы решение этих проблем приведены в этом разделе документации.
По существу проблемы и методов решения читаем в статье Get CRX RU и Chromium CR‑81+ : Загрузка из CWS.


Основные изменения:
  • исправлена ошибка – неправильное название пункта принудительного перестроения меню;

    Пункт "Принудительное перестроение меню" в группе управления ("Сервисные функции и интерфейс", отображается только в браузерах версий до CR48). Ошибка случайно внесена в версии 2021.11.16 при переделке модуля управления меню. Исправлено.

  • добавлен поиск/переход/загрузка в архиве-зеркале расширений на сайте ExtPose:
    • работает на страницах репозиториев CWS/MEA и архива crx4chrome* (также и для ссылок на них);

      * Может применяться для поиска зеркала, если какая-то страница отсутствует в архиве.

    • пункты меню "Искать зеркало страницы на ExtPose" и "Искать зеркало на ExtPose" (для ссылок);
    • поиск зеркал аддонов из репозитория CWS всегда производится по ID исходного аддона (способ определяется поисковиком сайта ExtPose) и запускается автоматически, это также работает и при поиске по ссылкам (в том числе – для страниц архива crx4chrome);

      Результат поиска при этом всегда однозначен и даёт прямой переход на конечную страницу (или выдаётся сообщение об отсутствии такой страницы, если её действительно нет на сайте).

    • поиск зеркал аддонов из репозитория MEA всегда производится только по имени аддона (способ определяется поисковиком сайта ExtPose) и НЕ работает при поиске по ссылкам, поэтому для запуска поиска потребуется сначала открыть* страницу расширения в MEA и уже с неё вызвать поиск;

      * Связано с особенностями репозитория MEA, для него невозможно запросом получить содержимое конечной страницы.

      Результат поиска при этом НЕ всегда однозначен и даёт страницу со списком подходящих ссылок, выбор и переход к конкретной странице из этого списка производится вручную.

      Для устранения ошибок при поиске зеркал аддонов из репозитория MEA не следует использовать для поиска названия аддонов на языках, отличных от английского (например, на русском).

      Поисковый запрос автоматически составляется по текущему заголовку страницы в репозитории MEA, для гарантии успешного поиска лучше предварительно переключить язык страницы на английский, используя пункт меню "Переключить язык страницы RUS/ENG".

      Этого правила нужно придерживаться всегда, кроме случаев, когда у аддона вообще нет английского названия (пример), иначе поиск будет неуспешным. Это можно делать автоматически, включив опцию "Автоисправление поисковой строки" (по умолчанию выключена), при этом из запроса автоматически удаляются все не-латинские символы, либо вручную* (при выключенной опции автоисправления строки поиска).

      * Диалог ручного исправления будет выдан только в случае наличия не-латиницы в поисковом запросе.

    • для страниц и ссылок архива доступны пункты загрузки ZIP-архивов* (только для аддонов, размещённых в CWS) или прямая загрузка CRX из репозитория MEA (пункт меню "Cкачать файл текущей версии аддона", тип и URL конечного файла для загрузки определяются автоматически по содержимому выбранной страницы архива);

      * Оригинальный ID расширения при этом НЕ сохраняется, поэтому не исключена подмена кода!
      Полнота архива и точность соответствия скачиваемых файлов их оригиналам не проверялась и не гарантируется.
      Сайт предназначен для сбора аналитики по расширениям, во все скачиваемые ZIP-архивы добавляются обфусцированные скрипты гуглоаналитики и модифицируются оригинальные файлы аддонов для её запуска!

    • для страниц этого архива доступно оперативное переключение языка текста* описания (RUS/ENG);

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

    • описание для таких загрузок создаётся на основе текста страницы* сайта ExtPose.

      * В модуль формирования описания добавлен отдельный парсер страниц для этого сайта. Если исходная страница сайта содержит описание на русском языке, текст описания также будет на русском.

  • добавлен поиск ссылок для загрузки в выделенном фрагменте текста:

    Один из частных случаев применения фичи – выделение ID установленного расширения на странице chrome://extensions, при этом будет автоматически найдена и загружена текущая версия аддона, которую можно сразу же установить. :).

    • поиск производится для всех поддерживаемых репозиториев по маскам их URL или по ID расширения (только для репозиториев CWS или MEA);
    • включается настройкой "Искать ссылки в выделенном тексте" (по умолчанию включена), после чего в меню выделенного текста появляется дополнительный пункт "Скачать по ссылке из выделенного" (присутствует на любых страницах, включая локальные и служебные);
    • вызывается на выделенном фрагменте текста на любой странице, если в тексте содержится хотя бы одно совпадение, для него будет автоматически запущен загрузчик аддона (если несколько – только для первого);

      Будьте внимательны: если в выделенном фрагменте содержится ссылка на любой из поддерживаемых репозиториев И если вызов поиска осуществлён именно на ней – будет отработан URL ссылки под курсором!

    • для решения проблемы выбора репозитория в случае, если выделенный текст содержит только ID (выбор между CWS и MEA), сначала всегда проверяется наличие аддона в CWS, если при этом есть ошибка (например, если расширение удалено), выдаётся запрос на поиск в MEA;
    • при отказе от поиска в репозитории MEA производится попытка найти расширение в архиве CRX4Chrome;
    • при включении опции "Автопоиск в MEA при ошибках CWS" (по умолчанию выключена) вышеуказанный запрос не выдаётся и поиск в репозитории MEA запускается автоматически;
  • изменена функция обработки ошибок для репозитория CWS (для удалённых аддонов);

    Теперь вместо безусловного (авто)перехода в архив crx4chrome сначала проверяется наличие (доступность) страницы в этом архиве или (при её отсутствии либо недоступности) производится автопоиск на сайте ExtPose… :)

    Кроме того, теперь функция унифицирована и применяется во всех случаях появления таких ошибок – при попытке загрузки по ссылке, при вызове со страницы удалённого аддона, при запросе поиска или перехода в архив расширения на сайте CRX4Chrome и при поиске по выделенному тексту (по URL и/или только по ID).

  • добавлена опция предварительной быстрой проверки доступности файлов для загрузки;

    Работает для всех поддерживаемых репозиториев и предназначена для обхода некоторых ошибок загрузки. В частности – может быть полезна при попытке загрузки по ссылкам отсутствующих аддонов из репозитория MEA.

    Эта функция также позволяет оперативно проверить доступность прямой загрузки скриптов с сайта OpenUserJS (где могут быть установлены ограничения на скачивание) или из архива UserScripsMirror (некоторые скрипты и/или их версии могут отсутствовать в этом архиве).

    Включается в настройках, пункт "Проверять доступ перед загрузкой" в группе "Сервисные функции и интерфейс". Если включено (по умолчанию), сначала выполняется упрощённый проверочный запрос и по получению заголовка ответа (без ожидания окончания загрузки) либо запускается загрузчик либо сразу выдаётся сообщение о недоступности ресурса.

    В редких случаях такая проверка может наоборот замедлить запуск загрузки (если, например, вы работаете на медленном канале). В этом случае (возможно) лучше использовать "старый" способ загрузки, без предпроверки.

  • изменена структура меню, добавлена группа "Быстрый сброс и восстановление;

    В эту группу перемещена часть действий из группы "Сервисные функции и интерфейс": "Перезагрузить и устранить ошибки", "Сброс текущих настроек и перезапуск" и все операции с резервным копированием, восстановлением и установкой рекомендуемых настроек.

    Функционально все перемещённые пункты не изменены, перенос связан с увеличением числа новых настроек в группе управления и сделан только для лучшего восприятия опций в более коротком списке.

  • переупорядочены отдельные пункты группы "Сервисные функции и интерфейс";

    Теперь все настройки, связанные с видом и структурой меню, сведены в отдельный блок в нижней части группы.

  • изменена логика построения "классического" одноуровневого меню;

    Включается опцией "Классическое одноуровневое меню". Теперь "классическое" меню содержит только опции загрузчика, параметры текстового описания, настройки самого аддона и все действия. Ссылочная группа "Cкачать CRX : Ресурсы и ссылки" теперь всегда отображается отдельно и размещается на первом уровне меню.

  • исправлена потенциальная ошибка парсера текста при создании текстовых файлов описаний;

    Не заявлена и не проявлялась, принципиально могла возникать при некоторых условиях на отдельных страницах репозиториев (например, из-за отсутствия отдельных элементов страниц). Исправлено.

  • добавлена функция предварительного расчёта параметров загрузки (ID, имена файлов, прямые URL и пр.);

    Приводит к общему сокращению времени проверок и определения ссылок, упрощён код основной функции загрузчика и функции формирования конечного имени загружаемого файла.

  • улучшены функции обработки ссылок для сайтов GreasyFork, OpenUserJS и UserScriptsMirror.

    В некоторых случаях при предобработке ссылок могли возникать ошибки, приводящие к отказу загрузчика.

Прочие изменения:

  • изменён и оптимизирован код всех модулей, улучшена общая структура переменных;
  • доработаны функции определения прямых URL для загрузки (устранены потенциальные ошибки);
  • исправлена потенциальная ошибка формирования имени файла при загрузке с сайта OpenUserJS;
  • оптимизирована функция сброса аддона после загрузки (вне зависимости от результата);
  • исправлены возможные логические ошибки построения меню при разных комбинациях настроек;
  • доработана функция формирования текста описания, часть процедур вынесена в общий модуль;
  • опция "Удалять загруженное из списка" переименована в "Удалять загруженное из Истории".
  • под текущие изменения подправлен текст некоторых пунктов меню, добавлены пункты меню для новых функций, соответственно изменены и оба файла локализации (русский и английский);
  • переименованы некоторые пункты меню (в обеих локалях, косметически), их функции не изменены.

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

    Тем не менее, если вы обнаружите, что какие-либо опции или функции стали работать некорректно – не стесняемся и пишем в баг-трекер…)


Скриншоты:

Блок расширения на странице chrome://extensions:

Щёлкните по изображению, чтобы просмотреть скриншот на другом языке.

Изменённое меню группы настроек и управления расширением:

Щёлкните по изображению, чтобы просмотреть скриншот на другом языке.

Меню группы резервного копирования, восстановления и сброса настроек:

Щёлкните по изображению, чтобы просмотреть скриншот на другом языке.

Меню на странице репозитория CWS с опцией включения поиска в выделенном:

Щёлкните по изображению, чтобы просмотреть скриншот на другом языке.

Меню на странице chrome://extensions с пунктом поиска в выделенном фрагменте текста:

Щёлкните по изображению, чтобы просмотреть скриншот на другом языке.

Запрос поиска CRX-установщика по выделенному ID на сайте MEA при ошибке в репозитории CWS:

Щёлкните по изображению, чтобы просмотреть скриншот на другом языке.

Меню на локальной текстовой странице с пунктом поиска в выделенном фрагменте текста:

Меню на странице репозитория CWS с пунктом поиска зеркала на сайте ExtPose:

Щёлкните по изображению, чтобы просмотреть скриншот на другом языке.

Запрос корректировки строки поиска на сайте ExtPose по имени расширения на сайте MEA:

Щёлкните по изображению, чтобы просмотреть скриншот на другом языке.

Поиск зеркала на сайте ExtPose со страницы в архиве CRX4Chrome:

Поиск зеркала на сайте ExtPose для ссылки на архив CRX4Chrome:

Меню для ссылки на страницу расширения на сайте ExtPose:

Меню страницы описания расширения на сайте ExtPose:


Решпекты и пиво

Камраду kenko2 – за "наводку" на сайт Extpose. :)


История и обсуждение

Общие технические сведения
  • Технологии и API:
    Чистый JavaScript (ES5), API: contextMenus, downloads, clipboardRead, tabs, content-script, i18n
  • Запрашиваемые разрешения:
    [ "activeTab", "contextMenus", "downloads", "clipboardRead", "" ]

Загрузка и установка

Дополнительно

Официальные версии Документация
Бармалей 17.12.2021 20.11.2023 757 0.0

Поделиться

Всего комментариев: 0
close