MuSe

Поисковое расширение для браузеров на основе Chromium

Описание

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


Итак.


Установка

Инструкция по установке есть в разделе с кромешностями.

После успешной установки в контекстном меню (правый клик по выделенному) появится одно или несколько подменю:

MuSe: скриншот

Руководство пользователя


Журнал версий

Servant 3.9.777

  • Настройки в попапе - зло. Криво работают, неудобно поддерживать. Исправил оплошность. Переделал настройки, сделал обычное удобное окошко с элементами. Сохранение - автоматическое. Старые настройки пропадут (надеюсь, в последний раз) - но, учитывая, что по умолчанию настройки в этом расширении выключены, это не очень страшно.
  • Внедрена очень клевая фича: подмена user agent. Бывает нужно проверить, как ведет себя сайт, например, в мобильной версии. Есть список из популярных агентов, можно ввести и свою строку. Так как накатывается это при первичной загрузке расширения, сделана кнопка «Применить», перезагружающая расширение: для того, чтобы user agent начал меняться сразу, ее использование необходимо.

Servant 3.9

  • Добавлена опция, позволяющая писать ссылки в анкоры. Фактически делает то же, что расширение My Little Href. Включение и выключение производится одной кнопкой.
  • Чуть изменена логика имен в настройках. Пропадет лишь выключение JavaScript, так что ничего страшного - максимум пара лишних кликов в попапе.

Servant 3.8

  • Появилась выпадашка с настройками. Последние два пункта обычные: открытие сайта автора и выключение.
  • В настройки добавлена возможность выключить JavaScript. Выключение глобальное, фиксируется. Включается обратно той же кнопкой. Открытая вкладка при изменении данной настройки обновляется, остальные вкладки придется обновить ручками.
  • Ссылка на старый расширенный поиск Яндекса убрана, ибо помер совсем.

