nfmzkvmx

Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Обновлено: 28.08.2018 Версия: 4.0.0 - 3.5.0 - Изменена логика поиска постов (теперь только regexp.test(string) вместо разнородицы с indexOf() и toLowerCase() и того же test()) Различные мелкие изменения, правки, оптимизации. Поиск без регистра включен по умолчанию. Добавлен оператор исключения NOT (см. в описании ниже) - 4.0.0 - Исправление мелких ошибок, разные мелкие изменения в коде. Улучшена обработка ошибок. Начало нового поиска, до завершения текущего, теперь не смешивает результаты. Добавлена подсветка совпадений в найденном (см. в описании ниже и в примечаниях). Отключена по дефолту. Код скрипта Код на Greasyfork, чтобы автообновлялось (см. примечания ниже). Скрипт добавляет кнопку под именами пользователей, по которой запускается поиск постов пользователя(-ей) по их именам и/или тексту постов в текущей теме. Результат выводится прямо на странице, под спойлером. Для Хромиумных >= 45 (см. примечания ниже) и ФФ >= 34 (примерно) Совместимость с более ранними версиями браузеров не планируется. Работает в Gresemonkey / Violentmonkey / Tampermonkey. Дополнительные возможности: - Клики по кнопке под именем пользователя:
Ctrl + ЛКМ: Добавить этого пользователя в задание для поиска. (С Ctrl'ом кликаем по кнопкам под именами - добавляем, отпускаем, кликаем ЛКМ или ПКМ (для вывода формы поиска по тексту с подстановкой имен форму и, при наличии выделенного, и текста) по любому из добавленных (дубли уберутся автоматом) - запускаем поиск) ЛКМ: Поиск постов пользователя(-ей) (если выделен текст, то будет выведен диалог с вопросом о запуске поиска по имени пользователя, из выделенного, или по тексту постов (с открытием окна для редактирования)) ПКМ: Показать форму для ввода имен пользователей и текста для поиска (если был выделен текст - он подставится в форму, имя также, если не отключено в опциях (есть возможность задать имя для подстановки, независимо от того под чьим ником нажата кнопка (см. опции в коде)) - Добавление имен пользователей из заданного списка (задается в опциях скрипта, в коде) в форму поиска
- [опционально]Подсветка совпадений в результатах поиска по тексту (цвет задается в опциях, в коде)
- [опционально]Исключение, при поиске по тексту постов, цитат и подписей пользователей
- [опционально]Замена картинок в найденных постах на ссылки на них (для экономии трафика)
- [опционально]В ФФ также поиск можно вызвать из контекстного меню страницы (если выделен текст, то выведется диалог с вопросом искать текст или имя из выделенного, если нет - выведется форма поиска по тексту и/или именам)
- [опционально]Запуск поиска по ПКМ на ссылках ведущих на профиль пользователя
- [опционально]Прокрутка страницы к результатам поиска
- [опционально]Автоподстановка имен в фору в диалоге поиска по тексту
- [опционально]Вывод уведомления об окончании поиска с прокруткой страницы к найденному при подтверждении
- [опционально]Автораскрытие спойлера с результатами
- [опционально]Сортировка результатов по дате постов (по умолчанию: от новых к старым)
Поиск по тексту (запускается из диалогового окна, вызываемого по ПКМ по кнопке под именами пользователей или из контекстного меню страницы в ФФ. Также, при наличии выделенного на странице, по ЛКМ по кнопке под именами пользователей (с диалогом выбора: искать имя, из выделенного, или текст): Поиск с регулярными выражениями: Регулярные выражения вводить включив чекбокс в диалоге поиска. Без начального и закрывающего слэша. Для ввода флагов - отдельное поле, (Регулярки не проверяются на валидность!) Поиск без регулярок: раз два три - искать любую из частей, разделенных пробелами, в посте раз два OR три OR пять - искать любую из фраз: "раз два", "три", "пять" раз два AND три AND пять - в посте должны быть все этм фразы "раз два три" - (в двойных кавычках) искать фразу целиком Оператор исключения NOT:, Имеет приоритет над остальными. Ставить после текста (с любыми операторами, без них, фразой) для поиска, Опции "Точное соответствие" и "Без учета регистра" - влияют и на слова исключения, раз два OR три OR пять NOT шесть NOT семь восемь - найдет посты удовлетворяющие условиям поиска, за исключением тех, в которых есть "шесть" или "семь восемь", NOT шесть NOT семь - найдет любые посты без этих слов, раз OR три NOT шесть NOT семь AND восемь - найдет посты удовлетворяющие условиям поиска, за исключением тех, в которых есть "шесть" или "семь" И(!) "восемь", Комбинировать операторы пока нельзя. За исключением NOT (см. выше). Примечания: Поиск по тексту постов идет по умолчанию без учета регистра. Для поиска с учетом - убрать чекбокс в диалоге. При поиске по тексту постов исключаются цитаты в них и подписи пользователей (можно изменить, как в опциях скрипта, так и разово, из окна). При поиске по тексту без регулярок все различия в знаках пробелов, переносов и табуляций (и их колличестве) - игнорируются. Слово "поле" - найдется и в "Наполеон", если не включен чекбокс "Точное соответствие" в окне поиска. Тогда находит слова/фразы только если они не начинаются и не оканчиваются на буквенно-цифровые символы. Включение подсветки результатов, при поиске по тексту, сильно влияет на производительность (особенно при большом кол-ве совпадений) и может поломать верстку постов (если, например, часть найденной фразы находится внутри одного элемента, а часть - за его пределами). Подсветка высветит совпадения и в цитатах / подписях, даже при их исключении из поиска (только подсветит, на результаты поиска не повлияет) Имена в форму поиска вводить без учета регистра, разделяя запятой Имена с пробелами - ищутся и с пробелом и с _. Запуск нового поиска (или клик по заголовку спойлера) до окончания текущего, приведет к завершению всех текущих соединений. Находящиеся в очереди, и еще не открытые, все еще продолжат устанавливаться, но выводить результат в тело спойлера будут только если не начат новый поиск. Опции задаются в коде скрипта (см. комментарии) Опции будут сбрасываться на дефолтные при обновлении скрипта. Если код был отредактирован (например опции) пользователем после установки (при установке с greasyfork), то автоматическое обновление для него может отключаться в некоторых аддонах (в GM, например). В этом случае проверку надо запускать принудительно (для GM - из контекстного меню скрипта, в списке установленных, на странице аддонов). Для Хромиумных старых версий возможно потребует включения "Экспериментальные функции веб-платформы" и/или "Поддержка экспериментального javascript" в chrome://flags) (на данный момент - стили для старых версий - поломаны, поправлю в ближайшем будущем) Конфликт со скриптом "Ru-Board Helper": Найти и заменить в "Ru-Board Helper" Код: if ((aTag.className = 'small') | на Код: if ((aTag.className == 'small') | О других проблемах пишите в теме, со ссылкой на конфликтующий скрипт, по возможности поправлю. Всё очень сыро, криво, и пока не закончено. Создано исключительно в рамках перепоя и бессонницы. Уже не так сыро. :) Версия почти окончательная. | Всего записей: 186 | Зарегистр. 09-04-2017 | Отправлено: 00:10 14-12-2017 | Исправлено: nfmzkvmx, 11:05 28-08-2018 |
|