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

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

Новый принцип ускоренной загрузки файлов для браузеров CR36+, упрощено закрытие фоновых вкладок.
Добавлены опции сохранения описания загрузок и аннотаций ко всем просмотренным статьям (включая ссылки).
Опции формирования длинных и человекопонятных имён файлов на основе заголовков сохраняемых статей.
Исправлены проблемы работы в режиме инкогнито, решена проблема блокировки хоткея в CR29.

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


Основные изменения:
  • добавлен новый метод загрузки документов, применим для всех браузеров версий CR36+:

    Метод "автоклика", исключающий ожидание перезагрузки временной вкладки для получения конечного PDF-файла документа. Устанавливается по умолчанию, не требует "шаманства" с таймаутами на закрытие временной вкладки.)

    • Метод основан на создании временного объекта-ссылки в памяти и автощелчка по нему.

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

    • Изменена логика* и параметры работы инжектора и метод определения доступного прямого URL документа.

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

    • Метод "автоклика" не применим в некоторых* браузерах версий старше CR36!

      * Проверено в SRWare Iron 29/31, в других версиях проверяем работоспособность самостоятельно.

      Автоклик может вызывать в этих версиях различные проблемы с загрузкой.
      В первом случае (CR29) файлы либо не сохраняются совсем, либо сохраняются дважды (в зависимости от настроек аддона и самого браузера), файлы описаний (см.ниже) в принципе отсутствуют.
      Во втором случае (CR31) автоклик стабильно приводит к падению браузера, если включена опция сохранения описаний (см.ниже) и независимо от других настроек.

    • В случае каких-либо проблем с загрузкой, этот метод может быть отключён в настройках.

      Для этого в группе "Опции загрузчика файлов" следует включить опцию "Классический метод загрузки файла". В этом случае загрузчик работает как в предыдущих версиях аддона, всегда с созданием временной фоновой вкладки.

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

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

    • Пункты группы работают только в контексте URL текущей вкладки и функционально эквивалентны разным наборам настроек, исходя из логики названий:
    • "Как задано в меню страницы" – действия определяются всеми установленными настройками.

      "Старое" поведение кнопки, аналогично запуску поиска (или загрузки) из контекстного меню страницы.

    • "Найти эту статью на Sci-Hub" – запускает поиск и открывает найденное.

      Режим открытия зависит только от установки опции прямого просмотра (PDF или страница сайта).

    • "Скачать документ со Sci-Hub" – загрузка документа, закрытие фоновой временной вкладки.

      Метод загрузки и создание описания определяются текущими настройками загрузчика.

    • "Найти, скачать и посмотреть" – загрузка документа и открытие PDF-файла в новой вкладке.

      Метод загрузки и создание описания определяются текущими настройками загрузчика..

    • "Сохранить описание к статье" – сохраняет только текстовый файл аннотации.

      Метод загрузки – "автокликером", имя файла определяется настройками загрузчика.

    • "Запуск действия при выборе" – автоматически запускает выбранное действие.

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

  • удалена ссылочная группа "Ссылки по проекту Sci-Hub":

    Связано с добавлением новых групп настроек и с ограничением максимального числа пунктов в меню первого уровня (для кнопки на тулбаре). Ограничение накладывается API контекстного меню, максимальное число пунктов равно 6. Это также потребовало удаления разделителя между группами и пунктом запуска действия по умолчанию (в браузерах версий CR48+).

    • Пункты удалённой группы функционально не изменены, но переименованы и перемещены в другие группы настроек, исходя из их логики:
    • "Ручной поиск документов на Sci-Hub" – открывает главную страницу сайта, заданного как текущий поиск.

      Ранее назывался "Домашняя страница проекта", перемещён в группу "Общая поддержка поиска".

    • "ВКонтакте: новости проекта Sci-Hub" – открывает соответствующую ссылку в новой вкладке.

      Ранее назывался "Группа проекта ВКонтакте", перемещён в группу "Общая поддержка поиска".

    • "Ресурсы и ссылки по Sci-Hub" – открывает соответствующую ссылку в новой вкладке.

      Ранее назывался "Другие связанные ресурсы", перемещён в группу "Сведения о расширении".

  • добавлены новые настройки в группу "Общая поддержка поиска":

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

    • Кроме добавки двух вышеуказанных пунктов из удалённой группы ссылок на Sci-Hub, пункты группы немного переупорядочены, исходя из частоты их применения.
    • "Свой URL:" – пользовательский поиск (теперь озаглавленный).

      В принципе, вместо гугло-поиска по умолчанию здесь может быть задан URL любого из доступных доменов Sci-Hub. Это дополнительно расширяет ваши возможности по прямому поиску документов.

    • "Конвертор идентификаторов PubMed" – функция не изменена, перемещено из общих настроек.
    • "Автозапуск поиска при изменениях" – автоматически запускает поиск по вкладке при смене любого из URL.

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

  • добавлена новая группа настроек "Опции загрузчика файлов":

    Все настройки, связанные с загрузкой файлов, теперь расположены в этой группе.

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

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

    • "Создавать файл описания загрузки" – аналогично, но только при скачивании документов.
    • "Имя файла по заголовку документа" – формирование "человекопонятного" имени файлов.

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

    • "Длина имени не более, символов:" – чем оно длиннее, тем понятнее предыдущее. :)

      Максимум 249 символов, читаем предупреждения об ограничениях в диалоге установки этого параметра.

    • "Оставлять вкладку после загрузки" – запрет автозакрытия фоновой вкладки после запуска загрузки.

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

    • "Классический метод загрузки файла" – переключение способа загрузки, описано выше.

      Относится только к загрузке PDF-файлов (описания всегда сохраняются "автокликом"). Если включено, используется перезапуск фоновой вкладки поиска для вызова диалога сохранения файла (как в предыдущих версиях).

    • "Время ожидания до сброса, сек.:" – функция не изменена, перемещено из общих настроек.

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

  • добавлена возможность изменения и установки собственного URL тестовой* страницы:

    * Применяется для проверок работоспособности логики и функций расширения.

    • Вызов функций – через отдельный блок действий в группе "Настройки и управление", в меню добавлены новые пункты, их назначение описано ниже.
    • "Открыть страницу тестовой статьи" – собственно открытие тестовой страницы в новой вкладке.

      Ранее этот пункт назывался "Открыть тестовую страницу PubMed", функционально не изменён, переименован по причине того, что теперь это может быть любая произвольная страница любого сайта.)

    • "Текущая страница как проверочная" – установка текущего URL текущей вкладки как тестового.

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

    • "Изменить адрес тестовой страницы" – диалог изменения и/или сброса в URL по умолчанию.

      В диалоге дано краткое пояснение, если URL отсутствует, он устанавливается по умолчанию (ссылка).

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

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

    • Вызов функций экспорта/импорта – через отдельный блок действий в группе "Настройки и управление", в меню добавлены 2 новых пункта, их назначение описано ниже.
    • "Сохранить и восстановить настройки" – вызов диалога для ручного ввода данных или для запуска всех остальных действий по работе с резервными копиями настроек.

      В диалоговом окне кратко описаны все варианты действий и некоторые пояснения по ним.

    • "Быстрое сохранение резервной копии" – автосохранение текущих настроек во внешний файл в один клик.

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

    • При совпадении сохранённых данных резервной копии с текущими настройками восстановление не производится, при этом выдаётся сообщение об идентичности данных.
    • При сохранении настроек в файл его имя автоматически задаётся уникальным (добавляется штамп текущего времени), вы можете изменить это имя по своему желанию перед сохранением файла.
    • При сохранении текущих настроек в файл записываются только те параметры, которые отличаются от значений по умолчанию, независимо от того, меняли вы их ранее или нет.
    • Для импорта (восстановления) допустимы конечные данные только в формате JSON, либо их ручным вводом в виде строки сохранённых настроек, либо указанием файла, содержащего корректный формат данных (при ручном вводе пути обязательно следует указывать полный путь или прямой URL к файлу).
    • Перед импортом и установкой параметров из резервной копии она проверяется на валидность и отсутствие мусорных ключей, если структура бэкапа не соответствует набору ключей хранилища или содержит ошибки, восстановления из такой копии будет отменено с выдачей соответствующего сообщения.
    • В любом случае следует помнить, что при восстановлении настроек сохранённые в них опции перекроют ваши текущие настройки при их совпадении (т.е. если в бэкапе какой-то параметр сохранён как включенный, а в текущих настройках он выключен, после восстановления эта опция будет включена). При этом запрос на перезапись текущих параметров не выдаётся, проверка и изменения параметров выполняются полностью автоматически. Если же в бэкапе какой-либо параметр отсутствует (был установлен по умолчанию на момент сохранения копии), ваша текущая настройка не изменяется.
    • Кроме проблем с доступом к файлу резервной копии при его удалении или из-за неправильно заданного пути, сообщение об ошибке загрузки данных также будет выдано в случае, если у вас отключено разрешение на доступ к локальным файлам (соответствующая "галочка" в блоке аддона на странице chrome://extensions).
  • изменена функция "Проверить и скачать обновление", добавлена автозагрузка CRX-установщика;

    Теперь при различии текущей версии от разработчика и установленной версии И при подтверждении перехода на страницу ченч-лога текущей официальной версии для ознакомления с изменениями в ней и самостоятельной загрузки и установки обновления, попутно выполняется и автозапуск* загрузки CRX-установщика текущей стабильной версии в соответствующем формате (по версии вашего браузера, до версий CR67 всегда грузится CRXv2, для более новых – только CRXv3).

    * В зависимости от "огороженности" вашего браузера может потребоваться подтверждение скачивания "опасного файла". :)

  • изменена логика вызова аддона на страницах сайтов Sci-Hub – загрузка файла вместо блокировки;

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

    Сообщение о "недопустимом URL" теперь выдаётся только для страниц с отсутвующими статьями.

  • изменена и оптимизирована логика работы с локальным хранилищем настроек;

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

  • основная поддержка "старых" браузеров (CR29-47) сведена в отдельный* модуль;

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

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

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

    Эта функция может потребоваться только на браузерах версий старше CR36. В принципе не используется на CR48+.

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

  • в манифест добавлено разрешение* ["tabs"] (решение проблемы с хоткеями в браузерах старше CR31);

    * Опциональное, запрашивается только при обнаружении проблемы при попытке нажатия основной (то есть НЕ "Активация расширения") горячей клавиши на служебных страницах браузера (например, для сброса меню по "волшебной кнопке"). При отсутствии ошибок разрешение не требуется, не запрашивается и не устанавливается автоматически (браузеры CR31+).

  • из манифеста удалён параметр* "incognito": "split";

    * Решение проблемы с отсутствием меню кнопки на тулбаре в режиме "incognito" в браузерах CR48+. Не являлось проблемой расширения, связано с ошибками при создании дублирующих пунктов из-за некорректной обработки API в некоторых версиях браузеров. Теперь меню всегда создаётся, с теми же параметрами, что и в обычном режиме.
    В общем, чем "мастырить костыли", проще было удалить..)


