// ======================================= // СПИСОК ЗАБЛОКИРОВАННЫХ // ======================================= var block = [ "Чужая2_3", "ник1", "ник2", ]; // ======================================= // ОТКРЫВАТЬ ТЕМЫ С ПОСЛЕДНЕГО СООБЩЕНИЯ // 1 открывать с последнего сообщения // 2 открывать как обычно // ======================================= var open_bottom = 1; // ======================================= // Открываем страницу с последнего сообщения // ======================================= if(open_bottom == 1) { const open_el = document.getElementById('vB_Editor_QR_textarea'); open_el.scrollIntoView(); } // ======================================= // ЧС исполняемый код // ======================================= var posts = document.getElementsByClassName("alt2"); for (var i = 0; i < posts.length; i++) { if(posts[i].querySelector("div > a > b") != null) { if(block.indexOf(posts[i].querySelector("div > a > b").innerText) != -1) { var el = posts[i].querySelector("div > a > b").parentNode.parentNode.parentNode.parentNode; el.style.visibility = "collapse"; } } } // ======================================= // YOUTUBE справочно, неисполняемый код // ======================================= function youtube_parser(url) { var regExp = /^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]{11,11}).*/; var match = url.match(regExp); if (match) if (match.length >= 2) return match[2]; } function addTextAtCursorPosition(textArea, cursorPosition, text) { var front = (textArea.value).substring(0, cursorPosition); var back = (textArea.value).substring(cursorPosition, textArea.value.length); textArea.value = front + text + back; } function updateCursorPosition(cursorPosition, text, textArea) { cursorPosition = cursorPosition + text.length; textArea.selectionStart = cursorPosition; textArea.selectionEnd = cursorPosition; textArea.focus(); } function addTextAtCaret(textAreaId, text) { var videoID = youtube_parser(text); if(videoID !== undefined) { videoID = '[youtube]' + videoID + '[/youtube]'; var textArea = document.getElementById(textAreaId); var cursorPosition = textArea.selectionStart; addTextAtCursorPosition(textArea, cursorPosition, videoID); updateCursorPosition(cursorPosition, videoID, textArea); } } function addYouTube() { result = prompt("Введите полный URL YouTube:"); if(result) addTextAtCaret('vB_Editor_QR_textarea', result); } // ======================================= // ЦИТИРОВАНИЕ справочно, неисполняемый код // ======================================= function quote_parser(str) { var result = new Array(); var regexp_num = new RegExp(/\d+/); var num = regexp_num.exec(str)[0]; result.push(num); var regexp_name = new RegExp(/'(.*?)'/); var name = regexp_name.exec(str)[0].toString(); name = name.replace(/[']/g,''); result.push(decodeURI(name)); return result; } function quote_selection_new() { var str; var result; var txt = ""; var quote; if (window.getSelection) { txt = window.getSelection().toString(); } else if (document.getSelection) { txt = document.getSelection(); } else if (document.selection) { txt = document.selection.createRange().text; } if(txt != "") { var s = window.getSelection().focusNode.parentElement; for(i = 0; i < document.getElementsByTagName('*').length; i++) { if(s.tagName == "BODY") break; else if(s.tagName == "TR") break; else if(s.parentElement.querySelector('td[style="padding: 5px 5px 20px; color: #0000cc;"]')) { str = s.parentElement.querySelector('a[title="Цитировать выделенный фрагмент"]'); break; } s = s.parentElement; } result = quote_parser(str); quote = '[quote=' + quote_parser(str)[1] + ';' + quote_parser(str)[0] + "]" + txt + "[/quote]"; var textArea = document.getElementById("vB_Editor_QR_textarea"); var cursorPosition = textArea.selectionStart; addTextAtCursorPosition(textArea, cursorPosition, quote); updateCursorPosition(cursorPosition, quote, textArea); } else { bbcode('[quote]','[/quote]'); } } // ======================================= // SCRIPT eval исполняемый код // ======================================= var textscript = "function youtube_parser(e){var t=/^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|\\\&v=)([^#\\\&\\?]{11,11}).*/,o=e.match(t);return o\&\&o.length>=2?o[2]:void 0}function addTextAtCursorPosition(e,t,o){var n=e.value.substring(0,t),r=e.value.substring(t,e.value.length);e.value=n+o+r}function updateCursorPosition(e,t,o){e+=t.length,o.selectionStart=e,o.selectionEnd=e,o.focus()}function addTextAtCaret(e,t){var o=youtube_parser(t);if(void 0!==o){o=\"[youtube]\"+o+\"[/youtube]\";var n=document.getElementById(e),r=n.selectionStart;addTextAtCursorPosition(n,r,o),updateCursorPosition(r,o,n)}}function addYouTube(){result=prompt(\"Введите полный URL YouTube:\"),result\&\&addTextAtCaret(\"vB_Editor_QR_textarea\",result)}function quote_parser(e){var t=new Array,o=new RegExp(/\\d+/),n=o.exec(e)[0];t.push(n);var r=new RegExp(/\'(.*?)\'/),u=r.exec(e)[0].toString();return u=u.replace(/[\']/g,\"\"),t.push(decodeURI(u)),t}function quote_selection_new(){var e,t,o,n=\"\";if(window.getSelection?n=window.getSelection().toString():document.getSelection?n=document.getSelection():document.selection\&\&(n=document.selection.createRange().text),\"\"!=n){var r=window.getSelection().focusNode.parentElement;for(i=0;i 1) { fieldset = document.getElementsByClassName("fieldset").item(2); } else { fieldset = document.getElementsByClassName("fieldset").item(0); } // URL var link = document.createElement('a'); link.href = 'javascript:bbcode(\'[url]\',\'[/url]\')'; link.setAttribute('style', 'margin-left: 10px; vertical-align: 4px;'); link.textContent = "URL"; fieldset.querySelector("div").appendChild(link); // YouTube var youtube = document.createElement('a'); // youtube.setAttribute('href', 'javascript:bbcode(\'[youtube]\',\'[/youtube]\')'); youtube.href = 'javascript:addYouTube()'; youtube.setAttribute('style', 'margin-left: 10px; vertical-align: 4px;'); youtube.textContent = "YouTube"; fieldset.querySelector("div").appendChild(youtube); // QUOTE var quote = document.createElement('a'); // quote.href = 'javascript:bbcode(\'[quote]\',\'[/quote]\')'; quote.href = 'javascript:quote_selection_new()'; quote.setAttribute('style', 'margin-left: 10px; vertical-align: 4px;'); quote.textContent = "Цитата"; fieldset.querySelector("div").appendChild(quote);