[{{mminutes}}:{{sseconds}}] X
Пользователь приглашает вас присоединиться к открытой игре игре с друзьями .
Ctrl предыдущая следующая Ctrl Страницы
1 2 3

Форум «Программное обеспечение» / Скрипт расширяющий возможности чата

Душа_Чата Сообщение #1 2 апреля 2023 в 23:41
Гонщик
1
Предлагаю желающим воспользоваться этим скриптом для чата, который расширяет его возможности.
Распишу попунктно что он умеет делать.

1. Просматривать количество текущих пользователей в чате.
2. Уведомлять о поступивших сообщениях звуковым сигналом или голосовым зачитыванием.
3. Уведомлять о личных сообщениях. Требуется настройка возможных вариаций вашего никнейма, который может быть использован при обращении к вам.
Настройка происходит в const mentionKeywords внутри кода. Первое значение myNickname в массиве mentionKeywords не нужно менять. Менять необходимо последующие значения в кавычках.
Вы так-же можете ничего не указывать кроме обязательного myNickname. Важно, чтобы в таком случае после myNickname не стояло запятой. Как только вы добавляете вариации слов, после myNickname обязательно должна стоять запятая и слова оборачиваете в кавычки.
Пример с дополнительными словами возможного к вам обращения.
  const mentionKeywords = [
    // Actual nickname
    myNickname,
    // Possible nickname keywords
    'Душа',
    'Панчер'
  ];

Пример того, когда вам не нужно заполнять дополнительные слова. Обязательное остаётся.
  const mentionKeywords = [
    // Actual nickname
    myNickname
  ];

4. Возможность подсвечивать в чате слова обращения к вам, которые были занесены в mentionKeywords.
5. Можно ограничивать звуковые оповещения и голосовое зачитывание только для личных сообщений переключателем режима. (все), (только личные).
6. Удалять нежелательные сообщения в чате единичным выделением правой кнопкой мыши или же множественным выделением с зажатой правой кнопкой мыши и нажатием на кнопку Delete.
7. Отправлять картинки в чат ссылкой, после чего происходит конвертация ссылки в кликабельное превью, после чего при клике на превью левой кнопкой мыши открывается картинка в крупном масштабе.
С зажатой средней клавишей мыши можно водить изображение по экрану, а прокручивая колесо мыши масштабировать.
8. Отправлять ютуб ссылки в чат, после чего оно конвертируется в iframe, в следствии чего можно проигрывать видео ролики прямо в чате не переходя в новую вкладку.
9. Оповещать о всех зашедших и вышедших пользователях тултипами без сигналов.
10. Оповещать о всех зашедших и вышедших отслеживаемых пользователей тултипами и звуко-голосовым оповещением.
Добавление отслеживаемых пользователей происходит в const usersToTrack внутри кода.
  // Define the users to track and notify with popup and audio
  const usersToTrack = [
    { name: 'Даниэль', gender: 'male', pronunciation: 'Даниэль' }, // ------- 01
    { name: 'певец', gender: 'male', pronunciation: 'Певец' }, // ----------- 02
    { name: 'Баристарх', gender: 'male', pronunciation: 'Баристарх' }, // --- 03
    { name: 'madinko', gender: 'female', pronunciation: 'Мадинко' }, // ----- 04
    { name: 'Переборыч', gender: 'male', pronunciation: 'Переборыч' }, // --- 05
    { name: 'Advisor', gender: 'male', pronunciation: 'Адвайзер' }, // ------ 06
    { name: 'Хеопс', gender: 'male', pronunciation: 'Хеопс' }, // ----------- 07
    { name: 'Рустамко', gender: 'male', pronunciation: 'Рустамко' }, // ----- 08
    { name: 'ExpLo1t', gender: 'female', pronunciation: 'Эксплоит' }, // ---- 09
    { name: 'инфо-пчелы', gender: 'male', pronunciation: 'Инфо-Пчёлы' }, // - 10
    { name: 'Razmontana', gender: 'male', pronunciation: 'Размонтана' } // -- 11
  ];

