您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Shows desktop notification for new chat messages
- // ==UserScript==
- // @name Plug.DJ Chat Notifications
- // @icon http://i.imgur.com/0LwVHyl.png
- // @namespace x4_plugdjcn
- // @version 0.2.1
- // @description Shows desktop notification for new chat messages
- // @author x4fab
- // @license CC0
- // @match https://plug.dj/*
- // @grant none
- // ==/UserScript==
- !function (){
- var windowOpen = window.open,
- opened;
- window.open = function (){
- opened = windowOpen.apply(window, arguments);
- return opened;
- };
- if (Notification.permission == 'default'){
- document.body.onclick = function (){
- Notification.requestPermission();
- document.body.onclick = null;
- };
- }
- var lastId;
- setInterval(function (){
- if (opened && opened.closed){
- opened = null;
- }
- var node = (opened ? opened.document : document).querySelector('#chat-messages .cm.message:not(.from-you):last-child .msg');
- if (!node){
- return;
- }
- var currentId = node.querySelector('.text').className;
- if (lastId != currentId){
- var focused = opened && opened.document.hasFocus() || document.hasFocus();
- if (!focused){
- var notification = new Notification(node.querySelector('.un').textContent, {
- body: node.querySelector('.text').innerHTML.replace(/^[\s\S]*<br>/, '').replace(/<.+?>/g, ''),
- icon: 'http://i.imgur.com/0LwVHyl.png'
- });
- setTimeout(notification.close.bind(notification), 3e3);
- }
- lastId = currentId;
- }
- }, 50);
- }();