Поиск статей на Sci-Hub : 2021.9.18
Опубликовано: Бармалей · 18.09.2021 · 00:01 ••• Обновление: 05.11.2021 · 15:11 0

Добавлен оперативный автореверс режима просмотр/загрузка по хоткею (опция), доработан код под CR29‑47.
Оптимизация вложенной структуры меню настроек, изменение и доработка текста локалей.

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


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

    В эту группу собраны все настройки, связанные непосредственно с выбором, изменение и поиском текущих доменов сервиса Sci‑Hub, ранее размещённые в группах "Настройки и управление" и "Ссылки по проекту Sci‑Hub" (ссылочный переход на страницу поиска текущих зеркал сервиса).

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

    Для бо́льшей "визуальной аккуратности" меню теперь длинные URL пользовательского поиска в этом меню отображаются урезанными до 32 символов. Сам URL, естественно, остаётся неизменным и при всех изменениях сохраняется полностью.


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

    Зачем/почему – чисто для удобства работы и компактности меню настроек. Новая группа, как самая часто используемая, размещена в верхней части списка групп. Все остальные настройки, как и ранее, размещены в группе опций "Настройки и управление" (включая вновь добавленные).

  • добавлена функция оперативного реверса (смены) режима просмотр/загрузка по горячей клавише (опция);

    Зачем/почему – ранее вызов по горячей клавише полностью дублировал вызов из контекстного меню страницы (поиск по URL текущей вкладки) или по щелчку на кнопке тулбара. Теперь для хоткея можно включить функцию временного переключения режима просмотра на загрузку и наоборот (пункт "Временная смена режима по хоткею", по умолчанию включен, применяется реверс режима). Опция помещена в подгруппу "Настройки и управление":


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

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

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

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

    Если у вас есть потребность и в дублировании функции поиска по хоткею (как в предыдущих версиях), но вы также хотите использовать и новую функцию реверса режима, вы можете задать ещё одну горячую клавишу – для стандартного пункта "Активация расширения" (в настройках "Быстрых клавиш" на странице chrome://extensions, например, задать Alt+Shift+F):


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

    В связи с тем, что в некоторых достаточно старых версиях браузеров функция вызова по хоткею может не работать в принципе (из‑за особенностей реализации API горячих клавиш в этих браузерах), для "отлова" этой проблемы при каждой попытке вызова производится автопроверка на корректность работы API и, в случае ошибки, пользователю выдаётся соответствующее сообщение:


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

    При этом в настройках опция реверса автоматически отключается и будет недоступна для изменения:

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

  • изменена функция проверки версии браузера для поддержки автоперепостроения меню при старте браузера или после выключения и последующего включения расширения вручную;

    Применимо только к отдельным достаточно старым версиям браузеров (например, SRWare Iron CR31) и предназначено для автоматического исправления бага с построением конктекстного меню страницы в этих версиях. До этой версии функция работала безусловно и использовалась по умолчанию во всех версиях, старше CR48.

    Теперь, при обнаружении "потенциально проблемной" версии браузера, пользователю выдаётся запрос на включение этой функции. После подтверждения запроса функция автопостроения меню будет запускаться автоматически, никаких запросов при этом больше не будет. Необходимость включения вы можете определить самостоятельно – если после перезапуска меню расширения отсутствует на страницах, ваша версия браузера содержит ошибки и для их обхода вам следует включить автопостроитель меню.


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

    Так же, как и в случае работы с вышеуказанной функцией реверса режима, эта автонастройка сбрасывается при обновлении браузера или самого расширения. Это позволяет вам повторно переопределить необходимость автозапуска построителя меню. Если же ваш браузер был обновлён до "беспроблемной" версии, функция автоматически отключается и никаких запросов при этом уже не будет.

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

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


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

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

  • добавлен ссылочный переход – пункт "Общее техническое описание" (документ обновляется);

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

  • добавлена функция автоконвертирования "старых" настроек в новые, без необходимости ручных действий;

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

    Зачем/почему – в связи с изменениями в структуре исходного кода и в структуре данных локального хранища. Название части хранимых ключей изменено для лучшей читаемости и бо́льшего удобства работы с кодом (сделал чисто для "ковыряльщиков кода", ну и для себя, любимого, конечно же))).

  • исправлена проблема предыдущей версии, приводившая к ошибке первичной установки в браузерах старше CR48;

    Связано с отсутствием в этих браузерах поддержки части API chrome.management. Исправлено.

  • исправлен мелкий "бажок" в коде инжектора, приводил к некорректной работе со вторым резервным URL;

    Для этого хоста не срабатывала функция прямого просмотра, отображалась только страница сервиса. Исправлено.

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

Известные проблемы:

Пока отсутствуют, но если вдруг что – не стесняемся и пишем в комментариях в баг‑репорте…:)


Скриншоты:

Блок аддона на странице управления расширениями:

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

Группа общих настроек поисковых URL:

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

Эта же группа опций в контекстном меню страницы в браузерах старых версий (CR29‑47):

Группа управления и настроек просмотра (в том числе – все новые опции):

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

Эта же группа опций в контекстном меню страницы в браузерах старых версий (CR29‑47):

Группа ссылок по проекту Sci‑Hub:

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

Группа ссылок на документацию и поддержку расширения:

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

Установка горячих клавиш для различных режимов:

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

Диалоговое окно результата автопроверки обновления версии:

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


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

Камраду Огневу – за "приватное тестирование" и консультации по применению аддона. :)


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

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

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

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

Официальные версии Документация
Бармалей 18.09.2021 05.11.2021 271 0.0

Поделиться

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