Padahal jika DdmrDdmr menambahkan fungsi filter berdasarkan section dan subsection seperti yg ada di menu
Mungkin ada maksud lain untuk tidak menambahkan fungsi tersebut
Selain itu, mungkin menurut saya perlu di tambahkan juga opsi input beberapa form name atau user ID untuk membandingkan data lebih dari satu akun sekaligus.
bisa juga dicounter personal summary per user, tapi ya manual
Mungkin hubungi saja langsung si pembuat toolsnya. .
Haha, tajam.
karena kita gak ada ilmu bikin yang kayak gitu, jadinya minta disuapin terus mas.
Padahal, Thread populer seperti:1.
Bitcointalk Merit Dashboard2.
Announcing BPIP - The Bitcointalk Public Information Project!3.
LoyceV's Merit data analysis (full data since Jan. 24, 2018; not just 120 days)Sumber utamanya dari
ini, karena ketiga thread tersebut baru ada setelah theymos memberikan sourcenya.
Itu pun dalam jangka waktu 2 bulan sejak diminta oleh
EcuaMobi. karena sebelumnya Theymos memberikan data Default Trust raw berbntuk txt, EcuaMobi minta juga supaya data merit dalam bentuk yang sama diopen juga.
Sumber dari semua itu dari babang tampan theymos supaya member menjadi kreative dan bisa mengolahnya dengan baik.
EmeritOya tadi nemu
script di
sini, cara melihat earning merit atau merit yang didapat tanpa buka statistik/dashboard merit lagi. jadi
emerit ini akan nongol di profil pengguna secara default, seperti
merit di profil umumnya.
// ==UserScript==
// @name Display earned merit
// @version 1.0
// @grant none
// @include https://bitcointalk.org/index.php?topic=*
// @run-at document-end
// ==/UserScript==
const getMeritsFromApi = async function(ids) {
return await fetch(`https://bct-quote-notifier.herokuapp.com/api/merit/v1/profiles/?ids=${ids.join(",")}`).then(r =>
r.json()
)
}
const insertEmerit = function(meritNode, eMerit) {
try {
let eMeritNode = document.createElement("text")
meritNode.after(eMeritNode)
meritNode.after(document.createElement("br"))
eMeritNode.textContent = `eMerit: ${eMerit}`
} catch (e) {
console.error(e)
}
}
const main = async function() {
let posters = new Map([])
for (const node of document.querySelectorAll(".poster_info > .smalltext")) {
const meritNode = [...node.childNodes].find(e => e.textContent.match(/Merit/))
const userId = [...node.childNodes].find(e => e.href && e.href.match(/action=profile;u=/)).href.split(";u=")[1]
if (meritNode && userId) {
let poster = posters.get(userId)
if (poster) {
poster.meritNodes.push(meritNode)
} else {
posters.set(userId, { meritNodes: [meritNode] })
}
}
}
let earnedMerits = await getMeritsFromApi([...posters].map(poster => poster[0]))
earnedMerits
.filter(e => e !== null)
.forEach(e => {
let poster = posters.get(e.id.toString())
if (poster) {
poster.earned = e.earned
}
})
for (let [, poster] of posters) {
try {
poster.meritNodes.forEach(node => {
insertEmerit(node, poster.earned || 0)
})
} catch (e) {
console.error(e)
}
}
}
main()
Ini contohnya setelah saya coba pakai di tampermonkey:Bagaimana cara memasangnya?, bisa baca
sini, walaupun thread berlainan di situ ada tutorial singkat insert script di tampermonkey.
Send meritBagi yang tak mau buka halaman baru ketika mengirim
merit. Ada tool untuk mempersingkatnya
Enhanced merit UI [1.1], dan rekan/suhu kita mengupdate ke
versi 1.3Ini scriptnya: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 ([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 = $([''
].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("An Error Has Occurred! 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('Available: '+sMerit+' ') };
});
});
$(".grue-merit-popup").toggle(false);
})();
Dan saya sudah mencoba script tersebut di tampermonkey. Cara kirim meritnya seperti biasa,
sisa smerti juga akan terlihat, jadi bisa dapat langsung mengatur merit.
Kedua script tersebut bisa dipasang di extension. dapat melihat earning dan smerit secara langsung tanpa buka merit dashboard lagi.