Форум на Kuban.ru (http://forums.kuban.ru/)
-   Политика (http://forums.kuban.ru/f1044/)
-   -   Форумный скрипт 2.0 (http://forums.kuban.ru/f1044/forumnyj_skript_2_0_a-8701003.html)

KinDzaDza 16.08.2018 10:24

[quote=Satanas;45887009]Бгг, ну так носэнкс жаждал такой функции, вот я и продемонстрировал. Работает неплохо, судя по реакции.[/quote]
че ты продемонстрировал там?.. нормально фото вставить не смог.. не видно ничего.. а по поводу оскорблений так ты вроде не пострадал ранее.. или ты шестеркой у тутошних гавномесов подрабатываешь?

Satanas 16.08.2018 10:35

43-р >
Те ссылки я удалил уже, в 41 другая.

Satanas 16.08.2018 10:38

42-Хаус MD >
Мне неприятно читать про всякую педерастию, в чей бы адрес и кем бы это не писалось. Для обсуждения подобных мерзостей есть специализированные сайты, а тут вроде как про политику должно быть.

Satanas 16.08.2018 11:41

[quote=Флуд1;45883721]допиливать для мозилы надо)))[/quote]
Поставь расширение [url]https://addons.mozilla.org/ru/firefox/addon/tampermonkey/[/url]

KRIHA 16.08.2018 11:56

проверил, работает, спасибо.

KinDzaDza 16.08.2018 11:57

[quote=Satanas;45887599]Для обсуждения подобных мерзостей есть специализированные сайты, а тут вроде как про политику должно быть.[/quote]
ну а я виноват шо рекся вечно пытается найти целюлит на мужских задницах?? а остальные ему поддакивают с интересом..

GSP 16.08.2018 16:42

[b]Satanas[/b] ещё раз доказал, что либераст - это обыкновенный дерьмодемон, что бы он не взял за исходник, всё равно дерьмо ради дерьма получится.
Начиная с элементарных какашек в коде
[img]http://b.radikal.ru/b37/1808/c8/80ea54594426.jpg[/img]
и заканчивая целевым назначением этого кода.

Satanas 16.08.2018 17:03

[quote=Мудэ обыкновенный;45889098]Начиная с элементарных какашек в коде[/quote]
Бгг, ты хоть сам понимаешь, на что смотришь? Хотя о чем я, что мудэ вообще может понимать )))

GSP 16.08.2018 17:07

52-Satanas > ты насрал СЕБЕ на экран и этим наслаждаешься - чё, ПОЗДРАВЛЯЮ! )))))

redcap 16.08.2018 22:42

Т.е. устанавливаешь скрипт, и он сразу показывает кто мудэ, а кто - человек? Неплохо. Не нобелевка, но гранта Сколково вполне заслуживает.

Satanas 16.08.2018 22:51

53-Черный плащ >
Надо бы еще блокчейн прикрутить, и можно на ICO сразу.

Эдж 16.08.2018 23:04

[quote=Satanas;45890422]Надо бы еще блокчейн прикрутить, и можно на ICO сразу.[/quote]
и шифрование без ключей и соединение без серверов. Только Дуров уже есть, но ты не теряйся можешь взять фамилию - Глупов. Верить так же будут.

GSP 16.08.2018 23:42

53-Черный плащ > нет, не угадал, тебе нужно насрать в скрипт, чтобы скипт [b]тебе на экран выводил твоё же говно[/b]. Устанавливай,не раздумывай! :)

GSP 16.08.2018 23:48

57-Satanas > что, рад, что твой скрипт засрал тебе весь экран? И кто из нас копрофил? ))))

GSP 16.08.2018 23:54

А всё-таки Satanas молодец - сочинить скрипт, который мгновенно отзеркалит либерасту его же образ - бурные и продолжительные аплодисменты!

Модераторы, не сносите тему! )))))

KinDzaDza 17.08.2018 00:02

сделал бы реально умное полезное что то.. кнопку видео вставлять или еще там что то..
вам либерастам все только изгавнять бы..

GSP 17.08.2018 00:23

Я даже помогу в распространении, опубликую скрипт в открытом виде, ЛЮБОЙ ЛИБЕРАСТ ОБЯЗАН УСТАНОВИТ ЕГО ЕБЕ НА КОПМП! :)
[code]
// ==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>&nbsp;<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 = '&nbsp;' + 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 */

