| 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 В настройках можно прописать для каких сайтов оставить подмену контекстного меню ПКМ | |
Интернет-форум Краснодарского края и Краснодара |