My guest number: 4927 Stake username: PrimediceRU
|
|
|
My guest number: 4929 Stake username: PrimediceRU
|
|
|
Версия для источников заслуг обновлена (исправлена пара маленьких багов). Код: // ==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.2 // @grant none // ==/UserScript==
(() => { var sMerit, 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(source_sMerit!=null && source_sMerit-merits>=0){ source_sMerit -= merits }else if(source_sMerit!=null && source_sMerit>0){ sMerit -= merits-source_sMerit source_sMerit = 0 }else 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); })();
|
|
|
|