LINUX.ORG.RU

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

 , ,


23

14

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

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

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


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

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

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

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

★★★

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

Ответ на: комментарий от uin

накидывай(те) еще репортов

Рано ещё. По сравнению с 2.6.4 всё пока ГУД. Время надо, чтобы напороться на что то, типа сломавшийся back.

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

Оокеей.. накидывай(те) еще репортов

Отвалился вот этот юзерскрипт – https://greasyfork.org/ru/scripts/26997-lor-spoiler

Но он с Markdown всё равно как-то кривовато работает. Может можно добавить такое сворачивание в аддон? Опционально, конечно.

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

Было бы не плохо.

Лучше свой userscript со спойлерами в lorify пристрой (опционально конечно). Тоже было бы неплохо.

Deleted
()

типа сломавшийся back.

Это где это?

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

Так?

Ясен пень. На git шмякнуть? Ты «автор», тебе решать. Я то шмякну, если ты за.

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

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

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

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

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

Оокеей.. накидывай(те) еще репортов

Какая то хрень в редактировании.

При редактировании при попытке запостить:

https://i.imgur.com/yj3R6m1.png – соглашаюсь

https://i.imgur.com/2QZwKPY.png – ловлю это, картинкой т.к. ввод заблокирован и идет сразу обновление страницы.

После обновления страницы постится новый комментарий.

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

Да не к спеху, перетерпим) Спасибо что занимаешься сабжем, без неё как без рук уже.

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

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

В адресной строке у lorsourse скрипта адрес изменяется на ссылку выделенного комментария из кнопки [Ссылка] – этот костыль недавно приделали наконец, чтобы можно было копировать адрес комментария из адресной строки не смотря на настройки количества комментариев на странице (иначе у пользователей с разными настройками ссылка ломается, анонимов не касается).

А у нас сейчас там адрес темы лишь. Косяк.

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

На гитхаб к сожалению пока зайти не могу, там требует верификацию просит, а на какой ящик регестрировал не помню.

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

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

Вот тот же самый код но независящий от плагинов с жквери (работает):

// ==UserScript==
// @name        LOR spoiler
// @namespace   linux.org.ru
// @description Add spoiler functionality
// @include     https://linux.org.ru/*
// @include     https://www.linux.org.ru/*
// @version     2
// @run-at      document-start
// @grant       none
// ==/UserScript==

document.addEventListener('DOMContentLoaded',function(){
  console.log('LOR spoiler is ON');

  // spoiler
  var types = ['cut', 'code', 'pre'];
  var blocks = {
    cut: document.querySelectorAll('[id ^= cut]'),
    code: document.querySelectorAll('.code'),
    pre: document.querySelectorAll('pre:not([class])')
  };

  var total_block_cnt = blocks.cut.length + blocks.code.length + blocks.pre.length;
  var line_limit = total_block_cnt > 2 ? 5 : 15;

  var spoiler_prefix_on = '>>> ';
  var spoiler_prefix_off = '<<< ';

  var tpl = 
    '<span class="sign">'+
      '<span>'+ spoiler_prefix_on +'</span>'+
      '<a '+
      'id="spoiler-hide-{TYPE}_{ID}" '+
      'href="javascript:void(0);" '+
      'onClick="javascript:var block=document.getElementById(\'hide-{TYPE}_{ID}\'); var prefix=this.previousElementSibling;'+
        'if (block.style.display ===\'none\') {'+
          'block.style.display =  null  ; prefix.innerText=\''+spoiler_prefix_off+'\'; } else {'+
          'block.style.display =\'none\'; prefix.innerText=\''+spoiler_prefix_on+'\'; };">'+
      '{TYPE}-spoiler'+
      '</a>'+
    '</span><br/>';

  // change content
  if (total_block_cnt > 0) {
    for (var i = 0; i < types.length; i++) {
      var TYPE = types[i];
      
      Array.prototype.slice.call(blocks[TYPE], 0).forEach(function(block, ID) {
        // limit
        var no_hl = block.querySelector('pre.no-highlight code');
        var cur_blk = no_hl ?  no_hl : block;
        if (cur_blk.textContent.split("\n").length <= line_limit) return;

        // add spoiler
        var spoiler = tpl.replace(/\{TYPE\}/g, TYPE).replace(/\{ID\}/g, ID);
        block.setAttribute('id','hide-'+TYPE+'_'+ ID);
        block.insertAdjacentHTML('afterend', spoiler);
        block.style = 'display: none;';
      });
    }
  }
});

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