11. Безотказная прокрутка чата, которая умудряется прокручивать даже таких гигантов как превью изображения и ютуб iframe. Дефолтный функционал сайта не справляется с ними.
12. Переключение между вкладками чата внутри заезда по горячей клавишей Tab с запоминанием настройки текущей активной вкладки и автоматическим восстановлением с последующими заездами.
13. Нижний отступ для каждого последнего сообщения или последнего сообщения из группы сообщений одного и того же пользователя для создания группирования и повышения читабельности чата.

СКАЧАТЬ ИМЕННО ТУТ
Скрипт для чата

Для улучшенного экспириенса, установите тёмную тему.
Тёмная тема

Дополнительные примечания.

Для работы сигналов (beep), необходимо разрешить звуки (AudioContext API).
Для этого, у кого браузер firefox, необходимо произвести подобные настройки.
Ввести в браузерной строке about:config -> Enter и найти соответствующий ключ как на скрине и выставить ему значение 1
скрытый текст…


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

Для работы голосового движка, вам необходимо как минимум быть на windows машине.
Так-же должен быть установлен русский языковой пакет.
После установки языкового пакета, вам возможно будет необходимо так-же задать разрешение воспроизводить голоса в браузере.
Если у вас опять же браузер firefox, то похожим методом как с (AudioContext API).
скрытый текст…


Для лучшего понимания как, что и почему, лучше ознакомиться прочтением всех постов данной темы. В них расписаны как добавление новых функций так и объяснение как с ними работать.
Последний раз отредактировано 14 мая 2023 в 19:45 пользователем Душа_Чата
Душа_Чата Сообщение #2 3 апреля 2023 в 15:06
Гонщик
1
Добавлена возможность отключать звук зачитывания сообщения переключив тем самым на звуковой сигнал и наоборот. Кнопка ведёт себя как переключатель между режимами оповещения о новых последних сообщениях. А главное, что кнопка запоминает данную последнюю настройку пользователем, так как информация о состоянии кнопки сохраняется в браузерном localStorage как newMessageIsMuted (false или true).

скрытый текст…


Обновлённый код

скрытый текст…
Душа_Чата Сообщение #3 3 апреля 2023 в 16:39
Гонщик
1
Сделан небольшой фикс скрипта. Когда кнопка находится в состоянии мута с простым звуковым оповещением, теперь не будет сигналить после каждое перезагрузки страницы лишь в том случае, если в чате последнее сообщение осталось всё тоже неизменное после множества других перезагрузок страницы. Будет сигналить, если последнее сообщение отличительное с последнего посещения страницы с чатом. Так вы будете знать о том, что новые сообщения в чате появились.

скрытый текст…
Душа_Чата Сообщение #4 3 апреля 2023 в 20:28
Гонщик
1
Добавляю версию скрипта, где кнопка динамика для переключения режимов зачитывания последнего сообщения и оповещения звуковым сопровождением оформлены в соответствии с другими кнопками чата как реализовано в тёмной теме для расширения stylus. Иконки стали линейными и обладают разными цветами. Зелёный и красный.

скрытый текст…


Код

скрытый текст…
Вова_10 Сообщение #5 3 апреля 2023 в 20:39
Виртуоз
32
Ссылку на скрипт дайте, пожалуйста, чтобы его установить
Душа_Чата Сообщение #6 3 апреля 2023 в 21:29
Гонщик
1
Правки правки правки и ещё раз правки. Нет предела совершенству.
Правки больше касаемо оптимизации и справления некоторых ошибок.
А исправлено вот что:

1. После каждой перезагрузки страницы один раз мелькает дефолтный женской голос, так как объявляется voice API не совсем корректно и не очень хорошо с точки зрения оптимизированного кода. Так-же в прошлых версиях было объявлено два разных голосовых процессора, когда сейчас объединилось в одну функцию и объявление всех голосовых настроен назначаются единожды после загрузки страницы, нежели как раньше по замечанию изменений в DOM дереве, каждый раз голосовой движок создавался с нуля, что сказывается на производительность. А вот и сама функция и вынесенные глобально объявления голосового процессора.