Прочие изменения:
  • улучшен, упрощён и оптимизирован код части функций, изменён общий набор переменных;
  • исправлен мелкий баг с некорректной ссылкой на ченч-лог текущей версии (вела на старую версию);
  • изменено автоопределение языка интерфейса для переключения локализаций аддона;
  • ручной перезапуск меню ("волшебная кнопка") теперь доступен и на вкладках с локальными файлами;
  • модуль скрипта внешних переходов xhrlink.js переименован в extlink.js;
  • внутренние короткие ссылки "тихо скончавшегося" сервиса is.gd заменены на tinyurl;
  • улучшено определение возможностей текущей версии браузера ("новый/старый");
  • под текущие изменения добавлен/подправлен текст некоторых пунктов меню, сообщений и диалогов.

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

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


Скриншоты:

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

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

Группа настроек действия по умолчанию для щелчка по кнопке на тулбаре:

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

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

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

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

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

Группа настроек загрузчика файлов, формирования имён и сохранения описаний:

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

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

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

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

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

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

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

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

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

Диалоговое окно установки максимальной длины имени файла:

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

Диалоговое окно установки таймаута для "классического" режима загрузки:

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

Диалоговое окно изменения URL тестовой страницы:

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


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

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


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

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

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

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

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

Поделиться

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