LINUX.ORG.RU

lorify-ng новое универсальное расширение для LOR -а

 , ,


25

18

Это реинкарнация проекта lorify - скрипт+расширение, реализующее функционал схожий с тем, что добавляет куклоскрипт для имиджборд.

Расширение умеет:

  • Получать сообщения от сервера через WebSocket и обновлять контент на странице (новые комментарии, уведомления, правки)
  • Индикацию на фавиконе вкладки о количестве новых комментариев (очищается даблкликом в любом месте страницы);
    Цвета информируют о состоянии соединения с сервером (зеленый - ок, желтый - отсоединился, красный - сбой)
  • Системные оповещения о уведомлениях пользователя (для юзерскрипта требуется «разрешить сайту www.linux.org.ru показывать уведомления»)
  • Динамическая навигация по страничкам темы (по умолчанию подгружается только текущая открытая и последняя, в настройках можно задать количество подгружаемых заранее)
  • Само собой показ превью постов и ссылки указывающие на комментарии с ответами
  • Кнопки разметки и хоткеи (гайд по использованию)
  • Просмотр, масштабирование и поворачивание картинок, как для встроенных превью в топике так и доступных в тексте комментариев по прямым ссылкам (если url картинки имеет непрямой вид к нему можно добавить хэштег с названием и расширением картинки imghost.orc/24dfuh5d1#скриншот.png)
  • Цитирование с форматированием, как всего комментария так и выделенного в нем текста


Доступны следующие варианты установки

  • Юзерскрипт(тестировался с Violentmonkey)
  • Аддон для Firefox
  • Chrome (платный, нужно $5)
    • можно так же установить вручную включив на странице chrome://extensions режим разработчика и выбрав папку с исходниками расширения в качестве распакованного

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

>>> Страница проекта на GitHub

★★★★

Последнее исправление: uin (всего исправлений: 10)

Браузер Firefox расширение lorify-ng v3.3.6 Не работают кнопки добавить тему в избранное и отслеживать, при отключении расширения все работает.

Wind ★★★
()
Ответ на: комментарий от Wind

Это, как и указанная мною проблема, исправлено в версии 3.3.7. По непонятным причинам её до сих пор не опубликовали в AMO, но она есть.

token_polyak ★★★★★
()
2 декабря 2023 г.
3 января 2024 г.

Написал на github багрепорт.

Werenter ★★★
()
17 марта 2024 г.

chrome предлагает установить приложение в ходе лазанья по форуму.
это это? или опять лор поломали?
новый тред создавать не хочется - или надо?
sudo cast hobbit

etwrq ★★★★★
()
25 июля 2024 г.
Ответ на: комментарий от etwrq

Я ничего не делал, возможно кто-то у кого есть доступ к хромостору собрал с гитхаба и залил.

uin ★★★★
() автор топика
Ответ на: комментарий от etwrq

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

uin ★★★★
() автор топика
Ответ на: комментарий от uin

т.е. подпись должна поменяться, Вы же не шарили свою PKI?

etwrq ★★★★★
()
27 июня 2025 г.

Если нажать «ответить», имеем разметку LORCODE (у меня по дефолту), а по факту видим markdown. Напрягает всё время дергать.
Что скрипт, что аддон.

hbars ★★★★★
()
Ответ на: комментарий от hbars

Исправил.

Расширение и скрипт обновлены до версии 3.4.1
Основные изменения:

  • Опция кнопок разметки переехала в меню (так же как на лоре).
    ВАЖНО:Настройка в скрипте/расширении не влияет на настройки вашего профиля на сайте, она влияет исключительно на кнопки разметки и форматирование при цитировании (поэтому их там тоже 3, а не 2).
  • Настройка подсветки кода переехала в сами блоки кода (кнопочка появляется при наведении)
    ПОЧЕМУ ТАК:дефолтный выпадающий список в меню плохо подходит для выбора талмуда на 100 стилей с малопонятными абстрактными названиями. Поэтому было реализовано кастомное меню с предпросмотром при наведении на элемент , и самое главное с отметкой/прокруткой до текущего выбранного.
  • Поддержаны вот эти новые картиночки крутилочки, как выше просили
  • Нескучные кнопки вместо сообщить/удалить по которым на телефоне запросто пальцем попасть нечаяно.


Ну и самое главно изменение - manifest v3 работал неполноценно, из за того что у него несколько по другому устроена песочница. Теперь вроде все отлично работает, но что хотелось по нему сказать за что же его все не любят:

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

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

uin ★★★★
() автор топика
Ответ на: комментарий от uin

Ах да, самое главное.

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

uin ★★★★
() автор топика

Использую расширение заради единственной фичи - «Показ превью постов и ссылки указывающие на комментарии с ответами». Очень удобно в треде получать представление об обсуждении, наводя мышкой на «Ответ на» и на «Ответы», без прыжков по всем страницам темы.


Еще одну важную для меня фичу «запоминание позиции в треде», получаю посредством расширения LOR panel. Правда там есть минус, если тред уже прочитан ранее, то переходя на коммент по ссылке с соседней темы, тебя выкинет в самый низ, что не есть хорошо.

krasnh ★★★★★
()
Ответ на: комментарий от krasnh

А что ты хочешь то? перенести этот функционал туда, или оттуда сюда перенести фичи?

uin ★★★★
() автор топика
Ответ на: комментарий от uin

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

Ну да, если в lorify-ng будет это самое запоминание позиции, то незачем держать «LOR panel». Тем более, там это фича работает несовершенно, о чем я уже писал, да и автор покинул ЛОР.

krasnh ★★★★★
()
Последнее исправление: krasnh (всего исправлений: 1)
Ответ на: комментарий от krasnh

С этим пока не успеваю, в следующей версии добавлю.

миниапдейт 3.4.2:

Что бы добавить новые настройки пришлось переделать меню.
Настройка «запоминать позицию» пока ничего не делает.
А вот опция «Очищать по нажатию» в соотв. секции, сбрасывает счетчик уведомлений как при клике на само уведомление так и при переходе на страницу (как на лоре сделано).

uin ★★★★
() автор топика

Глюк странный заметил на днях. С активным дополнением не смог залогиниться на сайт. У меня на этот момент куки протухли.

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

Если выключить расширение, то авторизоваться получается.

В консоли вот такое:

TypeError: form.action.substrring is not a function lorify-ng.user.js:2654:28
    onsubmit moz-extension://207b0627-ac11-4049-87a9-aa8902b327cf/lorify-ng.user.js:2654

Версия 3.4.2 от 18 августа.

Radjah ★★★★★
()
Последнее исправление: Radjah (всего исправлений: 2)
Ответ на: комментарий от Radjah

Если выключить расширение, то авторизоваться получается.

Да, тоже заметил. Это произошло после последнего обновления расширения.

Причем, если пытаться логиниться через кнопку «Вход» в правом верхнем углу сайта, то ошибка. Если же через https://www.linux.org.ru/login.jsp, то норм.

krasnh ★★★★★
()
Последнее исправление: krasnh (всего исправлений: 1)

платный, нужно $5

Кто-то уже предлагал скинуть тебе 5 баксов, чтобы ты выложил? Если нет, то предлагаю

KivApple ★★★★★
()
Ответ на: комментарий от krasnh

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

Radjah ★★★★★
()
Последнее исправление: Radjah (всего исправлений: 1)
15 ноября 2025 г.

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

Но я использую расширение Imagus, так что, в принципе, не проблема.

krasnh ★★★★★
()
24 февраля 2026 г.
Ответ на: комментарий от MozillaFirefox

Ещё расширение подправил, чтобы заработало, а то уже полгода прошло. 😫

Radjah ★★★★★
()
12 мая 2026 г.
Ответ на: комментарий от Loki13

Чуть причесал и пофиксил манифест расширения, чтоб AMO не ругался. Может, кому-то пригодится, или даже автор изволит принять в апстрим:

diff --git a/lorify-ng.user.js b/lorify-ng.user.js
index 53c371c..6fea7bc 100644
--- a/lorify-ng.user.js
+++ b/lorify-ng.user.js
@@ -4,7 +4,7 @@
 // @namespace   https://github.com/OpenA
 // @include     https://www.linux.org.ru/*
 // @include     http://www.linux.org.ru/*
-// @version     3.4.2
+// @version     3.4.2.1
 // @grant       none
 // @homepageURL https://github.com/OpenA/lorify-ng
 // @updateURL   https://github.com/OpenA/lorify-ng/blob/manifest_v3/lorify-ng.user.js?raw=true
@@ -2698,6 +2698,8 @@ function handleCommentForm(form) {
 	const FACT_PANNEL  = form.querySelector('.form-actions');
 	const NODE_PREVIEW = _cnode('div', { id: 'commentPreview' });
 	const MARKUP_PANEL = _cnode('div', { id: 'markup-panel' });
+	const MARKUP_LABEL = _cnode('span', { className: 'markup-mode' });
+	let MARKUP_TITLE = MARKUP_LABEL;

 	for (let attrs of [
 		{ lorcode: 'b'  },
@@ -2743,7 +2745,21 @@ function handleCommentForm(form) {
 			}
 		}
 	});
-	TEXT_AREA.parentNode.firstElementChild.append(MARKUP_PANEL);
+	const setupMarkupPanel = () => {
+		const control = TEXT_AREA.closest('.control-group') || TEXT_AREA.parentNode;
+		const tab = control.querySelector('.markup-tabs__tab.active');
+		const legacy = TEXT_AREA.parentNode.firstElementChild;
+
+		if (tab) {
+			MARKUP_TITLE = tab;
+			tab.after(MARKUP_PANEL);
+		} else if (legacy && legacy !== TEXT_AREA) {
+			legacy.append(MARKUP_LABEL, MARKUP_PANEL);
+		} else {
+			TEXT_AREA.before(MARKUP_LABEL, MARKUP_PANEL);
+		}
+	};
+	setupMarkupPanel();

 	let btn_cancel = form.elements.cancel;
 	if(!btn_cancel ) {
@@ -2951,7 +2967,7 @@ function handleCommentForm(form) {
 	);

 	const mode_change = i => {
-		MARKUP_PANEL.previousSibling.textContent = `Разметка ${i ? 'LORCODE' : 'Markdown'}`
+		MARKUP_TITLE.textContent = `Разметка ${i ? 'LORCODE' : 'Markdown'}`
 		MARKUP_PANEL.className = i ? 'lorcode' : 'markdown';
 	}
 	Object.defineProperty(Dynamic_Style, 'Markup Mode', {
diff --git a/manifest.json b/manifest.json
index e4bf0af..6425e28 100644
--- a/manifest.json
+++ b/manifest.json
@@ -1,7 +1,7 @@
 {
   "manifest_version": 3,
   "name": "lorify-ng",
-  "version": "3.4.2",
+  "version": "3.4.2.1",
   "description": "Расширение для сайта linux.org.ru поддерживающее загрузку комментариев через технологию WebSocket, а так же уведомления об ответах через системные оповещения и многое другое.",
   "options_ui": {
     "open_in_tab": true,
@@ -11,7 +11,13 @@
     "default_icon": "icons/loriko-64.png",
     "default_popup": "settings.html"
   },
+  "browser_specific_settings": {
+    "gecko": {
+      "id": "сгенерить свой UUID или придумать ID"
+    }
+  },
   "background": {
+    "scripts": ["background.js"],
     "service_worker": "background.js"
   },
   "icons": {

а то сходу я не разобрался, что у тебя патч обёрнут - изменённый файл указан как оригинал и наоборот.

token_polyak ★★★★★
()
Последнее исправление: token_polyak (всего исправлений: 1)
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.