скрытый текст…


Теперь одна функция работает как с оповещениями о зашедших и вышедших пользователях, так и читает последние сообщения в чате всегда одним мужским голосом (Microsoft Pavel).
Было бы очень здорово, чтобы голос читался голосовым процессором по типу нейронки, но там всё такое платное. Может быть кто подскажет, как быть в данной ситуации, чтобы улучить качество голоса. Может быть кто знает что-нибудь бесплатное и качественней для зачитывания текста?

Код

скрытый текст…
Душа_Чата Сообщение #7 3 апреля 2023 в 21:35
Гонщик
1
Вова_10
Вова_10 писал(а):
Ссылку на скрипт дайте, пожалуйста, чтобы его установить


Это очень просто. Необходимо для начала скачать расширение для браузера tampermonkey
А далее в настройках расширения на странице клавогонок создать новый скрипт нажав на эту кнопку
скрытый текст…

Далее откроется окно с полем куда нужно с заменой всего что там увидишь самой последней версией кода из хайда
скрытый текст…

И сохраняешь Ctrl + S
Душа_Чата Сообщение #8 4 апреля 2023 в 01:14
Гонщик
1
Добавлена функция подсветки ников в списке чата для незабаненных и забаненных пользователей.
Незабаненные светятся зелёным, а забаненные красным. Всё оптимально смотрится на тёмном фоне.
Для тех кто сидит с дефолтной светлой темы, то придётся ковырнуть для этого цвета и сделать их темнее.

Ковырять придётся эту функцию
Менять нужно эти строки
          anchor.style.setProperty('color', '#83cf40', 'important');
          anchor.style.setProperty('text-shadow', '0 0 1px #83cf40', 'important');

          anchor.style.setProperty('color', '#ff8080', 'important');
          anchor.style.setProperty('text-shadow', '0 0 1px #ff8080', 'important');


скрытый текст…


скрытый текст…
Душа_Чата Сообщение #9 4 апреля 2023 в 01:21
Гонщик
1
Только что заметил, что в хайде помещается не весь код стоило мне его раскрыть.
Поэтому придётся мне сохранять код на сторонних сервисах, только однажды может так случиться,
что код через какое-то время испарится. Через какое время точно не известно. Всё зависит от сервиса.

codepaste.xyz
Душа_Чата Сообщение #10 4 апреля 2023 в 06:02
Гонщик
1
Ну чтож. Рад представить вам очередную классную возможность видеть в чате ссылки изображений не только как текстовые ссылки по которым необходимо кликать и переходить в другую вкладку, но и видеть миниатюры, причём легко настраиваемые по изначальной величине, а так-же они кросплатформенные, зависимые от ширины вьюпорта. По клику миниатюры показывается крупное изображение и по клику на само крупное изображение или куда-то за пределы, то крупная картинка скрывается восвояси. Конвертация ссылки в картинку происходит только на тот момент, когда скрипт замечает в сообщении хоть одну ссылку с расширением картинки, а не проверят каждое сообщение, если там нет самой ссылки на картинку.

Как это работает, можно посмотреть по ссылке: видео демонстрация

Код

codepaste.xyz
певец Сообщение #11 4 апреля 2023 в 08:40
Супермен
18
Демонстрации нужно в первом посте выкладывать))) а не кучу кода непонятную для 99% здешних хомячков))
Душа_Чата Сообщение #12 4 апреля 2023 в 16:14
Гонщик
1
певец, тот кто ищет, тот всегда найдёт.
Душа_Чата Сообщение #13 4 апреля 2023 в 17:48
Гонщик
1
Пофиксил фриз в чате из-за функции подсветки пользователей. Убрал логику сортировки. Чересчур нагружает. Оставил лишь подсветку.
Так-же помимо правки фриза добавлена ещё одна фича.
Длинные ссылки, порою громадные соразмерно пятиэтажного дома на весь чат, занимают большое полезное пространство, да и очень бросается в глаза.
Поэтому, принято решение сократить их простого английского слова image с соответствующим расширением изображения на конце (jpg, jpeg, png или gif).
Сама длинная ссылка сохранется в title ссылки. Увидеть её вы сможете при наведении курсором на ссылку. Это для тех, кто хочет быть уверенным, что ссылка не вредоносная,
хотя в браузерах уже включена такая возможность отображения подписей к ссылкам где-то в низу окна браузера.
Миниатюрам добавлены внутренние и внешние отступы, чтобы было немного воздуха вокруг элементов.

