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

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

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

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. Нижний отступ для каждого последнего сообщения или последнего сообщения из группы сообщений одного и того же пользователя для создания группирования и повышения читабельности чата.
14. Борьба со спамом в чате путём удаления 100% идентичных и схожих сообщений, а также противостоит флуду в виде частой отправки сообщений, чтобы захламить чат сообщениями.

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

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

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

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


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

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


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

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


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

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

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

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


Код

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

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

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


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

Код

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


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

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

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

Ковырять придётся эту функцию
Менять нужно эти строки
          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
Маньяк
2
Только что заметил, что в хайде помещается не весь код стоило мне его раскрыть.
Поэтому придётся мне сохранять код на сторонних сервисах, только однажды может так случиться,
что код через какое-то время испарится. Через какое время точно не известно. Всё зависит от сервиса.

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

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

Код

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

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

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


Код

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

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

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


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

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

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

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

Код (920 строк)
Последний раз отредактировано 6 апреля 2023 в 03:14 пользователем elasez_uyefot_2
Душа_Чата Сообщение #19 6 апреля 2023 в 02:47
Маньяк
2
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
Маньяк
2
1. Теперь удаление сообщений происходит намного быстрее и удобнее засчёт множественных выделений. Раньше для удаления была доступна лишь одна возможность, удалять сообщение одно за другим по одному. Это нудно и долго, и поэтому сразу же возникла мысль реализовать более удобную версию. Теперь достаточно Зажать правую кнопку мышку и провести курсором по сообщениям, которые хочется захватить для последущего удаления. Как только необходимые сообщения были выделены, успейте в течении одной секунды перевести курсор мыши на кнопку, чтобы удержать её в фокусе, так как выделение сбросится, если в течении ограниченного времени вы не успеете навести курсор. Выделенные сообщения одним движением руки теперь легко удаляются всего одним нажатием кнопки "Delete".

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

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

Код (1299 строк)

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

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

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

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

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