Servant 3.7

  • В дополнение к просмотру ИКСа появился и просмотр инфы о сайте в целом (открывается документ вида https://webmaster.yandex.ru/siteinfo/?site=mylittleservices.ru).
  • Чуть передвинуты нижние пункты меню: самый необычный пункт, который вовсе не работает с контентом, отправил вниз; те, что работают с контентом - объединил. Кажется, так логичнее.
  • В функцию, добавляющую элемент textarea, добавлена оценка высоты элемента исходя из длины текста. Раньше тоже было что-то такое, но следящее только за количеством переносов, что было по большей части бесполезно.
  • Небольшие правки в манифесте расширения (блок с доступами).
  • Поправлен поиск по Яндекс.Помощи и Яндекс.Технологиям.

Master 3.6

  • У переводчика от Google изменился формат ссылки на перевод, потому немного поломалась отправка в этот переводчик текста. Поправлено.

Master 3.5

  • Добавлен поиск по двум относительно новым сервисам: Яндекс.Коллекции и Яндекс.Знатоки.
  • Небольшие правки в доступах для расширения.

Servant 3.6

  • Добавлен просмотр ИКСа - новой пузомерки от Яндекса.
  • Добавлен Whois на RIPE NCC - в связи с тем, что Ru-Center не выдает информацию об адресах IPv6.
  • Добавлено сохранение оригинального отступа сверху и восстановление его после удаления элемента textarea с данными.
  • Устранен небольшой баг с санитайзингом некоторых редких урлов.
  • Общие функции расширения вынесены в отдельный файл.

Master 3.4

  • Убит редкий бажок с санитайзингом некоторых ссылок, содержащих знак вопроса.
  • Общие функции расширения унифицированы и вынесены в отдельный файл. Модуль MuSe.Servant ожидает то же в обозримом будущем.

Servant 3.5

  • Функция подсветки текста на странице получила новую клевую плюшку: теперь цвет фона подсветки каждый раз выбирается случайным образом. Это означает, что в том случае, когда на одной странице пользователь запускает подсветку несколько раз для поиска разных ключевых слов, слова эти будет значительно легче отличить друг от друга по цвету фона. Я специально добавил в функцию, генерирующую цвет, сравнение с предыдущим цветом, чтобы отличие было более явным (при схожести функция запускается заново). Впрочем, сравнивается только предыдущий цвет, а не все задействованные цвета, поэтому при третьем и последующих использованиях подсветки на одной странице цвета порой могут быть похожи. Так как вероятность этого не очень большая, я решил не делать более сложную и ресурсоемкую систему с сохранением всех цветов, и генерацией новых с непременным отличием от всех предыдущих.
  • Также в функцию подсветки добавил проверку количества подсвеченного перед добавлением кнопки очистки. Конечно, это мелочь, но при попытке подсветить пробелы ранее кнопка добавлялась, хотя, конечно, не было подсвечено ничего.
  • Подправил сообщение об ошибках при неудачной попытке выполнить контентные сценарии. Старое было более однозначным, но не всегда корректным.
  • Ссылки на проверку тИЦ убраны, показатель более не актуален.

Servant 3.4

  • Ссылка на Whois изменилась; актуализирована.
  • Оператор inurl: языка запросов Яндекса перестал работать; убран.
  • Перевел обмен данными между скриптами с устаревшего API chrome.extension на более корректный chrome.runtime.

Master 3.3

  • Заметил, что попытка забрать выделенный текст из фрейма оканчивается неудачей - возвращается пустота. Переписал функцию, передающую текст в переводчики. Теперь в случае, если взять выделенный текст непосредственно со страницы не удалось, берется стандартное значение. Хоть и без переносов, но все же лучше, чем ничего.
  • Яндекс.Каталог закрыт, потому поиск в данном сервисе убран из расширения.

Master 3.2

  • Чуть подправлена ссылка на поиск в Яндекс.Новостях.
  • Добавлен поиск в Спутнике.
  • Немного изменена сортировка поисковых систем. Наши теперь повыше.

Servant 3.3

  • Обнаружен баг при декодировании методом decodeURIComponent. Баг ликвидирован.
  • Удаление hidereferer вынесено в функцию и сделано немного более умным.
  • Небольшие правки пришлось внести в CSS элемента textarea, добавляемого на страницу для отображения данных, так как нашелся сайт со стилями, несколько искажающими элемент. Теперь такие стили переопределяются расширением.
  • Также по той же причине чуть подправлены стили кнопки для закрытия элемента textarea с данными.

Servant 3.2

  • Несколько неудобно было то, что добавляемые расширением на страницу элементы вроде textarea нельзя было убрать (вернее, убирались они топорно - перезагрузкой страницы). Теперь при добавлении элемента textarea, ссылки, а также при использовании подсветки текста пользователю становятся доступны кнопки, ликвидирующие соответствующие изменения на странице. Кнопки разного цвета и находятся непосредственно около добавленных элементов (за исключением чистилки подсвеченного - она просто добавляется в правый верхний угол страницы). Пожалуй, сложно запутаться, но я также на всякий случай добавил всплывающие подсказки. При добавлении на страницу нескольких одинаковых элементов они удаляются по одному, а не все сразу (за исключением все той же чистилки подсвеченного, которая чистит все).
  • Для реализации очистки подсвеченного мне пришлось соорудить счетчик подсвеченного. И, коль уж все равно пришлось его сделать, я вставил отображение количества найденных и подсвеченных вхождений во всплывающую подсказку для кнопки очистки.

Master 3.1

  • Добавлен поиск по YouTube.

Servant 3.1

  • Добавлена обработка ошибок при декодировании методом decodeURIComponent. Теперь при передаче в него некорректных данных показывается сообщение об ошибке, в котором также есть исходные данные из объекта Error.

Master 3.0

  • Изменение ровно то же, что и в прошлой версии MuSe.Servant: теперь контекстное меню формирует функция, в связи с чем соответствующий код уменьшился примерно в два раза.

Servant 3.0

  • Чувство прекрасного заставило меня написать функцию, добавляющую пункты в контекстное меню. Ранее каждый пункт добавлялся своим отдельным полноценным кодом, вследствие чего в коде было изрядное количество повторяющихся фрагментов. Появление данной функции не скажется примерно ни на чем. Впрочем, код формирования меню похудел почти в два раза, что тоже неплохо.
  • Понял внезапно, что иногда возникает потребность посмотреть HTTP-заголовки уже открытого изображения. По этой причине я добавил еще один способ получения заголовков, который становится доступен только при клике по картинке.
  • Чуть изменена логика запроса заголовков. Теперь в случае возникновения ошибки в процессе отправки запроса расширение пытается сообщить о проблеме в элементе textarea.

Servant 2.9

  • Обнаружил, что расширенный поиск Яндекса ломается при передаче в него кириллицы. Вообще-то ссылка на расширенный поиск с сервисов Яндекса, кажется, довольно давно убрана, поэтому нет гарантий, что он будет хорошо работать. Тем не менее, это довольно удобная штука, потому я счел возможным поковыряться и встроить в расширение костыль, который проблему устраняет. Уберу из расширения, когда совсем уж поломается.

Servant 2.8

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

Servant 2.7

  • Появилась возможность посчитать количество дней, прошедших с указанной даты до текущего дня. Также расширение пробует очень простенько посчитать примерное количество прошедших месяцев. Все возможные способы записи дат я не счел нужным учитывать. Расширение работает с двумя: с человеческой записью, принятой в России (дд.мм.гггг) и с записью, предназначенной для машин (гггг-мм-дд). Человеческую сокращенную запись, где год указывается без века, расширение также понимает, и добавляет век самостоятельно по такой логике: если год меньше текущего, либо равен ему, то добавляется текущий век, если больше - предыдущий (то есть 31.01.17 превращается в 31.01.2017, а 31.01.19 - в 31.01.1919).

Servant 2.6

  • Добавлена возможность искать определенное изображение по урлу в Яндекс.Картинках. При разработке логики преследовалась цель получить максимальную практическую пользу. Со ссылками все ясно. С полноразмерными картинками - тоже (расширение вытаскивает адрес картинки и пробует искать его). Чуть запутаннее ситуация, если картинка является превьюшкой, то есть ссылкой на более крупное изображение. Искать мелкую картинку не очень полезно (кстати, мелочевку поисковики иногда намеренно не индексируют), в связи с чем расширение пробует работать с целью ссылки, а не с миниатюрой. Впрочем, если очень нужно поработать с миниатюрой, достаточно открыть ее в отдельной вкладке (фактически надо просто сделать так, чтобы превьюшка не была ссылкой).
  • Также появилась возможность искать картинку по урлу в поиске по картинкам от Bing. Логика та же. Добавил бы Google, но у него я такой плюшки не нашел.

Servant 2.5

  • Добавлена возможность посмотреть HTTP-заголовки. Вообще изначально была идея получать размер документа по ссылке (иногда бывает нужно знать до скачивания), но увы, Content-Length возвращается далеко не всегда.
  • Появилась возможность превратить в ссылку (элемент a) любой выделенный текст. Это позволит работать полноценно даже с теми урлами, которые размещены на странице как обычный текст.

Master 2.4

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

Servant 2.4

  • Доработан алгоритм отображения данных, которые в прошлой версии стали выводиться в textarea. Теперь расширение пробует сдвинуть при добавлении textarea весь контент страницы пониже, чтобы не загораживать полезные элементы. Иногда срабатывает. Также прописано очень большое значение свойства z-index (1999999999), ибо раньше иногда данные загораживались элементами сайта.
  • Добавлена обработка ошибок при добавлении textarea с данными. Иногда расширение не имеет доступа к странице, и внедрение в код невозможно. Ранее информация в таких случаях просто не отображалась. Теперь выводится модальное окно либо с данными, либо с сообщением об ошибке.
  • Весь блок служебных запросов к поиску по блогам Яндекса удален. Больше не нужен.
  • Добавлена возможность делать служебные запросы к Яндекс.Поиску с использованием оператора rhost (см. язык запросов Яндекса). Расширение автоматически разбирает хост и собирает в обратном порядке.

Servant 2.3

  • Вместо модальных окон теперь результат дополнительных манипуляций с данными (количество символов, декодирование) выводится в элементе textarea. В основном - для того, чтобы иметь возможность работать с данными дальше: скопировать, послать куда-то и проч.
  • В связи с предыдущим пунктом добавлена возможность не только декодировать, но и кодировать символы при помощи метода encodeURIComponent.
  • Добавлена весьма нужная (иногда) возможность подсветить на текущей странице все вхождения выделенного текста. Подсвечивается найденное желтым цветом, а цвет текста на всякий случай делается черным. В процессе тестирования обнаружена дополнительная фича: можно подсветить не только какой-то один текст, но и вообще любое (в разумных пределах) количество различных текстов на одной и той же странице - по очереди, конечно.

Master 2.3

  • Изменение исключительно логическое: ссылка на поиск в Яндекс.Каталоге переехала пониже, во второй блок ссылок. Там ее нахождение мне кажется более правильным.

Servant 2.2

  • Добавлена великолепная и весьма нужная штука: возможность внедрить на текущую страницу простой текстовый элемент textarea (можно растянуть мышью) с содержимым адресной строки, что позволяет работать с этим содержимым совершенно так же, как с любым другим текстом на странице. К сожалению, пока нет возможности (либо я просто не нашел) заставить расширение работать с адресной строкой так же, как с выделенным / ссылками, поэтому пришлось сделать такой костылик. Понятно, что для выбора пункта меню, нужно каким-то образом его вызвать: выделение чего угодно и правый клик, либо правый клик по любой ссылке. Да, немного странный способ, но еще страннее мне показалось делать для такой мелочи отдельное расширение.
  • Добавлена дополнительная обработка ссылок для просмотра тИЦ. Так уж получилось, что наличие протокола (и кое-чего еще) предлагает пользователю полюбоваться на страницу 404, а вовсе не на значение тИЦ. Лишнее теперь отрезается.

Master 2.2

  • Добавлен поиск по картинке от Яндекса.
  • Добавлен поиск по картинке от Google.
  • Добавлен поиск по картинке от TinEye.

Servant 2.1

  • Добавлен контекст «клик по ссылке правой кнопкой мыши», работающий совершенно так же, как и в модуле MuSe.Master. В отличие от, в модуле MuSe.Servant это весьма полезно.
  • Добавлен расширенный поиск от Яндекса.

Master 2.1

  • Добавлен контекст «клик по ссылке правой кнопкой мыши». При таком использовании расширение ищет ссылку из атрибута href. В данном случае это сделано для единообразия расширения, так как в модуле MuSe.Master польза от поиска ссылки стремится к нулю.

Servant 1.5

  • Добавлен поиск по сайту Яндекс.Технологии (сие есть техническая документация).
  • Работа со стандартными файлами robots.txt и favicon.ico стала умнее: теперь при наличии в выделенном тексте протокола таковой сохраняется, а при отсутствии - добавляется HTTP.

Servant 1.4

К сервису Яндекс.Поиск можно делать служебные запросы при помощи операторов:

  • site:
  • host:
  • url:
  • inurl:

К сервису Яндекс.Поиск по блогам можно делать служебные запросы при помощи операторов:

  • server:
  • journal:
  • author:
  • url:

Показатель тИЦ сайта можно узнать двумя способами:

  • В Яндекс.Каталоге (наиболее надежный вариант)
  • Через графический информер (денежку)

Имеется поиск по порталу поддержки:

  • Яндекс.Помощь

Можно открыть стандартные файлы, лежащие в корне сайта:

  • robots.txt
  • favicon.ico

Whois-запрос делается к:

  • Ru-Center (nic.ru)

Полезные скрипты (данные выводятся в модальном окне):

  • Количество символов в выделенном
  • Декодирование при помощи метода decodeURIComponent

Master 1.1

Резко поискать можно в следующих поисковых сервисах Яндекса:

  • Яндекс.Поиск (обычный веб-поиск)
  • Яндекс.Картинки
  • Яндекс.Видео
  • Яндекс.Каталог
  • Яндекс.Поиск людей
  • Яндекс.Поиск по блогам

Также запросы можно сделать к сервисам:

  • Яндекс.Новости
  • Яндекс.Музыка
  • Яндекс.Маркет
  • Яндекс.Карты
  • КиноПоиск

Перевести выделенный текст можно через:

  • Яндекс.Переводчик
  • Google Переводчик

Поискать также можно в иных поисковых сервисах:

  • Google
  • Bing
  • Поиск@Mail.Ru
  • Yahoo!

И:

  • Википедия