NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name NightShine skin for My Little Chat // @namespace http://tampermonkey.net/ // @version 0.153 // @description Изменяет вид ночного режима MyLittleChat.ru, автор не несет никакой ответственности за нанесенные повреждения вашей психике, компутеру, коту.. и другим предметам. // @author June Aurelius // @match https://mylittlechat.ru/Комнаты // @match https://mylittlechat.ru/* // @grant none // ==/UserScript== function addGlobalStyle(css) { var head, style; head = document.getElementsByTagName('head')[0]; if (!head) { return; } style = document.createElement('style'); style.type = 'text/css'; style.innerHTML = css; head.appendChild(style); } addGlobalStyle('.page {border:(0px, 0px, 0px, 0px); width:70% !important; min-width:1200px; } '); addGlobalStyle('* {border: 0px solid black !important; } '); addGlobalStyle('.nightModeRule { background-image:url("http://www.hiveworkshop.com/attachments/canterlot_evening___wallpaper_by_crappyunicorn-d3fxiqk-jpg.103311/") !important; }'); // addGlobalStyle('.head {background: rgba(00,00, 00, 0.5)!important; }'); addGlobalStyle('.full {background: rgba(00,00, 00, 0.1)!important; }'); addGlobalStyle('.head > div {max-width: 1200px; }'); addGlobalStyle('.opis { weight: 100; background: rgba(20,20,20,0.7); color:white }'); addGlobalStyle('.msgContent,.radio.Control {background:rgba(00,00,00,0.5) !important; border: 0px solid black !important; padding 0px 0px 3px 3px; } '); addGlobalStyle('.menuRightChat {padding: 10px 0px 3px 0px; } '); addGlobalStyle('.userAvatar { margin: 5px; } '); addGlobalStyle('.topContainer { height: 33px; background: rgba(00,00, 00, 0.6) !important; border-bottom: 0px;}'); addGlobalStyle('.my .ava { border-radius: 16px 0px 16px 16px !important;} '); addGlobalStyle('.another .ava { border-radius: 0px 16px 16px 16px !important;} '); addGlobalStyle('.mCustomScrollbar.mCS_no_scrollbar { height: 33px }'); // addGlobalStyle('.MessageContainer,.ChatDialog {background: rgba(00,00, 00, 0.45) !important; border-bottom: 0px; }'); addGlobalStyle('.FavSmiles { background: rgba(00,00, 00, 0.3) !important; padding 2px 0px; height: 65px; }'); addGlobalStyle('.FavSmiles, .smiles { border: 0px solid black !important; border-bottom: 5px solid rgba(00,00,00,0.25) !important; border-top: 5px solid rgba(00,00,00,0.25) !important; }'); addGlobalStyle('..smiles { background: rgba(255,255, 255, 0.1) !important; border: 0px solid black !important; }'); addGlobalStyle('.ShowSmiles { background: rgba(255,255,255, 0.05); width: 90px; padding: 5px 0px 0px 0px; }'); addGlobalStyle('.addMenu { background: rgba(255,255,255, 0.08); padding: 5px 0px 0px 0px; }'); // addGlobalStyle('.MessageContainer >div {background: rgba(255,255,255, 0.1); }'); addGlobalStyle('.sendMessage { background: rgba(185,185,255, 0.075); min-width: 120px; }'); // Панелька управления высотой addGlobalStyle('.resizer {background: rgba(255,255,255, 0.1); box-sizing: border-box; border-radius: 0px 0px 10px 10px; }'); // Код для удаления лишнего, пока не работает //var parentRC = document.getElementById("div.menuRightChat"); //var childBC = document.getElementById("div.backgroundChange"); //parentRC.removeChild(childBC); // Text 2 clickable URL script // Author os0x // Version 0.8.1 (function(){ function TextURLLinker(config) { if (TextURLLinker.isInit) return; TextURLLinker.isInit = true; var newtab = config.open_in_newtab; var noref = config.noreferrer; var style = escapeTags(config.link_style); var TEXT = 'descendant::text()[contains(self::text(),"ttp") and not(ancestor::'+ ['a','textarea','script','style','head'].join(' or ancestor::') + ')]'; linker(document.body); function linker(doc){ return $X(TEXT, doc).filter(function(txt){ return linkfy(txt, 'h?ttp(s?://.*)', '[ \\)\\]\'\"\n]|$', 'http'); }); } function linkfy(node, start, end, prefix) { var linked = false; if (node.nodeValue.search(start) >= 0) { var text = node.nodeValue, index; var parent = node.parentNode; while (text && (index = text.search(start)) >= 0) { var _txt = node.splitText(index); var _end = _txt.nodeValue.search(end); var __txt = _txt.splitText(_end); var a = document.createElement('a'); a.href = prefix + _txt.nodeValue.match(start)[1]; newtab && a.setAttribute('target', '_blank'); noref && a.setAttribute('rel', 'noreferrer'); style && a.setAttribute('style', style); if (noref && typeof GM_openInTab !== 'undefined' && !window.getMatchedCSSRules) { a.addEventListener('click',function(e){ e.preventDefault(); GM_openInTab(a.href); },false); } a.appendChild(_txt); parent.insertBefore(a, __txt); text = __txt.nodeValue; node = __txt; linked = true; } } return linked; } function escapeTags(str){ return str.replace(/["&<>]/g,function($){ return '&'+{'"':'quot','&':'amp','<':'lt','>':'gt'}[$]+';'; }); } var wait = true; document.addEventListener('DOMNodeInserted',function(e){ if (wait){ setTimeout(function(){ linker(document.body); wait = true; }, 1500); wait = false; } },true); } var TextURLLinkerID = 'aegfbpchoheaflicfmggkmlmcccpjpgd'; if (this.chrome && chrome.extension && /aegfbpchoheaflicfmggkmlmcccpjpgd/.test(chrome.extension.getURL('manifest.json')) ){ chrome.extension.sendRequest(TextURLLinkerID,'init', TextURLLinker); } else if(this.safari){ safari.self.tab.dispatchMessage('config',''); safari.self.addEventListener('message',function(evt){ TextURLLinker(evt.message); },false); } else { TextURLLinker({ open_in_newtab:true, noreferrer:true, link_style:'cursor:help;display:inline !important;' }); } // XPath snippet from http://gist.github.com/184276 // XPath 式中の接頭辞のない名前テストに接頭辞 prefix を追加する // e.g. '//body[@class = "foo"]/p' -> '//prefix:body[@class = "foo"]/prefix:p' // http://nanto.asablo.jp/blog/2008/12/11/4003371 function addDefaultPrefix(xpath, prefix) { var tokenPattern = /([A-Za-z_\u00c0-\ufffd][\w\-.\u00b7-\ufffd]*|\*)\s*(::?|\()?|(".*?"|'.*?'|\d+(?:\.\d*)?|\.(?:\.|\d+)?|[\)\]])|(\/\/?|!=|[<>]=?|[\(\[|,=+-])|([@$])/g; var TERM = 1, OPERATOR = 2, MODIFIER = 3; var tokenType = OPERATOR; prefix += ':'; function replacer(token, identifier, suffix, term, operator, modifier) { if (suffix) { tokenType = (suffix == ':' || (suffix == '::' && (identifier == 'attribute' || identifier == 'namespace'))) ? MODIFIER : OPERATOR; } else if (identifier) { if (tokenType == OPERATOR && identifier != '*') token = prefix + token; tokenType = (tokenType == TERM) ? OPERATOR : TERM; } else { tokenType = term ? TERM : operator ? OPERATOR : MODIFIER; } return token; } return xpath.replace(tokenPattern, replacer); } // $X on XHTML // $X(exp); // $X(exp, context); // @target Freifox3, Chrome3, Safari4, Opera10 // @source http://gist.github.com/184276.txt function $X (exp, context) { context || (context = document); var _document = context.ownerDocument || document, documentElement = _document.documentElement; var isXHTML = documentElement.tagName !== 'HTML' && _document.createElement('p').tagName === 'p'; var defaultPrefix = null; if (isXHTML) { defaultPrefix = '__default__'; exp = addDefaultPrefix(exp, defaultPrefix); } function resolver (prefix) { return context.lookupNamespaceURI(prefix === defaultPrefix ? null : prefix) || documentElement.namespaceURI || ''; } var result = _document.evaluate(exp, context, resolver, XPathResult.ANY_TYPE, null); switch (result.resultType) { case XPathResult.STRING_TYPE : return result.stringValue; case XPathResult.NUMBER_TYPE : return result.numberValue; case XPathResult.BOOLEAN_TYPE: return result.booleanValue; case XPathResult.UNORDERED_NODE_ITERATOR_TYPE: // not ensure the order. var ret = [], i = null; while (i = result.iterateNext()) ret.push(i); return ret; } return null; } })();