0
- 15.08.2018 - 02:43
|
Посмотрел я на этот бардак, и обновил скрипт для Хрома и Оперы. Качать тут Для применения нужно: 1) Скачать файл 2) Установить расширение TamperMonkey (для Хрома, для Оперы) 3) Нажать на иконку расширения справа сверху, выбрать "панель" в опере, "панель управления" в хроме, Утилиты, Файл, Выберите файл (указать скачанный файл), импорт. Функционал почти тот же. Удобную возможность автоматически оскорблять собеседника при ответе добавлю чуток попозже. PS В Firefox тоже должно работать. PPS В рамках операции вихрь-антиМуДэ. | | |
41
- 16.08.2018 - 10:24
| че ты продемонстрировал там?.. нормально фото вставить не смог.. не видно ничего.. а по поводу оскорблений так ты вроде не пострадал ранее.. или ты шестеркой у тутошних гавномесов подрабатываешь? | | |
43
- 16.08.2018 - 10:35
|
43-р > Те ссылки я удалил уже, в 41 другая. | | |
44
- 16.08.2018 - 10:38
|
42-Хаус MD > Мне неприятно читать про всякую педерастию, в чей бы адрес и кем бы это не писалось. Для обсуждения подобных мерзостей есть специализированные сайты, а тут вроде как про политику должно быть. | | |
46
- 16.08.2018 - 11:41
| Поставь расширение https://addons.mozilla.org/ru/firefo.../tampermonkey/ | | |
47
- 16.08.2018 - 11:56
| проверил, работает, спасибо. | | |
48
- 16.08.2018 - 11:57
| ну а я виноват шо рекся вечно пытается найти целюлит на мужских задницах?? а остальные ему поддакивают с интересом.. | | |
50
- 16.08.2018 - 16:42
| Satanas ещё раз доказал, что либераст - это обыкновенный дерьмодемон, что бы он не взял за исходник, всё равно дерьмо ради дерьма получится. Начиная с элементарных какашек в коде и заканчивая целевым назначением этого кода. | | |
51
- 16.08.2018 - 17:03
| Бгг, ты хоть сам понимаешь, на что смотришь? Хотя о чем я, что мудэ вообще может понимать ))) | | |
52
- 16.08.2018 - 17:07
| 52-Satanas > ты насрал СЕБЕ на экран и этим наслаждаешься - чё, ПОЗДРАВЛЯЮ! ))))) | | |
53
- 16.08.2018 - 22:42
| Т.е. устанавливаешь скрипт, и он сразу показывает кто мудэ, а кто - человек? Неплохо. Не нобелевка, но гранта Сколково вполне заслуживает. | | |
54
- 16.08.2018 - 22:51
|
53-Черный плащ > Надо бы еще блокчейн прикрутить, и можно на ICO сразу. | | |
55
- 16.08.2018 - 23:04
| и шифрование без ключей и соединение без серверов. Только Дуров уже есть, но ты не теряйся можешь взять фамилию - Глупов. Верить так же будут. | | |
56
- 16.08.2018 - 23:42
| 53-Черный плащ > нет, не угадал, тебе нужно насрать в скрипт, чтобы скипт тебе на экран выводил твоё же говно. Устанавливай,не раздумывай! :) | | |
58
- 16.08.2018 - 23:48
| 57-Satanas > что, рад, что твой скрипт засрал тебе весь экран? И кто из нас копрофил? )))) | | |
59
- 16.08.2018 - 23:54
|
А всё-таки Satanas молодец - сочинить скрипт, который мгновенно отзеркалит либерасту его же образ - бурные и продолжительные аплодисменты! Модераторы, не сносите тему! ))))) | | |
60
- 17.08.2018 - 00:02
|
сделал бы реально умное полезное что то.. кнопку видео вставлять или еще там что то.. вам либерастам все только изгавнять бы.. | | |
61
- 17.08.2018 - 00:23
|
Я даже помогу в распространении, опубликую скрипт в открытом виде, ЛЮБОЙ ЛИБЕРАСТ ОБЯЗАН УСТАНОВИТ ЕГО ЕБЕ НА КОПМП! :) Код: // ==UserScript== // @name New ES6-Userscript // @namespace http://tampermonkey.net/ // @version 0.1 // @description shows how to use babel compiler // @author You // @require https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.6.15/browser-polyfill.min.js // @require https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.6.15/browser.min.js // @require https://cdnjs.cloudflare.com/фjax/libs/jquery/3.3.1/jquery.min.js // @require https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js // @match http://*/* // @grant GM_setValue // @grant GM_getValue // ==/UserScript== /* jshint ignore:start */ var inline_src = (<><![CDATA[ /* jshint ignore:end */ /* jshint esnext: true */ // Your code here... if (!document.body || window != window.top) ** //console.log("Not toplevel window"); ** else ** //console.log("Toplevel window"); //console.log(document.location.href); let urlPattern1 = new RegExp('http:\/\/forums\.kuban\.ru\/f\\d+\/.*\\d+\.html(?:#post\d+)?', 'gi'); let urlPattern2 = new RegExp('http:\/\/forums\.kuban\.ru\/showthread\.php\\?p=\\d+', 'gi'); //http://forums.kuban.ru/showthread.php?p=45875592 if (document.location.href.match(urlPattern1) || document.location.href.match(urlPattern2)) ** // console.log("Match"); ProcessNicks(); ** ** function ProcessNicks() ** let itemID = 0; for (var a of $('#post a.xxxbigusername')) ** ++itemID; let usrHref = a.getAttribute('href'); if (usrHref && usrHref.match(/users\/\d+\/$/gi)) ** let ID = usrHref.match(/\d+/g)[0]; if (a.parentNode.outerHTML.match(/EditButton\d+/gi)) ** continue; ** let objTags = GetTags(ID); const aID = "OldA" + itemID; a.setAttribute("id", aID); a.outerHTML += (objTags ? '<br>' : '') + ('<span id="TagsHolder' + itemID + '" style="color: ' + (objTags ? objTags.TagColor : '#000088') + ';">' + (objTags ? objTags.Tag : '') + '</span>') + '<br><span style="color: #999999; cursor: pointer" id=EditButton' + itemID + '>[edit]</span>'; let buttonID = "EditButton" + itemID; // console.log(ID + " " + buttonID); let newButton = document.getElementById(buttonID); let itemIDBound = itemID; newButton.onclick = () => ** EditTags(ID, itemIDBound); **; if (!objTags) continue; let newA = document.getElementById(aID); if (!newA) continue; let pmID = newA.parentNode.getAttribute('id'); if (!pmID) continue; // console.log("PM id " + pmID); let re = /postmenu_(\d+)/i; let matches = pmID.match(re); if (!matches || matches.length != 2) continue; const postID = matches[1]; // console.log("postID " + postID); const msgID = "post_message_" + postID; let msgNode = document.getElementById(msgID); if (msgNode && !objTags.ShowPosts && $('#' + msgID + ' div.social_icon_block').length === 0) ** msgNode.innerHTML = '<font color=#080808>' + (objTags.CensorMessage ? objTags.CensorMessage : 'Удалено.') + '</font>'; ** if (objTags.AltNick !== '' && objTags.ReplaceNickLeft) ** // console.log('replace'); // console.log(newA); newA.innerHTML = '<b>' + objTags.AltNick + '</b>'; ** if (objTags.AltNick !== '' && objTags.ReplaceNickQuoute) ** for (var ds of $('#' + pmID).siblings('div.smallfont')) ** for (var dsChild of ds.children) ** if (dsChild.tagName && dsChild.tagName.toLowerCase() === 'a') ** const newHref = "javascript:bbcode('19-', '" + objTags.AltNick + " >')"; dsChild.setAttribute('href', newHref); break; ** ** ** // for (var ds of $('#' + pmID).siblings('div.smallfont')) ** for (var td of $(msgNode).parent().siblings('td')) ** for (var aQuote of $(td).find('a')) ** // javascript:quote_selection(45886571, 'Хаус MD'); if (aQuote.getAttribute('href') && aQuote.getAttribute('href').includes('javascript:quote_selection')) ** const oldHref = aQuote.getAttribute('href'); // console.log('oldHref ' + oldHref); let re = /javascript:quote_selection\((\d+)\,.*\)/i; let matches = oldHref.match(re); if (!matches || matches.length != 2) continue; const postID = matches[1]; // console.log('postID ' + postID); const newHref = "javascript:quote_selection(" + postID + ", '" + objTags.AltNick + "')"; aQuote.setAttribute('href', newHref); break; ** ** ** // for (var td of $(msgNode).parent().siblings('td')) ** ** // if (usrHref && usrHref.match(/users\/\d+\/$/gi)) ** // for (var a of $('#post a.xxxbigusername')) ** function EditTags(UserID, itemID) ** let buttonID = "EditButton" + itemID; let Layer = document.getElementById('TagsForm'); if (Layer) Layer.parentNode.removeChild(Layer); if (itemID === 0) ** return; ** // console.log("EditTags " + UserID + " " + buttonID); let Item = document.getElementById(buttonID); let Tags = GetTags(UserID); let Content = '<div id="TagsForm" style="width: 320px; background-color: #FFFFF4; border: 1px solid gray;">'+ ' <table border="0" width="100%">'+ ' <tr style="background-color: #C0E0C0;">'+ ' <td width="90%" style="text-align: left;"><span style="color: #000080; font-weight: bold;">UserID: ' + UserID + '</span></td>'+ ' <td width="10%" style="text-align: center;"><span id="X' + itemID + '" title="Close" style="color: #000000; cursor: pointer;">X</span></td>'+ ' </tr>'+ ' </table>'+ ' <table border="0" width="100%" cellpadding="2" cellspacing="2">'+ ' <tr>'+ ' <td width="10%" style="text-align: right;"><span style="color: #000080; font-weight: normal;">Тег</span></td>'+ ' <td width="70%"><input type="text" id="TagsEdit" value="' + (Tags ? Tags.Tag : '') + '" style="width: 100%;"></td>'+ ' <td><select id="TextColor" style="width: 100%; height: 100%;"><option value="#FF0000" selected>Red</option><option value="#C0A000">Yellow</option><option value="#00C000">Green</option><option value="#0000FF">Blue</option><option value="#999999">Gray</option></select></td>'+ ' </tr>'+ ' </table>'+ ' <table border="0" width="100%" cellpadding="2" cellspacing="2">'+ ' <tr>'+ ' <td width="30%" style="text-align: right;"><span style="color: #000080; font-weight: normal;">Сообщения</span></td>'+ ' <td>'+ ' <select id="ShowPosts" style="width: 100%;"><option value="1" selected>Показать</option><option value="0">Скрыть</option></select>'+ ' </td>'+ ' </tr>'+ ' <tr>' + ' <td style="text-align: right;" width="30%"><span style="color: #000080; font-weight: normal;">Альт. ник</span></td>'+ ' <td> <input type="text" id="AltNickEdit" value="' + (Tags ? Tags.AltNick : '') + '" style="width: 98%;"> </td>'+ ' </tr>' + ' </table>'+ ' <table border="0" width="100%" cellpadding="2" cellspacing="2">'+ ' <tr>'+ ' <td width="70%" style="text-align: right;"><span style="color: #000080; font-weight: normal;">Заменить ник слева</span></td>'+ ' <td>'+ ' <select id="ReplaceNickLeft" style="width: 100%;"><option value="1" selected>Да</option><option value="0">Нет</option></select>'+ ' </td>'+ ' </tr>'+ ' <tr>'+ ' <td width="70%" style="text-align: right;"><span style="color: #000080; font-weight: normal;">Заменить ник в ответах</span></td>'+ ' <td>'+ ' <select id="ReplaceNickResponse" style="width: 100%;"><option value="1" selected>Да</option><option value="0">Нет</option></select>'+ ' </td>'+ ' </tr>'+ ' </table>'+ ' <table border="0" width="100%" cellpadding="2" cellspacing="2">'+ ' <tr>'+ ' <td width="30%" style="text-align: right;"><span style="color: #000080; font-weight: normal;">Штамп</span></td>'+ ' <td>'+ ' <input type="text" id="CensorMessage" value="' + (Tags ? Tags.CensorMessage : '') + '" style="width: 98%;">'+ ' </td>'+ ' </tr>'+ ' <table border="0" width="100%" cellpadding="2" cellspacing="2">'+ ' <tr>'+ ' <td></td>'+ ' <td width="70%" style="text-align: right;"><button id="Save' + itemID + '" ">Save</button> <button id="Cancel' + itemID + '" ">Cancel</button></td>'+ ' </tr>'+ ' </table>'+ '</div>'; document.body.insertAdjacentHTML('BeforeEnd', Content); $("#TagsForm").position(** my: "left top", at: "left bottom", of: Item, collision: "fit" **); document.getElementById("X" + itemID).onclick = () => ** EditTags(UserID, 0); **; document.getElementById("Cancel" + itemID).onclick = () => ** EditTags(UserID, 0); **; document.getElementById("Save" + itemID).onclick = () => ** SaveTags(UserID, itemID); **; let EditBox = document.getElementById('TagsEdit'); EditBox.selectionStart = EditBox.value.length; EditBox.focus(); if (Tags) ** let ColorBox = document.getElementById('TextColor'); let i = ColorBox.length - 1; while(i >= 0) ** if(ColorBox.options[i].value == Tags.TagColor) ** ColorBox.selectedIndex = i; i = -1; ** else ** --i; ** ** // while(i >= 0) SetupBoolSelect('ShowPosts', Tags.ShowPosts); SetupBoolSelect('ReplaceNickLeft', Tags.ReplaceNickLeft); SetupBoolSelect('ReplaceNickResponse', Tags.ReplaceNickQuoute); ** // if(Tags) ** function SetupBoolSelect(elementId, value) ** let selectBox = document.getElementById(elementId); let j = selectBox.length - 1; while (j >= 0) ** if ((selectBox.options[j].value === '1') == value) ** selectBox.selectedIndex = j; j = -1; ** else ** --j; ** ** // while (j >= 0) ** const defaultTags = ** ShowPosts: false, TagColor: '#FF0000', Tag: '', AltNick: '', ReplaceNickLeft: false, ReplaceNickQuoute: false, CensorMessage: '' **; function SaveTags(UserID, itemID) ** const Text = Trim(document.getElementById('TagsEdit').value); const ShowPosts = document.getElementById('ShowPosts').value; const AltNick = Trim(document.getElementById('AltNickEdit').value); const ReplaceNickLeft = document.getElementById('ReplaceNickLeft').value; const ReplaceNickQuoute = document.getElementById('ReplaceNickResponse').value; const CensorMessage = Trim(document.getElementById('CensorMessage').value); if (Text !== '' || ShowPosts !== '1' || ReplaceNickLeft !== '1' || ReplaceNickQuoute !== '1' || CensorMessage !== '' || AltNick != '') ** const Color = document.getElementById('TextColor').value; let Holder = document.getElementById('TagsHolder' + itemID); Holder.style.color = Color; Holder.innerHTML = ' ' + Text; let newTags = Object.assign(****, defaultTags); newTags.ShowPosts = (ShowPosts === '1'); newTags.TagColor = Color; newTags.Tag = Text; newTags.AltNick = AltNick; newTags.ReplaceNickLeft = (ReplaceNickLeft === '1'); newTags.ReplaceNickQuoute = (ReplaceNickQuoute === '1'); newTags.CensorMessage = CensorMessage; localStorage.setItem('User' + UserID, JSON.stringify(newTags)); ** else ** document.getElementById('TagsHolder' + itemID).innerHTML = ''; localStorage.removeItem('User' + UserID); ** EditTags(UserID, 0); ** function GetTags(UserID) ** const strTags = localStorage.getItem('User' + UserID); if (!strTags) ** return null; ** if (!strTags) ** return defaultTags; ** try ** let tags = JSON.parse(strTags); return tags; ** catch (e) ** let oldTags = SplitTags(strTags); if (oldTags && oldTags.length === 3) ** let importedTags = Object.assign(****, defaultTags); importedTags.ShowPosts = (oldTags[0] === '1'); importedTags.TagColor = oldTags[1]; importedTags.Tag = oldTags[2]; return importedTags; ** ** return defaultTags; ** function SplitTags(strTags) ** if (strTags !== null && strTags !== undefined) ** if(strTags.match(/^\d#[A-F\d]{6**\s\S*/gi)) return new Array(strTags.substr(0, 1), strTags.substr(1, 7), strTags.substr(9)); else return new Array('1', '#FF0000', strTags); ** return null; ** function Trim(Text) ** return TrimLeft(TrimRight(Text)); ** function TrimLeft(Text) ** var i = 0; while(i < Text.length && '\t\n\r '.indexOf(Text.charAt(i)) >= 0) ++i; return Text.substring(i); ** function TrimRight(Text) ** var i = Text.length-1; while(i >= 0 && '\t\n\r '.indexOf(Text.charAt(i)) >= 0) --i; return Text.substring(0, i+1); ** /* jshint ignore:start */ ]]></>).toString(); var c = babel.transform(inline_src); eval(c.code); /* jshint ignore:end */ | | |
62
- 17.08.2018 - 00:27
|
60-Хаус MD > Кстати, отличная идея. Сделаю, но у мудэ работать не будет )) | | |
63
- 17.08.2018 - 10:59
| странно, Сатанас сделал интересную игрушку - хочешь пользуйся, хочешь нет - почему вообще есть какие-то другие, кроме ровно позитивно-любопытных, эмоции? )) такое впечатление, что кому-то не все равно как его постинги и ники отображаются на чужом экране ) | | |
64
- 17.08.2018 - 11:03
| 61-Грин > Скажите, пожалуйста, а это что за абракодабра )? И что такое "скрипт"? | | |
65
- 17.08.2018 - 11:08
| Цитата:
Если су-гробчик.СтепеньВыпимши = "под шафе" Тогда . ЗафигачитьСальнуюШутку(КоличествоСальныхШуток); ИначеЕсли су-гробчик.СтепеньВыпимши = "трезвая" Тогда . ВключитьРомантик(КоличествоМинут); КонецЕсли; | | |
66
- 17.08.2018 - 11:16
|
64-Су_гробчик > тебя в яндексе с гуглом забанили? и в атсральный план не пускают из-за того, что чакры забиты? что, и хрониках акаши ни чего не написано? ок, помогу: Скрипт — это программа или программный файл сценарий, которые автоматизируют некоторую задачу, которую пользователь делал бы вручную, используя интерфейс программы Ответы@Mail.Ru: что такое скрипт что такое скрипт otvet.mail.ru›98136114 Мало, хочешь более развёрнуто? ок https://ru.wikipedia.org/wiki/Сценарный_язык | | |
67
- 17.08.2018 - 11:51
| Цитата:
65-KRIHA >Да? Оч остроумно. А почему я в этом недоделанном хроме могу смотреть видео, размещённые уважаемыми форумчанами данного форума, а в своем любимом UC могу только пройти по ссылке, если уважаемый автор сообщения удосужится ее написать. А раньше все прекрасно прогружалось. А теперь кто-то специально все испортил. | | |
68
- 17.08.2018 - 12:00
| у меня правая кнопка мыши на форуме то работает то не работает.. | | |
69
- 17.08.2018 - 12:07
|
68-Хаус MD > в разделе ПКМ работает, в темах же заблокировали ПКМ и некоторые другие функции криворукие веб-программисты специальным ява-скриптом. Если у тебя Огнелис, то обходится эта блокировка нажатием клавиши шифт, если Хром, то придётся ставить аддон, запрещающий сайтам контролировать правую кнопку мыши. | | |
70
- 17.08.2018 - 12:18
| Цитата:
| | |
71
- 17.08.2018 - 13:00
|
69-Грин >шифтом я и обхожу.. ну сначала пересрался.. думал что то с ноутом.. подскажи какой | | |
72
- 17.08.2018 - 13:49
| https://chrome.google.com/webstore/d...plmboaeo?hl=ru В настройках можно прописать для каких сайтов оставить подмену контекстного меню ПКМ | |
| Интернет-форум Краснодарского края и Краснодара |