StartupAnalyst (OP)
Sr. Member
Offline
Activity: 728
Merit: 317
Crypto Casino & Sportsbook
|
|
February 04, 2019, 12:29:08 PM Last edit: October 15, 2019, 09:16:05 AM by StartupAnalyst |
|
В данной теме опубликован список скриптов и расширений для браузеров используя которые проводить время на форуме гораздо приятнее. Скрипты будут добавляться по мере появления и обнаружения. Конструктивная критика, дополнения и идеи для скриптов также приветствуются!
Дисклеймер: Не рекомендуется использовать всевозможные скрипты , если вы хотите оставаться в тени. Каждое дополнительное расширение/скрипт, делают цифровой отпечаток вашего браузера все более и более уникальным, тем самым выделяя его ( и заодно и вас) из общей толпы. (Уже даже не говорю о возможных дырах).
📌 Улучшенный пользовательский интерфейс системы Merit Оригинал темыОригинальная англотема: https://bitcointalk.org/index.php?topic=2833350.0Это очень простой скрипт, который позволяет добавлять Мериты, не покидая страницу топика. После установки скрипта нажмите на ссылку «+ Merit», чтобы открыть/закрыть всплывающее окно. Установка скрипта: 1. Если у вас ещё не установлено расширение для работы со скриптами в браузере, установить можно по ссылкам: 2. Установить (скачать) скрипт: Merit.user.js EcuaMobi усовершенствовал скрипт. Теперь в окошке отображается количество оставшихся у вас сМеритов. I have combined my own suggestion as well as sncc's and modified grue's script to implement them. This is the result: Here's the modified source. grue, feel free to update your original code if you like the change: // ==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> ') }; }); }); $(".grue-merit-popup").toggle(false); })(); 📌 Скрипт позволяющий игнорировать сообщения низкого качества Оригинал темы Задолбали боты, баунисты и просто нубы? Хочется тупо не замечать их? Вот решение! Скрипт для расширения браузера Greasemonkey Просто замените (или добавьте) никнеймы user1, user2...и.т.д на свои по усмотрению Буду рад мериту // ==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; } } } })(); 📌 Скрипт для отправки отчета модератору из истории сообщений пользователя Оригинал темыПользователь Cyrus (администратор) создал очень полезный скрипт, с помощью которого можно отправить отчет модератору прямо из истории сообщений любого пользователя.// ==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 и нажмите установить. 2. Теперь у вас появилась иконка расширения. Нажимаем на нее, далее Создать новый скрипт...3. Скопируйте весь скрипт из поля Code выше. Затем нажмите Файл и Сохранить.4. Вы увидите что скрипт включен. 5. Далее переходим в историю сообщений любого пользователя и видим, что теперь под каждым постом появилась кнопка отчет модератору. 6. Пользуемся!Огромное спасибо Cyrus за такой удобный и полезный скрипт. Сделаем форум чище, все вместе!
Обновление: по просьбе Xal0lex Перевод: Скрипт не работает, если вы просматриваете последние темы пользователя. Было бы неплохо, чтобы скрипт работал и там.
пользователь TryNinja доработал скрипт: // ==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" для больших топиков Оригинал темыВсе вы видели ссылку "All" возле списка страниц у маленьких тем: Если кто не знает, этот прибамбас выводит сразу все страницы темы на одной. Но у больших тем такой кнопки нет. LoyceV создал скрипт для форума, имитирующий такую кнопку для больших топиков ( до пятисот страниц). Порядок действий: 1. Берёте ID топика и подставляете в эту ссылку: http://loyce.club/showall/"ID топика".html 2. Затем постите эту ссылку где угодно на форуме. Можно в той же теме, которую вы хотите просмотреть; 3. Немного терпения (около 10 секунд + 5 секунд на страницу); 4. Потом просто переходите по этой ссылке и всё - вы получаете все страницы большой темы на одной. Это удобно, например, для поиска. Чтобы не переходить по сотне страниц темы, а загрузить сразу все страницы и воспользоваться поиском (Ctrl+F). Пример темы Неофициальный список официальных правил: http://loyce.club/showall/994018.html Только не забываем после использования ссылки удалять пост с этой ссылкой.Кстати, авторы больших топиков могли бы разместить такие ссылки в стартовых постах своих топиков. 📌 Скрипт и расширение для игнора неинтересных тем Оригинал темы📌 Комплексный скрипт (недоработан) Оригинал темыЕсть скрипт - целый комбайн - для нашего форума - BitcoinTalk++ script - v0.2.96. Он правда полурабочий, так сказать. Но там есть интересные функции. Например, многие спрашивают, как можно скрыть различные ненужные темы. Так вот там есть такая опция: Возьмём, к примеру, топик [Список] Забаненные пользователи. Вы хотите его скрыть. Для этого в окошке пишете "bt:4588431" и нажимаете кнопку "Change". Потом нажимаете "Save settings" и всё, при обновлении страницы тема будет скрыта. Было: Стало: Можно указывать кучу топиков через точку с запятой. Чтобы сбросить всё, нужно нажать на "(default=)". Все скрытые темы появятся снова. P.S. Если бы кто-нибудь из JavaScript-специалистов проверил-проштудировал этот скрипт и довёл бы его до ума - убрал бы чего лишнего (или, в частности, вытянул бы из комбайна вышеприведенную мной функцию), было бы очень неплохо (лично для меня, там куча ненужного). Так как я так понял, что автор скрипта давно его забросил: последний раз был на форуме 13 мая 2018 года, да к тому же и забанен. 📌 Скрипт по работе с цитатами Оригинал темыЧтобы избавиться от лишних цитат при цитировании оверквотинга EcuaMobi написал скрипт по работе с цитатами. После установки скрипт добавляет три кнопки-ссылки: 1. Full text - возвращает на место весь оверквотинг (всё как было); 2. Latest quote - удаляет из оверквотинга все цитаты, кроме последней; 3. ~snip~ - удаляет весь оверквотинг и в последней цитате меняет весь текст на ~snip~ (вырезано). Важно: все действия с цитатами с помощью этих кнопок нужно производить до того как вы начнёте набирать свой комментарий. Иначе вы потеряете всё, что вы написали. Установка скрипта не составляет труда. У вас должно быть установлено расширение для браузера: Tampermonkey для Chrome, Greasemonkey для Firefox, или Violentmonkey для Opera. Можно установить скрипт по этой ссылке https://openuserjs.org/scripts/EcuaMobi/Quote_plusИсходный код скрипта https://openuserjs.org/scripts/EcuaMobi/Quote_plus/source// ==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 продолжит работу над развитием скрипта, комментарии и пожелания по работе скрипта в топике автора приветствуются. 📌 Скрипт добавляющий значок для архивирования Оригинал темыСкрипт, добавляющий ко всем ссылкам значок для мгновенного архивирования темы/поста. Хотя я лично предпочитаю официальные букмарклеты архивов: - archive.today (в самом верху страницы) javascript:void(open('http://archive.today/?run=1&url='+encodeURIComponent(document.location))) - Wayback Machinejavascript:void(window.open('https://web.archive.org/web/*/'+location.href)); 📌 Скрипт показывающий баланс Bitcoin-адреса Оригинал темыСкрипт, который отображает баланс любого Bitcoin-адреса, присутствующего на форуме. Адреса SegWit не отображает.
Особая благодарность модератору Xal0lex за помощь в ведении темы, а так же прочим участникам форума принимавшим участие в ее наполнении!
|
|
|
|
StartupAnalyst (OP)
Sr. Member
Offline
Activity: 728
Merit: 317
Crypto Casino & Sportsbook
|
|
February 04, 2019, 12:29:36 PM Last edit: December 29, 2019, 08:23:24 PM by StartupAnalyst Merited by Symmetrick (2) |
|
📌 Модификация скрипта для меритсоросов от ETFbitcoin Оригинал темы// ==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> ') } 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> ') }; }); }); $(".grue-merit-popup").toggle(false); })();
📌 Скрипт отображающий общее количество меритов у поста Оригинал темы📌 Скрипт для удобного чтения многостраничных топиков PageZipper - скрипт для удобного чтения многостраничных топиков. Он автоматически объединяет страницы топика в одну. То есть, чтобы прочитать следующую страницу топика, не нужно нажимать на цифры - достаточно прокрутить первую страницу вниз и там уже будет следующая. После запуска скрипт отобразит окошко в правом верхнем углу. Где: - стрелки позволяют передвигаться по объединённым страницам;
- первая цифра показывает номер страницы, на которой вы сейчас находитесь;
- вторая цифра показывает количество объединённых страниц.
Скрипт реализован: - в виде букмарклета - достаточно перетянуть ссылку, указанную на оффсайте на панель закладок и можно пользоваться;
- в виде расширения для Chrome и Firefox.
Я лично пользуюсь букмарклетом, не люблю расширения устанавливать. Чтобы выключить букмарклет, достаточно перезагрузить страницу. Что такое букмарклет можно прочитать здесь. 📌 Скрипт для замены фона форума Оригинал темыСкрипт по изменению цвета фона на форуме Вставьте этот скрипт в Greasemonkey, Tampermonkeфy или в другое подобное расширение. - greasemonkey Mozilla firefox- tampermonkey Chrome// ==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" document.body.style.background = "Black"; или тёмно коралловыйdocument.body.style.background = "#cf524e"; итд... КартинкиПеревод. Оригинальная тема Script to Change Bitcointalk Background Color📌 Способ как "не выжигать глаза ночью"Оригинал темы В соответствии с популярным запросом, я сделал тёмную версию текущего CSS на bitcointalk (если есть интерес, я тоже сделаю мобильный CSS). Если у вас есть какие-нибудь идеи или предложения, я буду рад подкорректировать и улучшить текущий дизайн. Скриншоты: *Нажмите для полного просмотраКод здесь. here. За эту находку надо благодарить FontSeli📌 Продолжение следует
|
|
|
|
StartupAnalyst (OP)
Sr. Member
Offline
Activity: 728
Merit: 317
Crypto Casino & Sportsbook
|
|
February 04, 2019, 12:30:33 PM |
|
Резерв 2
|
|
|
|
StartupAnalyst (OP)
Sr. Member
Offline
Activity: 728
Merit: 317
Crypto Casino & Sportsbook
|
|
February 04, 2019, 07:15:18 PM |
|
Все это очень хорошо, но только надо понимать что каждое дополнительное расширение/скрипт, делают цифровой отпечаток вашего браузера все более и более уникальным, тем самым выделяя его ( и заодно и вас) из общей толпы. (Уже даже не говорю о возможных дырах).
Не рекомендуется, если вы хотите оставаться в тени.
Зы, у меня нет ни одного расширения или скрипта, который бы выделял мой браузер из общей массы.
Спасибо за дополнение! Пожалуй стоит добавить его в шапку дабы каждый пытливый ум понимал чем рискует, в свое же оправдание скажу что мне скрывать нечего, а вот фичи я люблю
|
|
|
|
kirreev070
|
|
February 04, 2019, 08:32:10 PM |
|
Все это очень хорошо, но только надо понимать что каждое дополнительное расширение/скрипт, делают цифровой отпечаток вашего браузера все более и более уникальным, тем самым выделяя его ( и заодно и вас) из общей толпы. (Уже даже не говорю о возможных дырах).
Не рекомендуется, если вы хотите оставаться в тени.
Зы, у меня нет ни одного расширения или скрипта, который бы выделял мой браузер из общей массы.
Спасибо за дополнение! Пожалуй стоит добавить его в шапку дабы каждый пытливый ум понимал чем рискует, в свое же оправдание скажу что мне скрывать нечего, а вот фичи я люблю И вправду дисклеймер бы не помешал, много "пытливых умов" не совсем осознают чем рискуют, что в свою очередь приносит им вред вместо пользы.
|
|
|
|
MaoChao
Legendary
Offline
Activity: 996
Merit: 1133
Get Some!
|
|
February 09, 2019, 01:04:39 PM Last edit: February 09, 2019, 05:07:57 PM by MaoChao |
|
Народ сходит с ума и не знает чем заняться. Следующим будет скрипт, который сделает невидимым какую-то часть форума или даже весь форум? Форум превращается в вещь в себе. Я когда-то давно попробовал по примеру DannyHamilton внести в игнор лист всех пользователей участвующих в подписных кампаниях. После этого форум стал практически нечитаемый Хотя впрочем и сейчас большинство тем нечитаемы из-за низкого качества сообщений.
|
|
|
|
StartupAnalyst (OP)
Sr. Member
Offline
Activity: 728
Merit: 317
Crypto Casino & Sportsbook
|
|
February 10, 2019, 10:19:23 PM |
|
И вправду дисклеймер бы не помешал, много "пытливых умов" не совсем осознают чем рискуют, что в свою очередь приносит им вред вместо пользы.
Дисклеймер добавлен. Зы, замечание для ОР: Думаю, что копировать в эту ветку сами скрипты вообще не стоит , дабы избежать возможных эксцессов и последующих обвинений. Ссылок вполне достаточно. А там каждый пусть сам решает.
Изначально, идея состояла в том чтобы публиковать переводы англоязычных тем со скриптами, позже будет принято окончательное решение ведь правил я не нарушаю и все ссылки на источники в наличии. Хотя впрочем и сейчас большинство тем нечитаемы из-за низкого качества сообщений.
Думаю ждать когда баунтисты свалят и качество постов повысится придется недолго, но все же свое пребывание здесь я лично пытаюсь сделать максимально комфортным. Я лично подпись решил одеть постольку поскольку и так общаюсь на форуме часто и "а почему бы и не заработать на этом?".
|
|
|
|
Xal0lex
Moderator
Legendary
Offline
Activity: 2604
Merit: 2582
|
Все вы видели ссылку "All" возле списка страниц у маленьких тем: Если кто не знает, этот прибамбас выводит сразу все страницы темы на одной. Но у больших тем такой кнопки нет. LoyceV создал скрипт для форума, имитирующий такую кнопку для больших топиков ( до пятисот страниц). Порядок действий: 1. Берёте ID топика и подставляете в эту ссылку: http://loyce.club/showall/"ID топика".html 2. Затем постите эту ссылку где угодно на форуме. Можно в той же теме, которую вы хотите просмотреть; 3. Немного терпения (около 10 секунд + 5 секунд на страницу); 4. Потом просто переходите по этой ссылке и всё - вы получаете все страницы большой темы на одной. Это удобно, например, для поиска. Чтобы не переходить по сотне страниц темы, а загрузить сразу все страницы и воспользоваться поиском (Ctrl+F). Пример темы Неофициальный список официальных правил: http://loyce.club/showall/994018.html Только не забываем после использования ссылки удалять пост с этой ссылкой.Кстати, авторы больших топиков могли бы разместить такие ссылки в стартовых постах своих топиков.
|
|
|
|
StartupAnalyst (OP)
Sr. Member
Offline
Activity: 728
Merit: 317
Crypto Casino & Sportsbook
|
|
February 26, 2019, 08:28:37 PM |
|
Кстати, авторы больших топиков могли бы разместить такие ссылки в стартовых постах своих топиков.
Благодарю вас за дополнение! Добавил ваш пост в шапку. По поводу размещения таких ссылок в начальных постах топиков, скажу что идея замечательная, я сам не раз читая тему бомбил от постоянного нажимания на "следующую цифру", особенный кайф появляется если тема интересная и ты в спешке тыкаешь не на ту цифру, вроде мелочь - а бесит знатно.
|
|
|
|
|
StartupAnalyst (OP)
Sr. Member
Offline
Activity: 728
Merit: 317
Crypto Casino & Sportsbook
|
|
March 14, 2019, 08:10:51 PM |
|
Благодарю за эти полезные костыли, могу сказать что сам пользуюсь watchlist-м, что довольно удобно на самом то деле но ваш пост тоже добавил в шапку.
|
|
|
|
Xal0lex
Moderator
Legendary
Offline
Activity: 2604
Merit: 2582
|
Есть скрипт - целый комбайн - для нашего форума - BitcoinTalk++ script - v0.2.96. Он правда полурабочий, так сказать. Но там есть интересные функции. Например, многие спрашивают, как можно скрыть различные ненужные темы. Так вот там есть такая опция: Возьмём, к примеру, топик [Список] Забаненные пользователи. Вы хотите его скрыть. Для этого в окошке пишете "bt:4588431" и нажимаете кнопку "Change". Потом нажимаете "Save settings" и всё, при обновлении страницы тема будет скрыта. Было: Стало: Можно указывать кучу топиков через точку с запятой. Чтобы сбросить всё, нужно нажать на "(default=)". Все скрытые темы появятся снова. P.S. Если бы кто-нибудь из JavaScript-специалистов проверил-проштудировал этот скрипт и довёл бы его до ума - убрал бы чего лишнего (или, в частности, вытянул бы из комбайна вышеприведенную мной функцию), было бы очень неплохо (лично для меня, там куча ненужного). Так как я так понял, что автор скрипта давно его забросил: последний раз был на форуме 13 мая 2018 года, да к тому же и забанен.
|
|
|
|
StartupAnalyst (OP)
Sr. Member
Offline
Activity: 728
Merit: 317
Crypto Casino & Sportsbook
|
|
March 16, 2019, 04:55:50 PM |
|
Есть скрипт - целый комбайн - для нашего форума - BitcoinTalk++ script - v0.2.96. Он правда полурабочий, так сказать. Но там есть интересные функции. [~snip] P.S. Если бы кто-нибудь из JavaScript-специалистов проверил-проштудировал этот скрипт и довёл бы его до ума - убрал бы чего лишнего (или, в частности, вытянул бы из комбайна вышеприведенную мной функцию), было бы очень неплохо (лично для меня, там куча ненужного). Так как я так понял, что автор скрипта давно его забросил: последний раз был на форуме 13 мая 2018 года, да к тому же и забанен. Посмотрел англо-тему по скрипту, действительно весьма многофункциональный скрипт, складывается впечатление что кто-то из кодеров основательно подошёл к вопросу своего комфорта на форуме. Лично меня польстила кнопка "Загрузить изображение" в форме ответа. Да и отображение реального целевого домена рядом с каждой ссылкой вселяло бы уверенности при переходе по ссылкам. Считаю что надо приложить все усилия для возобновления работы над этим скриптом. Отправил вам 2 мерита за нахождение столь замечательного пёрла, всегда рад когда список пополняется, порой нахожу много интересного в них для себя лично.
|
|
|
|
Xal0lex
Moderator
Legendary
Offline
Activity: 2604
Merit: 2582
|
|
May 29, 2019, 01:01:55 AM Merited by xandry (2), IeSua (1) |
|
Чтобы избавиться от лишних цитат при цитировании оверквотинга EcuaMobi написал скрипт по работе с цитатами. После установки скрипт добавляет три кнопки-ссылки: 1. Full text - возвращает на место весь оверквотинг (всё как было); 2. Latest quote - удаляет из оверквотинга все цитаты, кроме последней; 3. ~snip~ - удаляет весь оверквотинг и в последней цитате меняет весь текст на ~snip~ (вырезано). Важно: все действия с цитатами с помощью этих кнопок нужно производить до того как вы начнёте набирать свой комментарий. Иначе вы потеряете всё, что вы написали. Установка скрипта не составляет труда. У вас должно быть установлено расширение для браузера: Tampermonkey для Chrome, Greasemonkey для Firefox, или Violentmonkey для Opera. Можно установить скрипт по этой ссылке https://openuserjs.org/scripts/EcuaMobi/Quote_plusИсходный код скрипта https://openuserjs.org/scripts/EcuaMobi/Quote_plus/source// ==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 продолжит работу над развитием скрипта, комментарии и пожелания по работе скрипта в топике автора приветствуются.
|
|
|
|
Lopachuk
Newbie
Offline
Activity: 16
Merit: 0
|
|
May 29, 2019, 01:59:38 PM |
|
на форуме и так все оптимально, есть все что надо функции. Зачем эти скрипты не пойму ?
|
|
|
|
Xal0lex
Moderator
Legendary
Offline
Activity: 2604
Merit: 2582
|
|
May 29, 2019, 02:17:05 PM |
|
на форуме и так все оптимально, есть все что надо функции. Зачем эти скрипты не пойму ?
Скрипты пишутся, как правило, для удобства использования движка форума. Но если вас всё устраивает, то не пользуйтесь. Никто вас не принуждает.
|
|
|
|
crispyzi
Newbie
Offline
Activity: 3
Merit: 0
|
|
May 29, 2019, 02:55:19 PM |
|
на форуме и так все оптимально, есть все что надо функции. Зачем эти скрипты не пойму ?
это из серии "Дуров, верни стену" надо же разобраться, поюзать, а потом только недоумевать
|
|
|
|
Xal0lex
Moderator
Legendary
Offline
Activity: 2604
Merit: 2582
|
Скрипт, добавляющий ко всем ссылкам значок для мгновенного архивирования темы/поста. Хотя я лично предпочитаю официальные букмарклеты архивов: - archive.today (в самом верху страницы) javascript:void(open('http://archive.today/?run=1&url='+encodeURIComponent(document.location))) - Wayback Machinejavascript:void(window.open('https://web.archive.org/web/*/'+location.href));
|
|
|
|
Xal0lex
Moderator
Legendary
Offline
Activity: 2604
Merit: 2582
|
Скрипт, который отображает баланс любого Bitcoin-адреса, присутствующего на форуме. Адреса SegWit не отображает.
|
|
|
|
Xal0lex
Moderator
Legendary
Offline
Activity: 2604
Merit: 2582
|
Модификация скрипта по работе с меритом для меритсоросов от ETFbitcoin. // ==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> ') } 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> ') }; }); }); $(".grue-merit-popup").toggle(false); })();
|
|
|
|
|