К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Форумный скрипт 2.0

Гость
0 - 15.08.2018 - 02:43
Посмотрел я на этот бардак, и обновил скрипт для Хрома и Оперы.
Качать тут
Для применения нужно:
1) Скачать файл
2) Установить расширение TamperMonkey (для Хрома, для Оперы)
3) Нажать на иконку расширения справа сверху, выбрать "панель" в опере, "панель управления" в хроме, Утилиты, Файл, Выберите файл (указать скачанный файл), импорт.
Функционал почти тот же. Удобную возможность автоматически оскорблять собеседника при ответе добавлю чуток попозже.
PS В Firefox тоже должно работать.
PPS В рамках операции вихрь-антиМуДэ.



Гость
41 - 16.08.2018 - 10:24
Цитата:
Сообщение от Satanas Посмотреть сообщение
Бгг, ну так носэнкс жаждал такой функции, вот я и продемонстрировал. Работает неплохо, судя по реакции.
че ты продемонстрировал там?.. нормально фото вставить не смог.. не видно ничего.. а по поводу оскорблений так ты вроде не пострадал ранее.. или ты шестеркой у тутошних гавномесов подрабатываешь?
Гость
43 - 16.08.2018 - 10:35
43-р >
Те ссылки я удалил уже, в 41 другая.
Гость
44 - 16.08.2018 - 10:38
42-Хаус MD >
Мне неприятно читать про всякую педерастию, в чей бы адрес и кем бы это не писалось. Для обсуждения подобных мерзостей есть специализированные сайты, а тут вроде как про политику должно быть.
Гость
46 - 16.08.2018 - 11:41
Цитата:
Сообщение от Флуд1 Посмотреть сообщение
допиливать для мозилы надо)))
Поставь расширение https://addons.mozilla.org/ru/firefo.../tampermonkey/
47 - 16.08.2018 - 11:56
проверил, работает, спасибо.
Гость
48 - 16.08.2018 - 11:57
Цитата:
Сообщение от Satanas Посмотреть сообщение
Для обсуждения подобных мерзостей есть специализированные сайты, а тут вроде как про политику должно быть.
ну а я виноват шо рекся вечно пытается найти целюлит на мужских задницах?? а остальные ему поддакивают с интересом..
Гость
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
Цитата:
Сообщение от Satanas Посмотреть сообщение
Надо бы еще блокчейн прикрутить, и можно на ICO сразу.
и шифрование без ключей и соединение без серверов. Только Дуров уже есть, но ты не теряйся можешь взять фамилию - Глупов. Верить так же будут.
Гость
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>&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 */
Гость
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
Цитата:
Сообщение от Су_гробчик Посмотреть сообщение
61-Грин &gt; Скажите, пожалуйста, а это что за абракодабра )? И что такое "скрипт"?
ну это когда тебя парень кадрит, он действует согласно алгоритму, ну например,
Если су-гробчик.СтепеньВыпимши = "под шафе" Тогда
. ЗафигачитьСальнуюШутку(КоличествоСальныхШуток);
ИначеЕсли су-гробчик.СтепеньВыпимши = "трезвая" Тогда
. ВключитьРомантик(КоличествоМинут);
КонецЕсли;
Гость
66 - 17.08.2018 - 11:16
64-Су_гробчик > тебя в яндексе с гуглом забанили? и в атсральный план не пускают из-за того, что чакры забиты? что, и хрониках акаши ни чего не написано?
ок, помогу:

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

Мало, хочешь более развёрнуто? ок
https://ru.wikipedia.org/wiki/Сценарный_язык
67 - 17.08.2018 - 11:51
Цитата:
Сообщение от Грин Посмотреть сообщение
64-Су_гробчик &gt; тебя в яндексе с гуглом забанили? и в атсральный план не пускают из-за того, что чакры забиты? что, и хрониках акаши ни чего не написано? ок, помогу
Нет-нет, благодарю, не стоит беспокоиться, любезный.

65-KRIHA >Да? Оч остроумно.
А почему я в этом недоделанном хроме могу смотреть видео, размещённые уважаемыми форумчанами данного форума, а в своем любимом UC могу только пройти по ссылке, если уважаемый автор сообщения удосужится ее написать. А раньше все прекрасно прогружалось. А теперь кто-то специально все испортил.
Гость
68 - 17.08.2018 - 12:00
у меня правая кнопка мыши на форуме то работает то не работает..
Гость
69 - 17.08.2018 - 12:07
68-Хаус MD > в разделе ПКМ работает, в темах же заблокировали ПКМ и некоторые другие функции криворукие веб-программисты специальным ява-скриптом.

Если у тебя Огнелис, то обходится эта блокировка нажатием клавиши шифт, если Хром, то придётся ставить аддон, запрещающий сайтам контролировать правую кнопку мыши.
Гость
70 - 17.08.2018 - 12:18
Цитата:
Сообщение от Грин Посмотреть сообщение
68-Хаус MD &gt; в разделе ПКМ работает, в темах же заблокировали ПКМ и некоторые другие функции криворукие веб-программисты специальным ява-скриптом. Если у тебя Огнелис, то обходится эта блокировка нажатием клавиши шифт, если Хром, то придётся ставить аддон, запрещающий сайтам контролировать правую кнопку мыши.
О как))), можна оказываеца шифтом просто)))), а я как дурень через расширенный режим копипастю)))) и с телепона тож)))
Гость
71 - 17.08.2018 - 13:00
69-Грин >шифтом я и обхожу.. ну сначала пересрался.. думал что то с ноутом..
Цитата:
Сообщение от Грин Посмотреть сообщение
если Хром, то придётся ставить аддон, запрещающий сайтам контролировать правую кнопку мыши.
подскажи какой
Гость
72 - 17.08.2018 - 13:49
https://chrome.google.com/webstore/d...plmboaeo?hl=ru
В настройках можно прописать для каких сайтов оставить подмену контекстного меню ПКМ


К списку вопросов






Copyright ©, Все права защищены