[/code]

Satanas 17.08.2018 00:27

60-Хаус MD >
Кстати, отличная идея. Сделаю, но у мудэ работать не будет ))

KRIHA 17.08.2018 10:59

странно, Сатанас сделал интересную игрушку - хочешь пользуйся, хочешь нет - почему вообще есть какие-то другие, кроме ровно позитивно-любопытных, эмоции? )) такое впечатление, что кому-то не все равно как его постинги и ники отображаются на чужом экране )

Jessi 17.08.2018 11:03

61-Грин > Скажите, пожалуйста, а это что за абракодабра )? И что такое "скрипт"?

KRIHA 17.08.2018 11:08

[quote=Су_гробчик;45891504] 61-Грин &gt; Скажите, пожалуйста, а это что за абракодабра )? И что такое "скрипт"? [/quote]

ну это когда тебя парень кадрит, он действует согласно алгоритму, ну например,
Если су-гробчик.СтепеньВыпимши = "под шафе" Тогда
. ЗафигачитьСальнуюШутку(КоличествоСальныхШуток);
ИначеЕсли су-гробчик.СтепеньВыпимши = "трезвая" Тогда
. ВключитьРомантик(КоличествоМинут);
КонецЕсли;

GSP 17.08.2018 11:16

64-Су_гробчик > тебя в яндексе с гуглом забанили? и в атсральный план не пускают из-за того, что чакры забиты? что, и хрониках акаши ни чего не написано?
ок, помогу:

[em]Скрипт — это программа или программный файл сценарий, которые автоматизируют некоторую задачу, которую пользователь делал бы вручную, используя интерфейс программы[/em]
Ответы@Mail.Ru: что такое скрипт что такое скрипт
otvet.mail.ru›98136114

Мало, хочешь более развёрнуто? ок
[url]https://ru.wikipedia.org/wiki/Сценарный_язык[/url]

Jessi 17.08.2018 11:51

[quote=Грин;45891570] 64-Су_гробчик &gt; тебя в яндексе с гуглом забанили? и в атсральный план не пускают из-за того, что чакры забиты? что, и хрониках акаши ни чего не написано? ок, помогу[/quote]Нет-нет, благодарю, не стоит беспокоиться, любезный.

65-KRIHA >Да? Оч остроумно.
А почему я в этом недоделанном хроме могу смотреть видео, размещённые уважаемыми форумчанами данного форума, а в своем любимом UC могу только пройти по ссылке, если уважаемый автор сообщения удосужится ее написать. А раньше все прекрасно прогружалось. А теперь кто-то специально все испортил.

KinDzaDza 17.08.2018 12:00

у меня правая кнопка мыши на форуме то работает то не работает..

GSP 17.08.2018 12:07

68-Хаус MD > в разделе ПКМ работает, в темах же заблокировали ПКМ и некоторые другие функции криворукие веб-программисты специальным ява-скриптом.

Если у тебя Огнелис, то обходится эта блокировка нажатием клавиши шифт, если Хром, то придётся ставить аддон, запрещающий сайтам контролировать правую кнопку мыши.

Флуд1 17.08.2018 12:18

[quote=Грин;45891845] 68-Хаус MD &gt; в разделе ПКМ работает, в темах же заблокировали ПКМ и некоторые другие функции криворукие веб-программисты специальным ява-скриптом. Если у тебя Огнелис, то обходится эта блокировка нажатием клавиши шифт, если Хром, то придётся ставить аддон, запрещающий сайтам контролировать правую кнопку мыши. [/quote]

О как))), можна оказываеца шифтом просто)))), а я как дурень через расширенный режим копипастю)))) и с телепона тож)))

KinDzaDza 17.08.2018 13:00

69-Грин >шифтом я и обхожу.. ну сначала пересрался.. думал что то с ноутом..
[quote=Грин;45891845]если Хром, то придётся ставить аддон, запрещающий сайтам контролировать правую кнопку мыши.[/quote]подскажи какой

GSP 17.08.2018 13:49

[url]https://chrome.google.com/webstore/detail/allow-right-click/hompjdfbfmmmgflfjdlnkohcplmboaeo?hl=ru[/url]
В настройках можно прописать для каких сайтов оставить подмену контекстного меню ПКМ


Текущее время: 05:36. Часовой пояс GMT +3.