Визуализация

скрытый текст…


Код

codepaste.xyz
Последний раз отредактировано 4 апреля 2023 в 17:54 пользователем elasez_uyefot_2
Душа_Чата Сообщение #14 4 апреля 2023 в 23:33
Гонщик
1
1. "Теперь можно также закрыть полноэкранный просмотр изображения в чате, нажав кнопку 'Esc'."
2. "Проблема исправлена, вызванная ложным срабатыванием, которое говорило о том, что пользователь покинул чат, когда он на самом деле просто на короткое время исчезал из списка чата на доли миллисекунд."

Код
Душа_Чата Сообщение #15 5 апреля 2023 в 03:01
Гонщик
1
1. "Теперь чат сворачивается и разворачивается по сочетанию горячих клавиш Ctrl + Space, тем самым счётчик пользователей обнуляется, когда чат свернут и восстанавливает свою работу, когда чат разворачивается. Так-же покуда чат скрыт, то никаких уведомлений о зашедших и вышедших пользователях, а так-же о новых сообщениях. Полное молчание."
2. "Добавлена поддержка конвертирования ютуб ссылок в видео фреймы. Это означает, что теперь вы можете смотреть видео прямо из чата, не переходя в другую вкладку оставаясь в фокусе с чатом."

скрытый текст…


Код
Душа_Чата Сообщение #16 5 апреля 2023 в 16:18
Гонщик
1
Пофиксил функцию конвертации ссылок ютуба. Теперь добавлена поддержка и ссылок с параметром ?v=

Код
Душа_Чата Сообщение #17 5 апреля 2023 в 21:20
Гонщик
1
1. Исправлена ошибка, когда конвертер ютубовских ссылок пытался конвертировать одну из ссылок скинутых в чат другим пользователем на некий ютуб канал. Соответственно данная ссылка не валидная ссылка на ютуб видео ряд, поэтому сужен круг поиска конкретно только на валидные полные и сокращённые ютуб видео ссылки.
2. Создание и удаление просмотра изображений из чата в полном размере теперь появляются плавно и плавно затухают вместе с затемняющей нижележащей подложкой, чтобы создавать благоприятный эффект для глаз.
3. Ранее кнопка переключения режимов включала в себе такие как: Голос и сигнал. Теперь же включён выбор полного отключения любого звука о новом сообщении. (voice, beep, silence).
4. Добавлена поддержка конвертации картинок в чате в форате webp.
5. Теперь конвертируются все ссылки содержащие изображения не только лишь в том случае, когда расширение изображения находились в конце ссылки, но и в том случае, когда расширение картинки может находиться где-то в центре самой картинки, когда после самого расширения могут быть описаны ещё какие-то дополнительные параметры генерируемые сервисом предоставляющий доступ к картинке.
6. При наведении на кнопку смены режима оповещения о новых сообщениях теперь обзавелись заголовком, коротко описывающий тип режима. Какое у него назначение.

Код (834 строк)
Последний раз отредактировано 5 апреля 2023 в 21:42 пользователем elasez_uyefot_2
Душа_Чата Сообщение #18 5 апреля 2023 в 22:47
Гонщик
1
1. Добавлена возможность приближать и отдалять полноформатное изображение прокручиванием колеса мыши, а так-же передвигать изображение зажатым колесом мыши во вьюпорте браузера.
2. Скрипт был переименован KG_Chat_Empowerment так как возможности юзер скрипта переросли обычное звание счётчика пользователей в чате.
3. Фикс. Некорректное имя сокращённого изображения в чате, в том случае, когда расширение изображения не находится в конце ссылки, а где-то в середине меж данными. Сокращение создавалось так. image.png..... и далее ещё какие-то параметры по типу высоты ширины и так далее.