Лучше сделай 0 пикселей и сворачивать полностью в строку с нажав на которую спойлер разворачивается, внешнее отображение мне пофиг, на твой вкус.

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

Да, скрипт не мой, кто автор я уже забыл. Был бы я кодером я бы сам починиль) Потому и прошу реализовать в составе комплексного решения – даже если тебе надоест, может кто подхватит и функционал останется.

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

Ах, да. Еще один скрипт можешь реализовать?

https://i.imgur.com/3gFoolR.png

https://greasyfork.org/ru/scripts/27386-linkify-user-remarks

И еще, местное время, мне не нужно, я МСК, но людям будет удобно:

https://greasyfork.org/ru/scripts/18078-local-time-for-lor

Отдельно хочу поблагодарить всех авторов и участников написания юзерскриптов для ЛОРа, и особенно тех, которые я собрал здесь – https://amalofeev.ru/dlyalora.html

Мне с вашей помощью пользоваться форумом стало минимум намного приятнее. К сожалению я вовремя не озаботился сохранением вопросом указания первоначального авторства и отслеживания изменений, потому благодарю всех пачкой. :-)

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

Я не разработчик движка сайта

Я знаю. Но в движке «этого» не будет. Мож хоть в расширении, хотя бы на сеанс?

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

Задержка отправки поста с возможностью отмены

А можно это сделать отключаемым? или уменьшить время задержки?

Ajax постинг без перезагрузки страницы

Было бы неплохо сразу после отправки форсировать подгрузку свежих постов и скроллить к только что отправленному.

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

После обновления страницы постится новый комментарий.

Да уж. Действительно хренть какая то! Похоже не стоит пока ничего редактировать.

ЗЫ: «Либо сразу, либо никогда».

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

занят другими делами

Все тестинги станут некритичными, если будет «выключатель» надстройки через «иконку», а не через «диспетчер расширений», т.е. быстро «включил/выключил/сравнил».

Deleted
()
Ответ на: комментарий от bvn13
  • в ФФ перестала работать отправка сообщения по Контрол-Энтер

  • в ФФ если жать мышью на добавить сообщение, появляются какие-то мигающие «…», потом форма ввода сообщения пропадает, а сообщение может не появиться.

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

2.7.4.

  • Back при переходе на другую страницу опять не всегда работает. То есть переходит на начало страницы, а не на сообщение с ссылкой, с которого уходил.
  • После редактирования сообщения «уносит» в начало страницы, но редактирование работает.
Deleted
()
Ответ на: комментарий от bvn13

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

eternal_sorrow ★★★★★
()

Что то у меня всё сломалось.
1. Не сбрасывается счётчик непрочитанных уведомлений в шапке сайте.
2. Перестал нормально переходить по ссылке на комментарий. Тема открывается, но не прокручивает к нужному комментарию.

Chromium 75.0.3770.90
Violentmonkey v2.10.5
lorify-ng v2.7.4
ox55ff ★★★★★
()
Ответ на: комментарий от ox55ff

Комментарий долго отправляется. В это время вместо текста кнопки бегают точки. И в консоли браузера ошибка:

Uncaught TypeError: Cannot read property 'toString' of undefined
    at Object.set [as Code Block Short Size] (<anonymous>:1809:47)
    at setValues (<anonymous>:1877:97)
    at <anonymous>:2023:5

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

@uin, сломана отправка новой темы:

  • не работает предпросмотр, ругается на пустую строку заголовка, он не пустой (до проверки формы теме и тегов не доходит)
  • есть кнопка «очистить» есть, но тоже не работает
  • отвалилась подсказка по существующим тегам, которая появляется по мере набора
  • «сохранить в черновики» выбросило на 404 страницу, в черновиках темы нет
  • «отправить» так же как и с черновиком – сломано полностью.

:(

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


Кнопка [Вверх] пропала (в правом нижнем углу страницы).


uin, или это только у меня?

Пропала. Факт.

hbars ★★★★★
()

Opera 62.0.3331.18

При переходе по ссылке в «Уведомлениях» просто открывает страницу с темой, без перекидывания к ответу и без его выделения.

Версия скрипта: 2.7.4 С использованием ViolentMonkey 2.10.5 (посредством Install Chrome Extensions 2.5.7).

grem ★★★★★
()

Версия 2.7.4 в ФФ на линуксе - невозможно создать тему - неверный урл. Отредактировать ОП тоже нельзя.

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