Bitcoin Forum

Local => Русский (Russian) => Topic started by: StartupAnalyst on February 04, 2019, 12:29:08 PM



Title: 📌 Подборка скриптов для форума
Post by: StartupAnalyst on February 04, 2019, 12:29:08 PM
В данной теме опубликован список скриптов и расширений для браузеров используя которые проводить время на форуме гораздо приятнее.
Скрипты будут добавляться по мере появления и обнаружения.
Конструктивная критика, дополнения и идеи для скриптов также приветствуются!

Дисклеймер:
Не рекомендуется использовать всевозможные скрипты , если вы хотите оставаться в тени.
Каждое дополнительное расширение/скрипт, делают цифровой отпечаток вашего браузера все более и более уникальным, тем самым выделяя его ( и заодно и вас) из общей толпы. (Уже даже не говорю о возможных дырах).


📌 Улучшенный пользовательский интерфейс системы Merit Оригинал темы (https://bitcointalk.org/index.php?topic=3033518.msg31208089#msg31208089)

Оригинальная англотема: https://bitcointalk.org/index.php?topic=2833350.0

Это очень простой скрипт, который позволяет добавлять Мериты, не покидая страницу топика. После установки скрипта нажмите на ссылку «+ Merit», чтобы открыть/закрыть всплывающее окно.


https://ip.bitcointalk.org/?u=https%3A%2F%2Fi.imgur.com%2FEfAEkBQ.png&t=586&c=1_eAVBc6dorcmg


Установка скрипта:

1. Если у вас ещё не установлено расширение для работы со скриптами в браузере, установить можно по ссылкам:

  • greasemonkey (firefox) (https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/);
  • tampermonkey (chrome) (https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)

2. Установить (скачать) скрипт: Merit.user.js (https://grue.blob.core.windows.net/scripts/Merit.user.js?sv=2014-02-14&si=1&sr=c&sig=k%2BqstGBI3oQ8TrHfPWjS5HgjrazuDPmKJ6rYNs7rvRk%3D&.user.js)


EcuaMobi усовершенствовал (https://bitcointalk.org/index.php?topic=2833350.msg30923337#msg30923337) скрипт. Теперь в окошке отображается количество оставшихся у вас сМеритов.

I have combined my own suggestion (https://bitcointalk.org/index.php?topic=2833350.msg29410086#msg29410086) as well as sncc's (https://bitcointalk.org/index.php?topic=2833350.msg29798554#msg29798554) and modified grue's script to implement them.

This is the result:
https://i.imgur.com/L5xiXfT.png

Here's the modified source. grue, feel free to update your original code if you like the change:
Code:
// ==UserScript==
// @name        bitcointalk merit
// @namespace   grue
// @include     https://bitcointalk.org/index.php?topic=*
// @require     https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.3.1.min.js
// @version     1.1-em0.1
// @downloadURL https://grue.blob.core.windows.net/scripts/Merit.user.js?sv=2014-02-14&si=1&sr=c&sig=k%2BqstGBI3oQ8TrHfPWjS5HgjrazuDPmKJ6rYNs7rvRk%3D&.user.js
// @grant none
// ==/UserScript==

(() => {
  var sMerit;
  
  //get csrf token from the logout link
  let sc = $('td.maintab_back a[href*="index.php?action=logout;sesc="').attr("href");
  sc = /;sesc=(.*)/.exec(sc)[1];
  
  //Added by EcuaMobi: Get remaining sMerit
  $.post(
"https://bitcointalk.org/index.php?action=merit;msg=29048068"
  ).then((data) => {
    sMerit = /You have <b>([0-9]+)<\/b> sendable/.exec(data)[1];
  }).catch(() => sMerit = null);

  //selector for the "+Merit" link
  $('td.td_headerandpost div[id^=ignmsgbttns] a[href*="index.php?action=merit;msg="]')
  .each((i, e) => {
    const msgId = /msg=([0-9]+)/.exec(e.href)[1];
    
    const $popup = $(['<div id="grue-merit-popup' + msgId +'" class="grue-merit-popup" style="position: absolute; right: 40px; background-color: #ddd; font-size: 13px; padding: 8px;border-width: 1px;border-color: black;border-style: solid;">',
      '  <form>',
      '    <div>',
      '      Merit points: <input size="6" name="merits" value="0" type="text"/>',
      '    </div>',
 // Modified by EcuaMobi
      '    <div style="margin-top: 6px; "><span id="em-smerit-count' + msgId +'" style="font-size:11px;" /> <input value="Send" type="submit"></div>',
      '  </form>',
      '</div>'
    ].join("\n"));
    $popup.find("form").submit( (e) => {
      e.preventDefault();
      $popup.find('input[type="submit"]')
        .prop("disabled", true)
        .val("Sending...");
      const merits = e.target.elements["merits"].value;
      
      $.post(
        "https://bitcointalk.org/index.php?action=merit",
        {merits, msgID: msgId, sc}
      ).then((data) => {
        //Error pages usually have this (rough heuristic)
        if(data.includes("<title>An Error Has Occurred!</title")) {
          throw "error";
        }
        //double check and see whether the post we merited was added to the list. Its msgId should be visible in the page source.
        if(data.includes("#msg" + msgId)) {
          alert("Merit added.");
          $("#grue-merit-popup" + msgId).toggle(false);
 // Added by EcuaMobi
 if(sMerit!=null) { sMerit -= merits }
          return;
        }
        alert("Server response indeterminate.");
      })
      .catch(() => alert("Failed to add merit."))
      .always(() => {
        $popup.find('input[type="submit"]')
        .prop("disabled", false)
        .val("Send");
      });
    });
    $popup.insertAfter(e);
    
    $(e).click((e) => {
      e.preventDefault();
      $("#grue-merit-popup" + msgId).toggle();
 // Added by EcuaMobi
 if(sMerit!=null) { $("#em-smerit-count" + msgId).html('<a href="https://bitcointalk.org/index.php?action=merit;msg='+msgId+'" target="_blank">Available:</a> <b>'+sMerit+'</b> &nbsp;&nbsp;&nbsp;') };
    });
  });
   $(".grue-merit-popup").toggle(false);
  
})();


📌 Скрипт позволяющий игнорировать сообщения низкого качества Оригинал темы  (https://bitcointalk.org/index.php?topic=4325308.msg43689074)

Задолбали боты, баунисты и просто нубы? Хочется тупо не замечать их? Вот решение! Скрипт для расширения браузера Greasemonkey

Просто замените (или добавьте) никнеймы ;) user1, user2...и.т.д на свои по усмотрению

Буду рад мериту

Code:
// ==UserScript==
// @name        bububu
// @namespace   bububu
// @include     https://bitcointalk.org/*
// @version     2
// @grant       none
// ==/UserScript==

(function () {
    var bububu = new Array('user1','user2', 'user3', 'user4');
    var bububuText = 'ну-би-ща';

    var posters = document.getElementsByClassName('poster_info');
    for(var i=0;i<posters.length;i++)
    {
        var posterName = posters[i].firstElementChild.textContent;
        for(var j=0;j<bububu.length;j++)
        {
            if(posterName==bububu[j])
            {
                posters[i].parentElement.lastElementChild.lastElementChild.innerHTML=bububuText;
            }
        }
    }
    var quotes = document.getElementsByClassName('quoteheader');
    for(var i=0;i<quotes.length;i++)
    {
        var quoterName = quotes[i].textContent;
        for(var j=0;j<bububu.length;j++)
        {
            if(quoterName.indexOf(bububu[j])>0)
            {                
                quotes[i].parentElement.getElementsByClassName('quote')[0].innerHTML=bububuText;
            }
        }
    }
})();

Вот здесь предлагается еще один скрипт (https://bitcointalk.org/index.php?topic=5098306.msg49267224#msg49267224), который делает прозрачными все сообщения на форуме, носящие подпись какого-либо АЙКО.  Сам скрипт можно забрать на гитхабе. (https://gist.github.com/CapnSparrow/d1f4f3d48c776279895a497a2eabe266).


📌 Скрипт для отправки отчета модератору из истории сообщений пользователя Оригинал темы (https://bitcointalk.org/index.php?topic=5102160.0#quickreply)

Оригинальная англоязычная тема (https://bitcointalk.org/index.php?topic=5101823.0)

Пользователь Cyrus (https://bitcointalk.org/index.php?action=profile;u=78147/) (администратор) создал очень полезный скрипт, с помощью которого можно отправить отчет модератору прямо из истории сообщений любого пользователя.


Code:
// ==UserScript==
// @name     Post history report button
// @version  1
// @grant    none
// @include  https://bitcointalk.org/index.php?action=profile;u=*;sa=showPosts*
// @require  https://code.jquery.com/jquery-2.2.4.min.js
// ==/UserScript==

var postLinks = $('td.middletext a:last-of-type');
var buttonLink = $("span.middletext").slice(1);

for (var i = 0; i < postLinks.length; i++) {
  var postLink = $(postLinks[i]);
  var reportLink = "<a href=" + postLink.prop("href").replace("index.php?", "index.php?action=reporttm;").replace(".msg", ";msg=") + ">Report to moderator</a>";
  $(buttonLink[i]).prepend (reportLink);
}

Чтобы использовать скрипт вам потребуется установить менеджер пользовательских скриптов, например расширение GreaseMonkey для браузера Mozilla Firefox или Tampermonkey для браузера Chrome.

Для тех кто не умеет пользоваться скриптами решил сделать небольшую инструкцию на примере установки расширения Tampermonkey для браузера Chrome:

1. Перейдите в интернет магазин Chrome (https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo?hl=ru) и нажмите установить.

https://a.radikal.ru/a12/1901/e9/2c25eae17425.png (https://radikal.ru)

2. Теперь у вас появилась иконка расширения. Нажимаем на нее, далее Создать новый скрипт...

https://c.radikal.ru/c04/1901/10/597fb1a3dce1.png (https://radikal.ru)

3. Скопируйте весь скрипт из поля Code выше. Затем нажмите Файл и Сохранить.

https://a.radikal.ru/a41/1901/fa/4251280f8a7b.png (https://radikal.ru)

4. Вы увидите что скрипт включен.

https://a.radikal.ru/a00/1901/1a/441e9b2c2df0.png (https://radikal.ru)

5. Далее переходим в историю сообщений любого пользователя и видим, что теперь под каждым постом появилась кнопка отчет модератору.

https://d.radikal.ru/d28/1901/05/33d4d6ee689f.png (https://radikal.ru)

6. Пользуемся!

Огромное спасибо Cyrus (https://bitcointalk.org/index.php?action=profile;u=78147/) за такой удобный и полезный скрипт. Сделаем форум чище, все вместе!



Обновление: по просьбе Xal0lex (https://bitcointalk.org/index.php?action=profile;u=1068464)
Перевод:
Скрипт не работает, если вы просматриваете последние темы пользователя. Было бы неплохо, чтобы скрипт работал и там.
пользователь TryNinja (https://bitcointalk.org/index.php?action=profile;u=557798) доработал скрипт:

Code:
// ==UserScript==
// @name     Post history report button
// @version  1
// @grant    none
// @include  https://bitcointalk.org/index.php?action=profile;u=*;sa=showPosts*
// @include  https://bitcointalk.org/index.php?action=profile;threads;u=*;sa=showPosts*
// @require  https://code.jquery.com/jquery-2.2.4.min.js
// ==/UserScript==

var postLinks = $('td.middletext a:last-of-type');
var buttonLink = $("span.middletext").slice(1);

for (var i = 0; i < postLinks.length; i++) {
  var postLink = $(postLinks[i]);
  var reportLink = "<a href=" + postLink.prop("href").replace("index.php?", "index.php?action=reporttm;").replace(".msg", ";msg=") + ">Report to moderator</a>";
  $(buttonLink[i]).prepend (reportLink);
}






📌 Скрипт для имитации кнопки "All" для больших топиков  Оригинал темы (https://bitcointalk.org/index.php?topic=5112444.0)

Все вы видели ссылку "All" возле списка страниц у маленьких тем:

https://i.imgur.com/fgTWuEL.png

Если кто не знает, этот прибамбас выводит сразу все страницы темы на одной. Но у больших тем такой кнопки нет.

LoyceV (https://bitcointalk.org/index.php?action=profile;u=459836) создал скрипт для форума (https://bitcointalk.org/index.php?topic=5112444.0), имитирующий такую кнопку для больших топиков (до пятисот страниц).

Порядок действий:

1. Берёте ID топика и подставляете в эту ссылку:

Code:
http://loyce.club/showall/"ID топика".html

2. Затем постите эту ссылку где угодно на форуме. Можно в той же теме, которую вы хотите просмотреть;
3. Немного терпения (около 10 секунд + 5 секунд на страницу);
4. Потом просто переходите по этой ссылке и всё - вы получаете все страницы большой темы на одной.

Это удобно, например, для поиска. Чтобы не переходить по сотне страниц темы, а загрузить сразу все страницы и воспользоваться поиском (Ctrl+F).

Пример темы Неофициальный список официальных правил (https://bitcointalk.org/index.php?topic=994018.0): http://loyce.club/showall/994018.html

Только не забываем после использования ссылки удалять пост с этой ссылкой.

Кстати, авторы больших топиков могли бы разместить такие ссылки в стартовых постах своих топиков.

📌 Скрипт и расширение для игнора неинтересных тем Оригинал темы (https://bitcointalk.org/index.php?topic=879742.msg9709290#msg9709290)

Скрипт для игнора тем.
https://bitcointalk.org/index.php?topic=1451483.0
https://i.imgur.com/faDvPHT.png

Расширение для Chrome. Подсветка темы зеленым или красным(like,dislike).
Можно скрыть dislike топики.
https://bitcointalk.org/index.php?topic=879742.msg9709290#msg9709290
https://i.imgur.com/RUw2jqa.png


📌   Комплексный скрипт (недоработан) Оригинал темы (https://bitcointalk.org/index.php?topic=264337.0)

Есть скрипт - целый комбайн - для нашего форума - BitcoinTalk++ script - v0.2.96 (https://bitcointalk.org/index.php?topic=264337.0). Он правда полурабочий, так сказать. Но там есть интересные функции. Например, многие спрашивают, как можно скрыть различные ненужные темы. Так вот там есть такая опция:

https://i.imgur.com/Jglgp6q.png

Возьмём, к примеру, топик [Список] Забаненные пользователи (https://bitcointalk.org/index.php?topic=4588431.0). Вы хотите его скрыть. Для этого в окошке пишете "bt:4588431" и нажимаете кнопку "Change". Потом нажимаете "Save settings" и всё, при обновлении страницы тема будет скрыта.

Было:

https://i.imgur.com/5VU3lNZ.png

Стало:

https://i.imgur.com/wJCtPR3.png

Можно указывать кучу топиков через точку с запятой. Чтобы сбросить всё, нужно нажать на "(default=)". Все скрытые темы появятся снова.

P.S. Если бы кто-нибудь из JavaScript-специалистов проверил-проштудировал этот скрипт и довёл бы его до ума - убрал бы чего лишнего (или, в частности, вытянул бы из комбайна вышеприведенную мной функцию), было бы очень неплохо (лично для меня, там куча ненужного). Так как я так понял, что автор скрипта давно его забросил: последний раз был на форуме 13 мая 2018 года, да к тому же и забанен.

📌  Скрипт по работе с цитатами Оригинал темы (https://bitcointalk.org/index.php?topic=5148327.0)

Чтобы избавиться от лишних цитат при цитировании оверквотинга EcuaMobi написал скрипт по работе с цитатами (https://bitcointalk.org/index.php?topic=5148327.0).

После установки скрипт добавляет три кнопки-ссылки:

https://i.imgur.com/hrrMp4E.png

1. Full text - возвращает на место весь оверквотинг (всё как было);

https://i.imgur.com/2IXRKre.png

2. Latest quote - удаляет из оверквотинга все цитаты, кроме последней;

https://i.imgur.com/U4ooGFx.png

3. ~snip~ - удаляет весь оверквотинг и в последней цитате меняет весь текст на ~snip~ (вырезано).

https://i.imgur.com/j3YhAtC.png

Важно: все действия с цитатами с помощью этих кнопок нужно производить до того как вы начнёте набирать свой комментарий. Иначе вы потеряете всё, что вы написали.

Установка скрипта не составляет труда. У вас должно быть установлено расширение для браузера: Tampermonkey для Chrome, Greasemonkey для Firefox, или Violentmonkey для Opera.

Можно установить скрипт по этой ссылке https://openuserjs.org/scripts/EcuaMobi/Quote_plus

Исходный код скрипта https://openuserjs.org/scripts/EcuaMobi/Quote_plus/source

Code:
// ==UserScript==
// @name        Quote plus
// @namespace   ecuamobi
// @author      EcuaMobi
// @include     https://bitcointalk.org/index.php?action=post;quote=*
// @require     https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.3.1.min.js
// @version     1.0
// @license   MIT
// @grant none
// ==/UserScript==

(() => {
  var full_text = document.forms.postmodify.message.value;
  var regex = /\[quote author/gi,
    result, indices = [];
  // Find second [quote]
  var i = 0;
  var start2 = 0;
  var end2 = 0;
  while ((result = regex.exec(full_text))) {
    i++;
    if (2 == i) {
      start2 = result.index;
      break;
    }
  }
  regex = /\[\/quote\]/gi, result, indices = [];
  var last = 0;
  while ((result = regex.exec(full_text))) {
    if (last > 0) {
      end2 = last + 8;
    }
    last = result.index;
  }

  // Are there several quotes?
  if (start2 == 0 || end2 == 0) {
    // Abort
    return;
  }

  // Get text to use for every option
  var latest_quote = full_text.substr(0, start2).trim() + '\n' + full_text.substr(end2).trim() + '\n';
  var snip_quote = full_text.substr(0, start2).trim() + '~snip~[/quote]\n';
  full_text = full_text.trim() + '\n';

  // By default use the latest quote. REPLACE THIS BY snip_quote OR REMOVE IF DESIRED
  document.forms.postmodify.message.value = latest_quote;

  // Add buttons to manually use full text, latest quote or snip
  const $links = $("<span style='margin-left:35%'><a id='full_text' href='#'>Full text</a> | <a id='latest_quote' href='#'>Latest quote</a> | <a id='snip_quote' href='#'>~snip~</a></span>");
  $links.insertAfter($("#postMoreOptions"));

  $("#full_text").click((e) => {
    e.preventDefault();
    document.forms.postmodify.message.value = full_text;
  });
  $("#latest_quote").click((e) => {
    e.preventDefault();
    document.forms.postmodify.message.value = latest_quote;
  });
  $("#snip_quote").click((e) => {
    e.preventDefault();
    document.forms.postmodify.message.value = snip_quote;
  });
})();

Примечания и ограничения:

- скрипт не будет работать, если нет вложенных цитат;
- скрипт учитывает только цитаты вида "[ quote author=username link=...". Обычный тег [ quote] не учитывается;
- скрипт может не работать, если вложенные цитаты находятся не в начале поста или цитаты смешаны с ответами на эти цитаты;
- вы должны проверять с помощью "Preview" как отработал скрипт, в противном случае вы можете вернуть всё как и было, нажав на кнопку "Full text".

Так как EcuaMobi продолжит работу над развитием скрипта, комментарии и пожелания по работе скрипта в топике автора приветствуются.

📌  Скрипт добавляющий значок для архивирования Оригинал темы (https://bitcointalk.org/index.php?topic=5151005.09)

Скрипт (https://bitcointalk.org/index.php?topic=5151005.0), добавляющий ко всем ссылкам значок для мгновенного архивирования темы/поста.

https://i.imgur.com/wrIw9xq.png


Хотя я лично предпочитаю официальные букмарклеты архивов:

- archive.today (https://archive.fo) (в самом верху страницы)

Code:
javascript:void(open('http://archive.today/?run=1&url='+encodeURIComponent(document.location)))

- Wayback Machine (https://en.wikipedia.org/wiki/Help:Using_the_Wayback_Machine#JavaScript_bookmarklet)

Code:
javascript:void(window.open('https://web.archive.org/web/*/'+location.href));

📌  Скрипт показывающий баланс Bitcoin-адреса Оригинал темы (https://bitcointalk.org/index.php?topic=5158298.0)

Скрипт (https://bitcointalk.org/index.php?topic=5158298.0), который отображает баланс любого Bitcoin-адреса, присутствующего на форуме.
Адреса SegWit не отображает.

https://i.imgur.com/R7Z7mTT.png


https://i.imgur.com/Qcqd29n.png


https://i.imgur.com/2FKtFzv.png

Особая благодарность модератору Xal0lex (https://bitcointalk.org/index.php?action=profile;u=1068464) за помощь в ведении темы, а так же прочим участникам форума принимавшим участие в ее наполнении!





Title: Подборка скриптов для форума
Post by: StartupAnalyst on February 04, 2019, 12:29:36 PM
📌 Модификация скрипта для меритсоросов от ETFbitcoin Оригинал темы (https://bitcointalk.org/index.php?topic=2833350.msg51972715#msg51972715)

Code:
// ==UserScript==
// @name        bitcointalk merit
// @namespace   grue
// @include     https://bitcointalk.org/index.php?topic=*
// @require     https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.3.1.min.js
// @version     1.1.1
// @downloadURL https://grue.blob.core.windows.net/scripts/Merit.user.js?sv=2014-02-14&si=1&sr=c&sig=k%2BqstGBI3oQ8TrHfPWjS5HgjrazuDPmKJ6rYNs7rvRk%3D&.user.js
// @grant none
// ==/UserScript==

(() => {
  var sMerit;
  var source_sMerit;

  //get csrf token from the logout link
  let sc = $('td.maintab_back a[href*="index.php?action=logout;sesc="').attr("href");
  sc = /;sesc=(.*)/.exec(sc)[1];

  //Added by EcuaMobi: Get remaining sMerit
  $.post(
"https://bitcointalk.org/index.php?action=merit;msg=29048068"
  ).then((data) => {
    sMerit = /You have <b>([0-9]+)<\/b> sendable/.exec(data)[1];
    source_sMerit = /The next ([0-9]+) merit you spend will come from your source/.exec(data)[1];
  }).catch(() => sMerit = null);

  //selector for the "+Merit" link
  $('td.td_headerandpost div[id^=ignmsgbttns] a[href*="index.php?action=merit;msg="]')
  .each((i, e) => {
    const msgId = /msg=([0-9]+)/.exec(e.href)[1];

    const $popup = $(['<div id="grue-merit-popup' + msgId +'" class="grue-merit-popup" style="position: absolute; right: 40px; background-color: #ddd; font-size: 13px; padding: 8px;border-width: 1px;border-color: black;border-style: solid;">',
      '  <form>',
      '    <div>',
      '      Merit points: <input size="6" name="merits" value="1" type="text"/>',
      '    </div>',
 // Modified by EcuaMobi
      '    <div style="margin-top: 6px; "><span id="em-smerit-count' + msgId +'" style="font-size:11px;" /> <input value="Send" type="submit"></div>',
      '  </form>',
      '</div>'
    ].join("\n"));
    $popup.find("form").submit( (e) => {
      e.preventDefault();
      $popup.find('input[type="submit"]')
        .prop("disabled", true)
        .val("Sending...");
      const merits = e.target.elements["merits"].value;

      $.post(
        "https://bitcointalk.org/index.php?action=merit",
        {merits, msgID: msgId, sc}
      ).then((data) => {
        //Error pages usually have this (rough heuristic)
        if(data.includes("<title>An Error Has Occurred!</title")) {
          throw "error";
        }
        //double check and see whether the post we merited was added to the list. Its msgId should be visible in the page source.
        if(data.includes("#msg" + msgId)) {
          alert("Merit added.");
          $("#grue-merit-popup" + msgId).toggle(false);
 // Added by EcuaMobi
 if(sMerit!=null) { sMerit -= merits }
          return;
        }
        alert("Server response indeterminate.");
      })
      .catch(() => alert("Failed to add merit."))
      .always(() => {
        $popup.find('input[type="submit"]')
        .prop("disabled", false)
        .val("Send");
      });
    });
    $popup.insertAfter(e);

    $(e).click((e) => {
      e.preventDefault();
      $("#grue-merit-popup" + msgId).toggle();
 // Added by EcuaMobi
 if(sMerit!=null && source_sMerit==null) {
      $("#em-smerit-count" + msgId).html('<a href="https://bitcointalk.org/index.php?action=merit;msg='+msgId+'" target="_blank">Available:</a> <b>'+sMerit+'</b> &nbsp;&nbsp;&nbsp;')
    } else if (sMerit!=null && source_sMerit!=null) {
      $("#em-smerit-count" + msgId).html('<a href="https://bitcointalk.org/index.php?action=merit;msg='+msgId+'" target="_blank">Available (yours | source):</a> <b>'+sMerit+' | '+source_sMerit+'</b> &nbsp;&nbsp;&nbsp;')
    };
    });
  });
   $(".grue-merit-popup").toggle(false);
})();

https://i.ibb.co/6syStGT/111.png

📌 Скрипт отображающий общее количество меритов у поста Оригинал темы (https://bitcointalk.org/index.php?topic=5148488.msg52264117#msg52264117)


📌 Скрипт для удобного чтения многостраничных топиков

PageZipper (https://www.printwhatyoulike.com/pagezipper) - скрипт для удобного чтения многостраничных топиков. Он автоматически объединяет страницы топика в одну. То есть, чтобы прочитать следующую страницу топика, не нужно нажимать на цифры - достаточно прокрутить первую страницу вниз и там уже будет следующая.

https://i.imgur.com/uCQjlGG.png


После запуска скрипт отобразит окошко в правом верхнем углу.

https://i.imgur.com/gYRs3dD.png

Где:

  • стрелки позволяют передвигаться по объединённым страницам;
  • первая цифра показывает номер страницы, на которой вы сейчас находитесь;
  • вторая цифра показывает количество объединённых страниц.

Скрипт реализован:

  • в виде букмарклета - достаточно перетянуть ссылку, указанную на оффсайте на панель закладок и можно пользоваться;
  • в виде расширения для Chrome и Firefox.

Я лично пользуюсь букмарклетом, не люблю расширения устанавливать. Чтобы выключить букмарклет, достаточно перезагрузить страницу.

Что такое букмарклет можно прочитать здесь (https://ru.wikipedia.org/wiki/Букмарклет).

📌 Скрипт для замены фона форума Оригинал темы (https://bitcointalk.org/index.php?topic=5211381.0)

Скрипт по изменению цвета фона на форуме

Вставьте этот скрипт в Greasemonkey, Tampermonkeфy или в  другое подобное расширение.

- greasemonkey (https://addons.mozilla.org/ru/firefox/addon/greasemonkey/)  Mozilla firefox
- tampermonkey (https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo?hl=en) Chrome

https://i.ibb.co/mFjHr88/1.png (https://imgbb.com/)

Code:
// ==UserScript==
// @name        Droomie
// @namespace   https://bitcointalk.org/
// @description Change Bitcointalk Background color
// @include     https://bitcointalk.org/*
// @version     1.0
// ==/UserScript==
document.body.style.background = "yellow";

Для изменения цвета вставьте "yellow"

Code:
document.body.style.background = "Black";
или
тёмно коралловый
Code:
document.body.style.background = "#cf524e";
итд...

Картинки

https://i.ibb.co/NnR3gCj/2.png (https://ibb.co/JFZdWt7)

https://i.ibb.co/Rh73LTK/122.png (https://ibb.co/JxCvXjT)

Перевод. Оригинальная тема Script to Change Bitcointalk Background Color (https://bitcointalk.org/index.php?topic=5211381.0)

📌 Способ как "не выжигать глаза ночью"Оригинал темы (https://bitcointalk.org/index.php?topic=580171.0)

В соответствии с популярным запросом, я сделал тёмную версию текущего CSS на bitcointalk (если есть интерес, я тоже сделаю мобильный CSS).
Если у вас есть какие-нибудь идеи или предложения, я буду рад подкорректировать и улучшить текущий дизайн.

Скриншоты:
https://i.imgur.com/Rv3EAuwl.png (http://imgur.com/Rv3EAuw) https://i.imgur.com/wTZdVQ5l.png (http://imgur.com/wTZdVQ5)
*Нажмите для полного просмотра

Код здесь.  here (http://pastebin.com/P1xD0xdD).

За эту находку надо благодарить FontSeli (https://bitcointalk.org/index.php?action=profile;u=2221613)

📌 Продолжение следует


Title: Re: Подборка скриптов упрощающих пользован
Post by: StartupAnalyst on February 04, 2019, 12:30:33 PM
Резерв 2


Title: Re: Подборка скриптов для форума
Post by: StartupAnalyst on February 04, 2019, 07:15:18 PM
Все это очень хорошо, но только надо понимать что каждое дополнительное расширение/скрипт, делают цифровой отпечаток  вашего браузера все более и более уникальным, тем самым выделяя его ( и заодно и вас) из общей толпы. (Уже даже не говорю о возможных дырах).

Не рекомендуется, если вы  хотите оставаться в тени.

Зы, у меня нет ни одного расширения или скрипта, который бы выделял мой браузер из общей массы.
Спасибо за дополнение! Пожалуй стоит добавить его в шапку дабы каждый пытливый ум понимал чем рискует, в свое же оправдание скажу что мне скрывать нечего, а вот фичи я люблю ::)


Title: Re: Подборка скриптов для форума
Post by: kirreev070 on February 04, 2019, 08:32:10 PM
Все это очень хорошо, но только надо понимать что каждое дополнительное расширение/скрипт, делают цифровой отпечаток  вашего браузера все более и более уникальным, тем самым выделяя его ( и заодно и вас) из общей толпы. (Уже даже не говорю о возможных дырах).

Не рекомендуется, если вы  хотите оставаться в тени.

Зы, у меня нет ни одного расширения или скрипта, который бы выделял мой браузер из общей массы.
Спасибо за дополнение! Пожалуй стоит добавить его в шапку дабы каждый пытливый ум понимал чем рискует, в свое же оправдание скажу что мне скрывать нечего, а вот фичи я люблю ::)

И вправду дисклеймер бы не помешал, много "пытливых умов" не совсем осознают чем рискуют, что в свою очередь приносит им вред вместо пользы.


Title: Re: 📌 Подборка скриптов для форума
Post by: MaoChao on February 09, 2019, 01:04:39 PM
Народ сходит с ума и не знает чем заняться. Следующим будет скрипт, который сделает невидимым какую-то часть форума или даже весь форум?  ;D Форум превращается в вещь в себе.
Я когда-то давно попробовал по примеру DannyHamilton (https://bitcointalk.org/index.php?topic=973843.5) внести в игнор лист всех пользователей участвующих в подписных кампаниях. После этого форум стал практически нечитаемый  ;D
Хотя впрочем и сейчас большинство тем нечитаемы из-за низкого качества сообщений.


Title: Re: 📌 Подборка скриптов для форума
Post by: StartupAnalyst on February 10, 2019, 10:19:23 PM
И вправду дисклеймер бы не помешал, много "пытливых умов" не совсем осознают чем рискуют, что в свою очередь приносит им вред вместо пользы.
Дисклеймер добавлен.

Зы, замечание для ОР: Думаю, что копировать в эту ветку сами скрипты вообще не стоит , дабы избежать возможных эксцессов и последующих обвинений. Ссылок вполне достаточно. А там каждый пусть сам решает.

Изначально, идея состояла в том чтобы публиковать переводы англоязычных тем со скриптами, позже будет принято окончательное решение ведь правил я не нарушаю и все ссылки на источники в наличии.

Хотя впрочем и сейчас большинство тем нечитаемы из-за низкого качества сообщений.
Думаю ждать когда баунтисты свалят и качество постов повысится придется недолго, но все же свое пребывание здесь я лично пытаюсь сделать максимально комфортным.

Я лично подпись решил одеть постольку поскольку и так общаюсь на форуме часто и "а почему бы и не заработать на этом?".


Title: Re: 📌 Подборка скриптов для форума
Post by: Xal0lex on February 24, 2019, 11:21:03 AM
Все вы видели ссылку "All" возле списка страниц у маленьких тем:

https://i.imgur.com/fgTWuEL.png

Если кто не знает, этот прибамбас выводит сразу все страницы темы на одной. Но у больших тем такой кнопки нет.

LoyceV (https://bitcointalk.org/index.php?action=profile;u=459836) создал скрипт для форума (https://bitcointalk.org/index.php?topic=5112444.0), имитирующий такую кнопку для больших топиков (до пятисот страниц).

Порядок действий:

1. Берёте ID топика и подставляете в эту ссылку:

Code:
http://loyce.club/showall/"ID топика".html

2. Затем постите эту ссылку где угодно на форуме. Можно в той же теме, которую вы хотите просмотреть;
3. Немного терпения (около 10 секунд + 5 секунд на страницу);
4. Потом просто переходите по этой ссылке и всё - вы получаете все страницы большой темы на одной.

Это удобно, например, для поиска. Чтобы не переходить по сотне страниц темы, а загрузить сразу все страницы и воспользоваться поиском (Ctrl+F).

Пример темы Неофициальный список официальных правил (https://bitcointalk.org/index.php?topic=994018.0): http://loyce.club/showall/994018.html

Только не забываем после использования ссылки удалять пост с этой ссылкой.

Кстати, авторы больших топиков могли бы разместить такие ссылки в стартовых постах своих топиков.


Title: Re: 📌 Подборка скриптов для форума
Post by: StartupAnalyst on February 26, 2019, 08:28:37 PM
Кстати, авторы больших топиков могли бы разместить такие ссылки в стартовых постах своих топиков.
Благодарю вас за дополнение! Добавил ваш пост в шапку.

По поводу размещения таких ссылок в начальных постах топиков, скажу что идея замечательная, я сам не раз читая тему бомбил от постоянного нажимания на "следующую цифру", особенный кайф появляется если тема интересная и ты в спешке тыкаешь не на ту цифру, вроде мелочь - а бесит знатно.


Title: Re: 📌 Подборка скриптов для форума
Post by: Bloodxtz on February 28, 2019, 01:30:27 AM
Жаль, что нет возможности скрыть неинтересные темы.

Есть только костыли:
Bitcointalk.org Topic List Highlighter - расширение для Chrome. Подсветка темы зеленым или красным(like,dislike).
Можно скрыть dislike топики.
https://bitcointalk.org/index.php?topic=879742.msg9709290#msg9709290
https://i.imgur.com/RUw2jqa.png
   
Ignore threads - user script
https://bitcointalk.org/index.php?topic=1451483.0
https://i.imgur.com/faDvPHT.png


Title: Re: 📌 Подборка скриптов для форума
Post by: StartupAnalyst on March 14, 2019, 08:10:51 PM
Жаль, что нет возможности скрыть неинтересные темы.

Есть только костыли:
Bitcointalk.org Topic List Highlighter - расширение для Chrome. Подсветка темы зеленым или красным(like,dislike).
Можно скрыть dislike топики.
https://bitcointalk.org/index.php?topic=879742.msg9709290#msg9709290
https://i.imgur.com/RUw2jqa.png
   
Ignore threads - user script
https://bitcointalk.org/index.php?topic=1451483.0
https://i.imgur.com/faDvPHT.png

Благодарю за эти полезные костыли, могу сказать что сам пользуюсь watchlist-м, что довольно удобно на самом то деле но ваш пост тоже добавил в шапку.


Title: Re: 📌 Подборка скриптов для форума
Post by: Xal0lex on March 16, 2019, 02:04:41 PM
Есть скрипт - целый комбайн - для нашего форума - BitcoinTalk++ script - v0.2.96 (https://bitcointalk.org/index.php?topic=264337.0). Он правда полурабочий, так сказать. Но там есть интересные функции. Например, многие спрашивают, как можно скрыть различные ненужные темы. Так вот там есть такая опция:

https://i.imgur.com/Jglgp6q.png

Возьмём, к примеру, топик [Список] Забаненные пользователи (https://bitcointalk.org/index.php?topic=4588431.0). Вы хотите его скрыть. Для этого в окошке пишете "bt:4588431" и нажимаете кнопку "Change". Потом нажимаете "Save settings" и всё, при обновлении страницы тема будет скрыта.

Было:

https://i.imgur.com/5VU3lNZ.png

Стало:

https://i.imgur.com/wJCtPR3.png

Можно указывать кучу топиков через точку с запятой. Чтобы сбросить всё, нужно нажать на "(default=)". Все скрытые темы появятся снова.

P.S. Если бы кто-нибудь из JavaScript-специалистов проверил-проштудировал этот скрипт и довёл бы его до ума - убрал бы чего лишнего (или, в частности, вытянул бы из комбайна вышеприведенную мной функцию), было бы очень неплохо (лично для меня, там куча ненужного). Так как я так понял, что автор скрипта давно его забросил: последний раз был на форуме 13 мая 2018 года, да к тому же и забанен.


Title: Re: 📌 Подборка скриптов для форума
Post by: StartupAnalyst on March 16, 2019, 04:55:50 PM
Есть скрипт - целый комбайн - для нашего форума - BitcoinTalk++ script - v0.2.96 (https://bitcointalk.org/index.php?topic=264337.0). Он правда полурабочий, так сказать. Но там есть интересные функции.
[~snip]
P.S. Если бы кто-нибудь из JavaScript-специалистов проверил-проштудировал этот скрипт и довёл бы его до ума - убрал бы чего лишнего (или, в частности, вытянул бы из комбайна вышеприведенную мной функцию), было бы очень неплохо (лично для меня, там куча ненужного). Так как я так понял, что автор скрипта давно его забросил: последний раз был на форуме 13 мая 2018 года, да к тому же и забанен.
Посмотрел англо-тему по скрипту, действительно весьма многофункциональный скрипт, складывается впечатление что кто-то из кодеров основательно подошёл к вопросу своего комфорта на форуме.
Лично меня польстила кнопка "Загрузить изображение" в форме ответа. Да и отображение реального целевого домена рядом с каждой ссылкой вселяло бы уверенности при переходе по ссылкам.

Считаю что надо приложить все усилия для возобновления работы над этим скриптом.

Отправил вам 2 мерита за нахождение столь замечательного пёрла, всегда рад когда список пополняется, порой нахожу много интересного в них для себя лично. ::)


Title: Re: 📌 Подборка скриптов для форума
Post by: Xal0lex on May 29, 2019, 01:01:55 AM
Чтобы избавиться от лишних цитат при цитировании оверквотинга EcuaMobi написал скрипт по работе с цитатами (https://bitcointalk.org/index.php?topic=5148327.0).

После установки скрипт добавляет три кнопки-ссылки:

https://i.imgur.com/hrrMp4E.png

1. Full text - возвращает на место весь оверквотинг (всё как было);

https://i.imgur.com/2IXRKre.png

2. Latest quote - удаляет из оверквотинга все цитаты, кроме последней;

https://i.imgur.com/U4ooGFx.png

3. ~snip~ - удаляет весь оверквотинг и в последней цитате меняет весь текст на ~snip~ (вырезано).

https://i.imgur.com/j3YhAtC.png

Важно: все действия с цитатами с помощью этих кнопок нужно производить до того как вы начнёте набирать свой комментарий. Иначе вы потеряете всё, что вы написали.

Установка скрипта не составляет труда. У вас должно быть установлено расширение для браузера: Tampermonkey для Chrome, Greasemonkey для Firefox, или Violentmonkey для Opera.

Можно установить скрипт по этой ссылке https://openuserjs.org/scripts/EcuaMobi/Quote_plus

Исходный код скрипта https://openuserjs.org/scripts/EcuaMobi/Quote_plus/source

Code:
// ==UserScript==
// @name        Quote plus
// @namespace   ecuamobi
// @author      EcuaMobi
// @include     https://bitcointalk.org/index.php?action=post;quote=*
// @require     https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.3.1.min.js
// @version     1.0
// @license   MIT
// @grant none
// ==/UserScript==

(() => {
  var full_text = document.forms.postmodify.message.value;
  var regex = /\[quote author/gi,
    result, indices = [];
  // Find second [quote]
  var i = 0;
  var start2 = 0;
  var end2 = 0;
  while ((result = regex.exec(full_text))) {
    i++;
    if (2 == i) {
      start2 = result.index;
      break;
    }
  }
  regex = /\[\/quote\]/gi, result, indices = [];
  var last = 0;
  while ((result = regex.exec(full_text))) {
    if (last > 0) {
      end2 = last + 8;
    }
    last = result.index;
  }

  // Are there several quotes?
  if (start2 == 0 || end2 == 0) {
    // Abort
    return;
  }

  // Get text to use for every option
  var latest_quote = full_text.substr(0, start2).trim() + '\n' + full_text.substr(end2).trim() + '\n';
  var snip_quote = full_text.substr(0, start2).trim() + '~snip~[/quote]\n';
  full_text = full_text.trim() + '\n';

  // By default use the latest quote. REPLACE THIS BY snip_quote OR REMOVE IF DESIRED
  document.forms.postmodify.message.value = latest_quote;

  // Add buttons to manually use full text, latest quote or snip
  const $links = $("<span style='margin-left:35%'><a id='full_text' href='#'>Full text</a> | <a id='latest_quote' href='#'>Latest quote</a> | <a id='snip_quote' href='#'>~snip~</a></span>");
  $links.insertAfter($("#postMoreOptions"));

  $("#full_text").click((e) => {
    e.preventDefault();
    document.forms.postmodify.message.value = full_text;
  });
  $("#latest_quote").click((e) => {
    e.preventDefault();
    document.forms.postmodify.message.value = latest_quote;
  });
  $("#snip_quote").click((e) => {
    e.preventDefault();
    document.forms.postmodify.message.value = snip_quote;
  });
})();

Примечания и ограничения:

- скрипт не будет работать, если нет вложенных цитат;
- скрипт учитывает только цитаты вида "[ quote author=username link=...". Обычный тег [ quote] не учитывается;
- скрипт может не работать, если вложенные цитаты находятся не в начале поста или цитаты смешаны с ответами на эти цитаты;
- вы должны проверять с помощью "Preview" как отработал скрипт, в противном случае вы можете вернуть всё как и было, нажав на кнопку "Full text".

Так как EcuaMobi продолжит работу над развитием скрипта, комментарии и пожелания по работе скрипта в топике автора приветствуются.


Title: Re: 📌 Подборка скриптов для форума
Post by: Lopachuk on May 29, 2019, 01:59:38 PM
на форуме и так все оптимально, есть все что надо функции. Зачем эти скрипты не пойму ?


Title: Re: 📌 Подборка скриптов для форума
Post by: Xal0lex on May 29, 2019, 02:17:05 PM
на форуме и так все оптимально, есть все что надо функции. Зачем эти скрипты не пойму ?

Скрипты пишутся, как правило, для удобства использования движка форума. Но если вас всё устраивает, то не пользуйтесь. Никто вас не принуждает.


Title: Re: 📌 Подборка скриптов для форума
Post by: crispyzi on May 29, 2019, 02:55:19 PM
на форуме и так все оптимально, есть все что надо функции. Зачем эти скрипты не пойму ?

это из серии "Дуров, верни стену" надо же разобраться, поюзать, а потом только недоумевать


Title: Re: 📌 Подборка скриптов для форума
Post by: Xal0lex on June 05, 2019, 03:26:07 PM
Скрипт (https://bitcointalk.org/index.php?topic=5151005.0), добавляющий ко всем ссылкам значок для мгновенного архивирования темы/поста.

https://i.imgur.com/wrIw9xq.png


Хотя я лично предпочитаю официальные букмарклеты архивов:

- archive.today (https://archive.fo) (в самом верху страницы)

Code:
javascript:void(open('http://archive.today/?run=1&url='+encodeURIComponent(document.location)))

- Wayback Machine (https://en.wikipedia.org/wiki/Help:Using_the_Wayback_Machine#JavaScript_bookmarklet)

Code:
javascript:void(window.open('https://web.archive.org/web/*/'+location.href));


Title: Re: 📌 Подборка скриптов для форума
Post by: Xal0lex on June 27, 2019, 02:57:45 PM
Скрипт (https://bitcointalk.org/index.php?topic=5158298.0), который отображает баланс любого Bitcoin-адреса, присутствующего на форуме.
Адреса SegWit не отображает.

https://i.imgur.com/R7Z7mTT.png


https://i.imgur.com/Qcqd29n.png


https://i.imgur.com/2FKtFzv.png


Title: Re: 📌 Подборка скриптов для форума
Post by: Xal0lex on July 27, 2019, 10:19:15 PM
Модификация скрипта по работе с меритом для меритсоросов от ETFbitcoin (https://bitcointalk.org/index.php?topic=2833350.msg51972715#msg51972715).

Code:
// ==UserScript==
// @name        bitcointalk merit
// @namespace   grue
// @include     https://bitcointalk.org/index.php?topic=*
// @require     https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.3.1.min.js
// @version     1.1.1
// @downloadURL https://grue.blob.core.windows.net/scripts/Merit.user.js?sv=2014-02-14&si=1&sr=c&sig=k%2BqstGBI3oQ8TrHfPWjS5HgjrazuDPmKJ6rYNs7rvRk%3D&.user.js
// @grant none
// ==/UserScript==

(() => {
  var sMerit;
  var source_sMerit;

  //get csrf token from the logout link
  let sc = $('td.maintab_back a[href*="index.php?action=logout;sesc="').attr("href");
  sc = /;sesc=(.*)/.exec(sc)[1];

  //Added by EcuaMobi: Get remaining sMerit
  $.post(
"https://bitcointalk.org/index.php?action=merit;msg=29048068"
  ).then((data) => {
    sMerit = /You have <b>([0-9]+)<\/b> sendable/.exec(data)[1];
    source_sMerit = /The next ([0-9]+) merit you spend will come from your source/.exec(data)[1];
  }).catch(() => sMerit = null);

  //selector for the "+Merit" link
  $('td.td_headerandpost div[id^=ignmsgbttns] a[href*="index.php?action=merit;msg="]')
  .each((i, e) => {
    const msgId = /msg=([0-9]+)/.exec(e.href)[1];

    const $popup = $(['<div id="grue-merit-popup' + msgId +'" class="grue-merit-popup" style="position: absolute; right: 40px; background-color: #ddd; font-size: 13px; padding: 8px;border-width: 1px;border-color: black;border-style: solid;">',
      '  <form>',
      '    <div>',
      '      Merit points: <input size="6" name="merits" value="1" type="text"/>',
      '    </div>',
  // Modified by EcuaMobi
      '    <div style="margin-top: 6px; "><span id="em-smerit-count' + msgId +'" style="font-size:11px;" /> <input value="Send" type="submit"></div>',
      '  </form>',
      '</div>'
    ].join("\n"));
    $popup.find("form").submit( (e) => {
      e.preventDefault();
      $popup.find('input[type="submit"]')
        .prop("disabled", true)
        .val("Sending...");
      const merits = e.target.elements["merits"].value;

      $.post(
        "https://bitcointalk.org/index.php?action=merit",
        {merits, msgID: msgId, sc}
      ).then((data) => {
        //Error pages usually have this (rough heuristic)
        if(data.includes("<title>An Error Has Occurred!</title")) {
          throw "error";
        }
        //double check and see whether the post we merited was added to the list. Its msgId should be visible in the page source.
        if(data.includes("#msg" + msgId)) {
          alert("Merit added.");
          $("#grue-merit-popup" + msgId).toggle(false);
  // Added by EcuaMobi
  if(sMerit!=null) { sMerit -= merits }
          return;
        }
        alert("Server response indeterminate.");
      })
      .catch(() => alert("Failed to add merit."))
      .always(() => {
        $popup.find('input[type="submit"]')
        .prop("disabled", false)
        .val("Send");
      });
    });
    $popup.insertAfter(e);

    $(e).click((e) => {
      e.preventDefault();
      $("#grue-merit-popup" + msgId).toggle();
  // Added by EcuaMobi
  if(sMerit!=null && source_sMerit==null) {
      $("#em-smerit-count" + msgId).html('<a href="https://bitcointalk.org/index.php?action=merit;msg='+msgId+'" target="_blank">Available:</a> <b>'+sMerit+'</b> &nbsp;&nbsp;&nbsp;')
    } else if (sMerit!=null && source_sMerit!=null) {
      $("#em-smerit-count" + msgId).html('<a href="https://bitcointalk.org/index.php?action=merit;msg='+msgId+'" target="_blank">Available (yours | source):</a> <b>'+sMerit+' | '+source_sMerit+'</b> &nbsp;&nbsp;&nbsp;')
    };
    });
  });
   $(".grue-merit-popup").toggle(false);
})();

https://i.ibb.co/6syStGT/111.png


Title: Re: 📌 Подборка скриптов для форума
Post by: Xal0lex on August 25, 2019, 08:18:36 PM
Маленький скрипт (https://bitcointalk.org/index.php?topic=5148488.msg52264117#msg52264117) от hatshepsut93 (https://bitcointalk.org/index.php?action=profile;u=821995), который отображает общее количество меритов у поста.

https://i.imgur.com/5NO5CXk.png


Title: Re: 📌 Подборка скриптов для форума
Post by: Xal0lex on October 06, 2019, 12:26:47 AM
PageZipper (https://www.printwhatyoulike.com/pagezipper) - скрипт для удобного чтения многостраничных топиков. Он автоматически объединяет страницы топика в одну. То есть, чтобы прочитать следующую страницу топика, не нужно нажимать на цифры - достаточно прокрутить первую страницу вниз и там уже будет следующая.

https://i.imgur.com/uCQjlGG.png


После запуска скрипт отобразит окошко в правом верхнем углу.

https://i.imgur.com/gYRs3dD.png

Где:

  • стрелки позволяют передвигаться по объединённым страницам;
  • первая цифра показывает номер страницы, на которой вы сейчас находитесь;
  • вторая цифра показывает количество объединённых страниц.

Скрипт реализован:

  • в виде букмарклета - достаточно перетянуть ссылку, указанную на оффсайте на панель закладок и можно пользоваться;
  • в виде расширения для Chrome и Firefox.

Я лично пользуюсь букмарклетом, не люблю расширения устанавливать. Чтобы выключить букмарклет, достаточно перезагрузить страницу.

Что такое букмарклет можно прочитать здесь (https://ru.wikipedia.org/wiki/Букмарклет).


Title: Re: 📌 Подборка скриптов для форума
Post by: Xal0lex on October 22, 2019, 02:31:54 PM
Скрипт (https://bitcointalk.org/index.php?topic=5194870.msg52836909#msg52836909), который позволяет отсортировать посты в теме по количеству выданных меритов. После установки скрипта в темах появится кнопка "Sort by merit".

https://i.imgur.com/dtjcpLh.png

Code:
// ==UserScript==
// @name     Bitcointalk Sort By Merit
// @version  1.0
// @grant    none
// @include        https://bitcointalk.org/index.php?topic=*
// @run-at         document-end
// ==/UserScript==

const sortBtn = document.createElement("a")
sortBtn.href = "javascript:void(0)"
sortBtn.textContent = "sort by merit"

const threadButtons = document.querySelector("td.mirrortab_back")

threadButtons.prepend(document.createTextNode(" | "))
threadButtons.prepend(sortBtn)

sortBtn.addEventListener("click", sortByMerit)

function sortByMerit() {
    const table = document.querySelector("#bodyarea .bordercolor > tbody")
    const posts = [...table.rows]
        .map(post => {
            try {
                const merit = [...post.querySelectorAll(".td_headerandpost .smalltext i > a")]
                    .map(e => {
                        return parseInt(e.nextSibling.textContent.match(/\((.*)\)/)[1])
                    })
                    .reduce((acc, e) => acc + e, 0)

                return { merit, post }
            } catch (e) {
                console.error(e)
            }
        })
        .sort(({ merit: merit1 }, { merit: merit2 }) => merit2 - merit1)

    posts.forEach(({ post, merit }) => {
        try {
            table.append(post)
        } catch (e) {}
    })
}



Title: Re: 📌 Подборка скриптов для форума
Post by: xandry on October 22, 2019, 06:48:58 PM
Вот этого в списке не хватает (вроде не писали в разделе про него): https://github.com/mrvuit/BitcointalkExtension

Расширение, которое включает в себя целый набор ранее описанных скриптов, и которое позволяет быстро их выключить/включить. Список функций:
1. Сменить тему оформления.
2. Выключить/включить отображение подписей.
3. Выключить/включить отображение аватарок.
4. Открывать сторонние ссылки в новой вкладке
5. Изменять размер шрифта
6. Встроенный и по умолчанию включенный скрипт "Enhanced Merit UI"
7. Встроенный и включенный скрипт, который отображает общее количество меритов у поста.
8. Включает иконку для перехода наверх страницы.
9. Встроенный скрипт для расширения функции "Report To Moderator"
10. Отображает цену bitcoin и ethereum рядом с адресами кошельков


Title: Re: 📌 Подборка скриптов для форума
Post by: bellicose on October 22, 2019, 07:41:26 PM
Скрипты это конечно очень хорошо. Главное, чтобы скамеры не начали делать свои, которые будут воровать пароли от аккаунтов, ведь такая практика встречается очень часто именно в теме скриптов. Например в дайсах очень часто такое встречается, где на балансах находится крипта.


Title: Re: 📌 Подборка скриптов для форума
Post by: pishite on November 19, 2019, 06:32:54 AM
Еще один скрипт который форматирует форум для чтения со смартфона: https://bitcointalk.org/index.php?topic=4500633.0

Bitcointalk Mobile - это аддон для Firefox под Android, который делает форум bitcointalk.org мобильным. Это приложение не использует удаленную обработку сервера, все выполняется локально в браузере с пользовательским CSS и Javascript.


Особенности:
Open Source
Адаптивный дизайн для смартфона
Удобный пользовательский интерфейс, все функции страницы должны работать плавно
Нет удаленной обработки
Возможность изменить размер шрифта форума

Для установки:
Загружаем последнюю версию https://play.google.com/store/apps/details?id=org.mozilla.firefox (https://play.google.com/store/apps/details?id=org.mozilla.firefox) Firefox из Google Play
Установить Bitcointalk Mobile Addon с сайта addons.mozilla.org (http://addons.mozilla.org)

О безопасности:
При установке будет предложено «Доступ к вашим данным для bitcointalk.org», но это не относится к вашим личным данным, таким как файлы cookie или информация для входа, это сделано для изменению HTML-кода.

Исходный код
https://github.com/ewwink/bitcointalk-mobile (https://github.com/ewwink/bitcointalk-mobile)

https://i.imgur.com/9ERH0rr.jpg https://i.imgur.com/DkNMCvm.jpg
https://i.imgur.com/tNNzSmS.jpghttps://i.imgur.com/KcUI5FB.jpg


Title: Re: 📌 Подборка скриптов для форума
Post by: madnessteat on November 19, 2019, 06:41:05 AM
~snip~

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


Title: Re: 📌 Подборка скриптов для форума
Post by: andy_pelevin on November 19, 2019, 12:01:20 PM
Не выбрал ни чего подходящего для себя, но немного меритов ТС отсыпал... Любую операцию, которая повторяется более двух раз, - следует автоматизировать.
Думаю, что тем про автоматизацию чего бы там ни было, на форуме недостаточно. 


Title: Re: 📌 Подборка скриптов для форума
Post by: viktorkomov1991 on November 20, 2019, 09:03:30 AM
Тяжело разобраться , не особо похоже что ветка для новеньких


Title: Re: 📌 Подборка скриптов для форума
Post by: StartupAnalyst on November 27, 2019, 07:14:05 PM
Тяжело разобраться , не особо похоже что ветка для новеньких
Что именно Вам показалось сложным ? Буду благодарен за конструктивную критику, но если до конца года не ответите то расценю Ваш пост как щитпостинг и удалю.


Title: Re: 📌 Подборка скриптов для форума
Post by: StartupAnalyst on December 28, 2019, 09:45:41 PM
Скрипт по изменению цвета фона на форуме
Перевод. Оригинальная тема Script to Change Bitcointalk Background Color (https://bitcointalk.org/index.php?topic=5211381.0)
Благодарю Вас за эту находку, думаю еще много пользователей в русской локали поблагодарят Вас за возможность не выжигать себе глаза почитывая форум ночью.  ;D

P.S. Добавил в подборку.


Title: Re: 📌 Подборка скриптов для форума
Post by: FontSeli on December 29, 2019, 05:41:53 PM
Скрипт по изменению цвета фона на форуме
Перевод. Оригинальная тема Script to Change Bitcointalk Background Color (https://bitcointalk.org/index.php?topic=5211381.0)
Благодарю Вас за эту находку, думаю еще много пользователей в русской локали поблагодарят Вас за возможность не выжигать себе глаза почитывая форум ночью.  ;D

P.S. Добавил в подборку.

Вот еще один полезный способ (https://bitcointalk.org/index.php?topic=580171.0) как "не выжигать глаза ночью".


Title: Re: 📌 Подборка скриптов для форума
Post by: StartupAnalyst on December 29, 2019, 08:17:12 PM
Скрипт по изменению цвета фона на форуме
Перевод. Оригинальная тема Script to Change Bitcointalk Background Color (https://bitcointalk.org/index.php?topic=5211381.0)
Благодарю Вас за эту находку, думаю еще много пользователей в русской локали поблагодарят Вас за возможность не выжигать себе глаза почитывая форум ночью.  ;D

P.S. Добавил в подборку.

Вот еще один полезный способ (https://bitcointalk.org/index.php?topic=580171.0) как "не выжигать глаза ночью".

Благодарю Вас.
Вот перевод, добавил его в подборку.


В соответствии с популярным запросом, я сделал тёмную версию текущего CSS на bitcointalk (если есть интерес, я тоже сделаю мобильный CSS).
Если у вас есть какие-нибудь идеи или предложения, я буду рад подкорректировать и улучшить текущий дизайн.

Скриншоты:
https://i.imgur.com/Rv3EAuwl.png (http://imgur.com/Rv3EAuw) https://i.imgur.com/wTZdVQ5l.png (http://imgur.com/wTZdVQ5)
*Нажмите для полного просмотра

Код здесь.  here (http://pastebin.com/P1xD0xdD).
Оригинал темы (https://bitcointalk.org/index.php?topic=580171.0)


Title: Re: 📌 Подборка скриптов для форума
Post by: FontSeli on December 30, 2019, 01:36:06 PM
Благодарю Вас.
Вот перевод, добавил его в подборку.


Очень полезная возможность, мне помогает, т.к. не люблю яркий экран в ночное время при чтении.
Надеюсь и другим поможет.


Title: Re: 📌 Подборка скриптов для форума
Post by: StartupAnalyst on December 31, 2019, 08:07:50 PM
Очень полезная возможность, мне помогает, т.к. не люблю яркий экран в ночное время при чтении.
Надеюсь и другим поможет.

Поддерживаю, как человек, который проводит за экраном монитора в среднем по 10 часов в день. Яркий бэкграунд очень здорово насилует глаза,тёмный куда приятнее для чтения ;)
Воистину! Вы оба правы, друзья мои.


Поздравляю Всех с Наступающим Новым Годом!!


Title: Re: 📌 Подборка скриптов для форума
Post by: Xal0lex on August 28, 2022, 08:38:08 PM
Скрипт (https://bitcointalk.org/index.php?topic=5411599.0), который добавляет возможность оставлять для себя краткие заметки у пользователей форума.

Выглядит вот так:

https://i.imgur.com/RXgzxm0.png


Нажимаете "Add Note", появляется окно для ввода короткой заметки. Также можно нажать на "Add Note" под аватаром, то же самое, появится окошко для ввода заметки.


https://i.imgur.com/P3ctfDc.png


Сама заметка отображается под аватаром и в самом профиле пользователя


https://i.imgur.com/UVhVlM8.pnghttps://i.imgur.com/M2VwxN6.png


Сам скрипт

Code:
// ==UserScript==
// @name         BitcoinTalk User Notes
// @version      0.2
// @description  Adds an note field to each user on BitcoinTalk
// @author       TryNinja
// @match        https://bitcointalk.org/index.php?topic=*
// @match        https://bitcointalk.org/index.php?action=profile;u=*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=bitcointalk.org
// @grant GM.setValue
// @grant GM.getValue
// @grant GM_setValue
// @grant GM_getValue
// ==/UserScript==

(async function() {
    'use strict';

    const getValue = typeof GM_getValue === "undefined" ? GM.getValue : GM_getValue;
    const setValue = typeof GM_setValue === "undefined" ? GM.setValue : GM_setValue;

    const getParentNodeNth = (element, num) => {
        let parent = element;
        for (let i = 0; i < num; i++) {
            if (parent.parentNode) {
                parent = parent.parentNode;
            }
        }
        return parent;
    };

    const getUserNote = async (user) => {
        const notes = JSON.parse(await getValue('notes') ?? '{}');
        if (!notes) {
            return null;
        }
        return notes[user];
    };

    const setUserNote = async (user, note) => {
        const notes = JSON.parse(await getValue('notes') ?? '{}');
        notes[user] = note;
        await setValue('notes', JSON.stringify(notes ?? {}));
    }

    const texts = {
        addNote: `<span style="cursor: pointer; font-weight: bold">📜 Add Note</a>`,
        withNote: note => `<span style="cursor: pointer; font-weight: bold"><b>📜</b> ${note}</span>`
    };

    const addNote = async (user, element) => {
        const note = prompt('Input the note (empty to remove):');
        await setUserNote(user, note);
        if (note) {
            element.innerHTML = texts.withNote(note);
        } else if (note !== null) {
            element.innerHTML = texts.addNote;
        }
    }

    if (window.location.href.match(/topic=\d+/)) {
        const targets = [...document.querySelectorAll('td.poster_info div a:last-child')].filter(e => window.getComputedStyle(getParentNodeNth(e, 11)).display !== 'none');

        targets.map(async target => {
            const [_, userId] = [...target.parentNode.parentNode.childNodes].find(childNode => childNode.innerHTML).innerHTML.match(/u=(\d+)/);
            const noteDiv = document.createElement("div");
            const note = await getUserNote(userId);
            if (!note) {
                noteDiv.innerHTML = texts.addNote;
            } else {
                noteDiv.innerHTML = texts.withNote(note);
            }
            target.before(noteDiv);
            noteDiv.addEventListener("click", () => addNote(userId, noteDiv), false);
        });
    } else if (window.location.href.match(/profile;u=\d+/)) {
        const [_, userId] = window.location.href.match(/u=(\d+)/);
        const target = getParentNodeNth(document.querySelector("#bodyarea table tr td tbody tr:nth-child(2) tr:last-child").parentNode, 1);
        const noteDiv = document.createElement("div");
        const note = await getUserNote(userId);
        if (!note) {
            noteDiv.innerHTML = texts.addNote;
        } else {
            noteDiv.innerHTML = texts.withNote(note);
        }
        target.before(noteDiv);
        noteDiv.addEventListener("click", () => addNote(userId, noteDiv), false);
    }
})();

Либо по ссылке, указанной вверху


Title: Re: 📌 Подборка скриптов для форума
Post by: light_warrior on July 01, 2023, 07:17:59 PM
Чтобы не ваять новую тему ради одного скрипта запощу здесь. Не совсем скрипт для форума но я уверен что этот скрипт понравится многим. Теперь не нужно использовать именно Yandex.браузер чтобы пользоваться закадровым переводом от Yandex. Умельцы соорудили скрипт который позволяет запускать этот закадровый перевод в любом браузере. Надо только иметь Tampermonkey и установить этот скрипт туда и все. У вас есть закадровый перевод любого ролика.

Страница скрипта https://github.com/Basilevz/voice-over-translation

Там есть список поддерживаемых сайтов, список функционала а также версии для Cloudflare и еще какие то

Проверил на virustotal (https://www.virustotal.com/gui/file/46a07d49fb3c3a129b3b0a2ead6f491bf64ef75dee65eae148553be022782882)

Естественно проверил и в действии, работает на ура.


https://www.talkimg.com/images/2023/07/01/Sg69f.png (https://www.youtube.com/watch?v=y7YxgElroyU)https://www.talkimg.com/images/2023/07/01/SgRXZ.png (https://www.youtube.com/watch?v=y7YxgElroyU)

Для особо параноидальных личностей по поводу безопасности использования этого скрипта. Я никого не принуждаю ставить его. Чисто для информационных целей. Решать вам использовать его или нет. Так что не надо тут бросаться помидорами.