Демонстрация

Код (920 строк)
Последний раз отредактировано 6 апреля 2023 в 03:14 пользователем elasez_uyefot_2
Душа_Чата Сообщение #19 6 апреля 2023 в 02:47
Гонщик
1
1. Добавилась возможность удалять нежелательные сообщения на время их видимости в чате, чтобы при каждой перезагрузке страницы удалённые сообщения более не подгружались, так как некоторые сообщения редко но метко могут вызывать раздражение. Учитывая, что теперь в чате имеется возможность отображать картинки и видеофреймы, то будет не лишним такая возможность удалять их из виду. Как только сообщение при последующих обновлениях страницы более не будет подгружено в чате из-за лимита чата в количестве 20 сообщений, то информация о значении удалённого сообщения будет подчищена из хранилища "localStorage", чтобы не захламлять ключ "deletedChatMessagesContent". В этом ключе будет храниться только актуальная удалённая информация и автоматически подчищаться. В конечном итоге, когда в чате более не будет подгружено ни единого удалённого сообщения после перезагрузки страницы, то и ключ будет пустым. Магия.

2. Для удаления сообщения необходимо навести на желаемое сообщение и правой кнопкой мыши вызвать соответствующую кнопку "Delete". Так-же создаётся красное выделение сообщения, чтобы визуально понимать правильное ли сообщение было выделено. Визуальный фидбэк. Если вы в течении одной секунды не нацелились на кнопку, то кнопка пропадёт вместе с выделением сообщения. Если же вы в течении секунды нацелились на кнопку, то кнопка и выделение будут сохранены до тех пор, пока вы опять не уберёте курсор с кнопи, что опять запустит цикл в ожидание одной секунды, после чего произойдёт удаление кнопки и выделения.

3. Так-же имеется кнопка просмотра истории удалённых сообщений кнопкой переключатель. Она имеет 3 значения (Hidden, Show, Hide).
Hidden отображается изначально после каждой перезагрузки страницы в том случае, если у вас имеются актуальные удалённые сообщения. Кнопка не отображается вовсе, если удалённых сообщений нет. После нажатия кнопки с подписью Hidden, она переименуется в Hide, что в свою очередь покажет скрытые сообщения. И после нажатия на кнопку с подписью Hide, предпросматриваемые удалённые сообщения снова скроются и кнопка обзаведётся подписью Show. Что означает Показать. Теперь при повторных нажатиях так и будет колебаться между Show и Hide до тех пор, пока вы снова не обновите страницу где в итоге опять будет подпись Hidden.

Демонстрация

Код (1213 строк)
Последний раз отредактировано 7 апреля 2023 в 03:46 пользователем Душа_Чата
Душа_Чата Сообщение #20 7 апреля 2023 в 23:24
Гонщик
1
1. Теперь удаление сообщений происходит намного быстрее и удобнее засчёт множественных выделений. Раньше для удаления была доступна лишь одна возможность, удалять сообщение одно за другим по одному. Это нудно и долго, и поэтому сразу же возникла мысль реализовать более удобную версию. Теперь достаточно Зажать правую кнопку мышку и провести курсором по сообщениям, которые хочется захватить для последущего удаления. Как только необходимые сообщения были выделены, успейте в течении одной секунды перевести курсор мыши на кнопку, чтобы удержать её в фокусе, так как выделение сбросится, если в течении ограниченного времени вы не успеете навести курсор. Выделенные сообщения одним движением руки теперь легко удаляются всего одним нажатием кнопки "Delete".

Демонстрация 1

Демонстрация 2

Код (1299 строк)

Версия кода устроенная на new Map() constructor

Код (1319 строк)
Последний раз отредактировано 8 апреля 2023 в 10:22 пользователем Душа_Чата

Чтобы писать в форуме, нужно зарегистрироваться.

Ctrl предыдущая следующая Ctrl Страницы
1 2 3

Связаться
Выделить
Выделите фрагменты страницы, относящиеся к вашему сообщению
Скрыть сведения
Скрыть всю личную информацию
Отмена