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 за помощь в ведении темы, а так же прочим участникам форума принимавшим участие в ее наполнении!
|
|
|
|
|
|
|
|
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
|
|
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: 2450
Merit: 2449
|
Все вы видели ссылку "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: 2450
Merit: 2449
|
Есть скрипт - целый комбайн - для нашего форума - 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: 2450
Merit: 2449
|
|
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: 2450
Merit: 2449
|
|
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: 2450
Merit: 2449
|
Скрипт, добавляющий ко всем ссылкам значок для мгновенного архивирования темы/поста. Хотя я лично предпочитаю официальные букмарклеты архивов: - 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: 2450
Merit: 2449
|
Скрипт, который отображает баланс любого Bitcoin-адреса, присутствующего на форуме. Адреса SegWit не отображает.
|
|
|
|
Xal0lex
Moderator
Legendary
Offline
Activity: 2450
Merit: 2449
|
Модификация скрипта по работе с меритом для меритсоросов от 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); })();
|
|
|
|
Xal0lex
Moderator
Legendary
Offline
Activity: 2450
Merit: 2449
|
|
August 25, 2019, 08:18:36 PM |
|
Маленький скрипт от hatshepsut93, который отображает общее количество меритов у поста.
|
|
|
|
Xal0lex
Moderator
Legendary
Offline
Activity: 2450
Merit: 2449
|
|
October 06, 2019, 12:26:47 AM |
|
PageZipper - скрипт для удобного чтения многостраничных топиков. Он автоматически объединяет страницы топика в одну. То есть, чтобы прочитать следующую страницу топика, не нужно нажимать на цифры - достаточно прокрутить первую страницу вниз и там уже будет следующая. После запуска скрипт отобразит окошко в правом верхнем углу. Где: - стрелки позволяют передвигаться по объединённым страницам;
- первая цифра показывает номер страницы, на которой вы сейчас находитесь;
- вторая цифра показывает количество объединённых страниц.
Скрипт реализован: - в виде букмарклета - достаточно перетянуть ссылку, указанную на оффсайте на панель закладок и можно пользоваться;
- в виде расширения для Chrome и Firefox.
Я лично пользуюсь букмарклетом, не люблю расширения устанавливать. Чтобы выключить букмарклет, достаточно перезагрузить страницу. Что такое букмарклет можно прочитать здесь.
|
|
|
|
Xal0lex
Moderator
Legendary
Offline
Activity: 2450
Merit: 2449
|
Скрипт, который позволяет отсортировать посты в теме по количеству выданных меритов. После установки скрипта в темах появится кнопка "Sort by merit". // ==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) {} }) }
|
|
|
|
xandry
Moderator
Legendary
Offline
Activity: 3444
Merit: 4050
Crypto Swap Exchange
|
Вот этого в списке не хватает (вроде не писали в разделе про него): https://github.com/mrvuit/BitcointalkExtensionРасширение, которое включает в себя целый набор ранее описанных скриптов, и которое позволяет быстро их выключить/включить. Список функций: 1. Сменить тему оформления. 2. Выключить/включить отображение подписей. 3. Выключить/включить отображение аватарок. 4. Открывать сторонние ссылки в новой вкладке 5. Изменять размер шрифта 6. Встроенный и по умолчанию включенный скрипт "Enhanced Merit UI" 7. Встроенный и включенный скрипт, который отображает общее количество меритов у поста. 8. Включает иконку для перехода наверх страницы. 9. Встроенный скрипт для расширения функции "Report To Moderator" 10. Отображает цену bitcoin и ethereum рядом с адресами кошельков
|
|
|
|
bellicose
Sr. Member
Offline
Activity: 1120
Merit: 263
Sovryn - 300-500% APY on USDT Deposit
|
|
October 22, 2019, 07:41:26 PM |
|
Скрипты это конечно очень хорошо. Главное, чтобы скамеры не начали делать свои, которые будут воровать пароли от аккаунтов, ведь такая практика встречается очень часто именно в теме скриптов. Например в дайсах очень часто такое встречается, где на балансах находится крипта.
|
|
|
|
pishite
|
|
November 19, 2019, 06:32:54 AM |
|
Еще один скрипт который форматирует форум для чтения со смартфона: https://bitcointalk.org/index.php?topic=4500633.0Bitcointalk Mobile - это аддон для Firefox под Android, который делает форум bitcointalk.org мобильным. Это приложение не использует удаленную обработку сервера, все выполняется локально в браузере с пользовательским CSS и Javascript. Особенности: Open Source Адаптивный дизайн для смартфона Удобный пользовательский интерфейс, все функции страницы должны работать плавно Нет удаленной обработки Возможность изменить размер шрифта форума Для установки: Загружаем последнюю версию https://play.google.com/store/apps/details?id=org.mozilla.firefox Firefox из Google Play Установить Bitcointalk Mobile Addon с сайта addons.mozilla.orgО безопасности: При установке будет предложено «Доступ к вашим данным для bitcointalk.org», но это не относится к вашим личным данным, таким как файлы cookie или информация для входа, это сделано для изменению HTML-кода. Исходный код https://github.com/ewwink/bitcointalk-mobile
|
|
|
|
madnessteat
Legendary
Online
Activity: 2240
Merit: 2006
|
|
November 19, 2019, 06:41:05 AM |
|
~snip~
Хоть часто читаю и пишу на форуме с пятидюймового смартфона, но доверять такому скрипту я бы точно не стал. Неизвестно, какую именно информацию может собирать данный скрипт, было бы неплохо если бы код проверили знатоки этого дела.
|
| . .Duelbits. | │ | | │ | ▄▄█▄▄░░▄▄█▄▄░░▄▄█▄▄ ███░░░░███░░░░███ ▀░░░▀░░▀░░░▀░░▀░░░▀ ▄░░░░░░░░░░░░ ▀██████████ ░░░░░███░░░░▀ ░░█░░░███▄█░░░█ ░░██▌░░███░▀░░██▌ ░█░██░░███░░░█░██ ░█▀▀▀█▌░███░░█▀▀▀█▌ ▄█▄░░░██▄███▄█▄░░▄██▄ ▄███▄ ░░░░▀██▄▀ | . REGIONAL SPONSOR | | ███▀██▀███▀█▀▀▀▀██▀▀▀██ ██░▀░██░█░███░▀██░███▄█ █▄███▄██▄████▄████▄▄▄██ ██▀ ▀███▀▀░▀██▀▀▀██████ ███▄███░▄▀██████▀█▀█▀▀█ ████▀▀██▄▀█████▄█▀███▄█ ███▄▄▄████████▄█▄▀█████ ███▀▀▀████████████▄▀███ ███▄░▄█▀▀▀██████▀▀▀▄███ ███████▄██▄▌████▀▀█████ ▀██▄███▀██▄█▄▄▄██▄████▀ ▀▀██████████▄▄███▀▀ ▀▀▀▀█▀▀▀▀ | . EUROPEAN BETTING PARTNER | |
|
|
|
andy_pelevin
Legendary
Offline
Activity: 2223
Merit: 1123
Altcoinlog
|
|
November 19, 2019, 12:01:20 PM |
|
Не выбрал ни чего подходящего для себя, но немного меритов ТС отсыпал... Любую операцию, которая повторяется более двух раз, - следует автоматизировать. Думаю, что тем про автоматизацию чего бы там ни было, на форуме недостаточно.
|
|
|
|
viktorkomov1991
Newbie
Offline
Activity: 85
Merit: 0
|
|
November 20, 2019, 09:03:30 AM |
|
Тяжело разобраться , не особо похоже что ветка для новеньких
|
|
|
|
StartupAnalyst (OP)
Sr. Member
Offline
Activity: 728
Merit: 317
Crypto Casino & Sportsbook
|
|
November 27, 2019, 07:14:05 PM |
|
Тяжело разобраться , не особо похоже что ветка для новеньких
Что именно Вам показалось сложным ? Буду благодарен за конструктивную критику, но если до конца года не ответите то расценю Ваш пост как щитпостинг и удалю.
|
|
|
|
StartupAnalyst (OP)
Sr. Member
Offline
Activity: 728
Merit: 317
Crypto Casino & Sportsbook
|
|
December 28, 2019, 09:45:41 PM |
|
Благодарю Вас за эту находку, думаю еще много пользователей в русской локали поблагодарят Вас за возможность не выжигать себе глаза почитывая форум ночью. P.S. Добавил в подборку.
|
|
|
|
FontSeli
|
|
December 29, 2019, 05:41:53 PM |
|
Благодарю Вас за эту находку, думаю еще много пользователей в русской локали поблагодарят Вас за возможность не выжигать себе глаза почитывая форум ночью. P.S. Добавил в подборку. Вот еще один полезный способ как "не выжигать глаза ночью".
|
|
|
|
StartupAnalyst (OP)
Sr. Member
Offline
Activity: 728
Merit: 317
Crypto Casino & Sportsbook
|
|
December 29, 2019, 08:17:12 PM |
|
Благодарю Вас за эту находку, думаю еще много пользователей в русской локали поблагодарят Вас за возможность не выжигать себе глаза почитывая форум ночью. P.S. Добавил в подборку. Вот еще один полезный способ как "не выжигать глаза ночью". Благодарю Вас. Вот перевод, добавил его в подборку. В соответствии с популярным запросом, я сделал тёмную версию текущего CSS на bitcointalk (если есть интерес, я тоже сделаю мобильный CSS). Если у вас есть какие-нибудь идеи или предложения, я буду рад подкорректировать и улучшить текущий дизайн. Скриншоты: *Нажмите для полного просмотраКод здесь. here. Оригинал темы
|
|
|
|
FontSeli
|
|
December 30, 2019, 01:36:06 PM |
|
Благодарю Вас. Вот перевод, добавил его в подборку.
Очень полезная возможность, мне помогает, т.к. не люблю яркий экран в ночное время при чтении. Надеюсь и другим поможет.
|
|
|
|
StartupAnalyst (OP)
Sr. Member
Offline
Activity: 728
Merit: 317
Crypto Casino & Sportsbook
|
|
December 31, 2019, 08:07:50 PM |
|
Очень полезная возможность, мне помогает, т.к. не люблю яркий экран в ночное время при чтении. Надеюсь и другим поможет.
Поддерживаю, как человек, который проводит за экраном монитора в среднем по 10 часов в день. Яркий бэкграунд очень здорово насилует глаза,тёмный куда приятнее для чтения Воистину! Вы оба правы, друзья мои. Поздравляю Всех с Наступающим Новым Годом!!
|
|
|
|
Xal0lex
Moderator
Legendary
Offline
Activity: 2450
Merit: 2449
|
|
August 28, 2022, 08:38:08 PM Last edit: August 29, 2022, 01:11:03 PM by Xal0lex |
|
Скрипт, который добавляет возможность оставлять для себя краткие заметки у пользователей форума. Выглядит вот так: Нажимаете "Add Note", появляется окно для ввода короткой заметки. Также можно нажать на "Add Note" под аватаром, то же самое, появится окошко для ввода заметки. Сама заметка отображается под аватаром и в самом профиле пользователя Сам скрипт // ==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); } })();
Либо по ссылке, указанной вверху
|
|
|
|
light_warrior
In memoriam
Copper Member
Hero Member
Offline
Activity: 602
Merit: 922
|
Чтобы не ваять новую тему ради одного скрипта запощу здесь. Не совсем скрипт для форума но я уверен что этот скрипт понравится многим. Теперь не нужно использовать именно Yandex.браузер чтобы пользоваться закадровым переводом от Yandex. Умельцы соорудили скрипт который позволяет запускать этот закадровый перевод в любом браузере. Надо только иметь Tampermonkey и установить этот скрипт туда и все. У вас есть закадровый перевод любого ролика. Страница скрипта https://github.com/Basilevz/voice-over-translationТам есть список поддерживаемых сайтов, список функционала а также версии для Cloudflare и еще какие то Проверил на virustotalЕстественно проверил и в действии, работает на ура. Для особо параноидальных личностей по поводу безопасности использования этого скрипта. Я никого не принуждаю ставить его. Чисто для информационных целей. Решать вам использовать его или нет. Так что не надо тут бросаться помидорами.
|
|
|
|
|