Bitcoin Forum
April 23, 2018, 02:13:53 PM *
News: Latest stable version of Bitcoin Core: 0.16.0  [Torrent]. (New!)
 
   Home   Help Search Donate Login Register  
Pages: [1] 2 »  All
  Print  
Author Topic: Enhanced merit UI [1.1]  (Read 919 times)
grue
Global Moderator
Legendary
*
Offline Offline

Activity: 2100
Merit: 1136



View Profile
January 27, 2018, 04:55:40 PM
Merited by Vod (10), Cyrus (10), mprep (10), minifrij (10), rickbig41 (10), theymos_away (10), dbshck (5), OmegaStarScream (5), Lutpin (5), BitMaxz (5), akamit (5), vlom (4), Cobalt9317 (3), malevolent (2), btc-facebook (2), SFR10 (2), 0t3p0t (2), Mitchell (1), d5000 (1), owlcatz (1), EcuaMobi (1), Welsh (1), ibminer (1), InvoKing (1), jtipt (1), Raja_MBZ (1), marlboroza (1), jhenfelipe (1), Hhampuz (1), kaicrypzen (1), xdrpx (1), paul00 (1), revenant2017 (1), Meraki (1), Xal0lex (1), sncc (1)
 #1

This is a very simple userscript that allows you to add merit without leaving the page. Click on the "+Merit" link to open/close the popup.



Download: Merit.user.js

Installation:

Changelog:
1.0: release
1.1: fix csrf token not working when quick reply is disabled. (thanks minifrij)
1.2: rehost file on github

It is pitch black. You are likely to be eaten by a grue.

Adblock for annoying signature ads | Enhanced Merit UI
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
Funky_Yoda
Jr. Member
*
Offline Offline

Activity: 38
Merit: 8


View Profile
January 27, 2018, 05:01:01 PM
 #2

Thanks for this information Smiley
Looks good. Will be using this. (one day Tongue ).
minifrij
Legendary
*
Offline Offline

Activity: 1638
Merit: 1056



View Profile WWW
January 27, 2018, 05:52:17 PM
Merited by grue (2), mprep (1), Mitchell (1), Welsh (1), btc-facebook (1), Lutpin (1)
 #3

Great script grue, thanks!

Just a little thing though, when I tried installing and using the script it would tell me 'Failed to give merit' whenever I tried to reward it. I found that this was a session error due to how you get 'sc'.
I've made a small fix here (on lines 12-14), which works for me currently:
Code:
 //get csrf token
  var sc = $('input[name="sc"][type="hidden"]').val();
  sc = (!sc ? ($('a[onclick]')[1].href).split('sesc=')[1] : sc);

thanks for 5 years
Lutpin
Copper Member
Legendary
*
Offline Offline

Activity: 1050
Merit: 1693


Ich hab dein Emblem für immer in der Brust


View Profile WWW
January 27, 2018, 06:47:38 PM
 #4

Great script grue, thanks!

Just a little thing though, when I tried installing and using the script it would tell me 'Failed to give merit' whenever I tried to reward it. I found that this was a session error due to how you get 'sc'.
I've made a small fix here (on lines 12-14), which works for me currently:
Code:
 //get csrf token
  var sc = $('input[name="sc"][type="hidden"]').val();
  sc = (!sc ? ($('a[onclick]')[1].href).split('sesc=')[1] : sc);
Getting the same error, great you already spotted and fixed it Smiley
Also, very well done grue, the extra page to open when giving merit was one of the most criticized aspect of this change.
Thanks!


▄▄▄████████▄▄▄
▄██████████████████▄
▄██████████████████████▄
██████████████████████████
████████████████████████████
██████████████████████████████
██████████████████████████████
██████████████████████████████
██████████████████████████████
██████████████████████████████
████████████████████████████
██████████████████████████
▀██████████████████████▀
▀██████████████████▀
▀▀▀████████▀▀▀
   ███████
██████████
██████████
██████████
██████████
██████████
██████████
██████████
██████████
██████████
██████████
██████████
███████



             ▄████████████████████████████████████████████████████████████▄
            ██                          ▄▄▄▄▄▄                           ██
           ██  ██████                ▄██████████▄     ████████████████████▀
          ██  ████████             ▄████▀   ▀████▄    ████▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
         ██  ████  ████           ████▀       ▀██▀    ████
        ██  ████    ████        ▄███▀                 ████

       ██  ████      ████       ███▀                  ████▄▄▄▄▄▄▄▄▄▄
      ██  ████        ████      ███                   ██████████████
     ██  ████          ████     ███▄                  ████▀▀▀▀▀▀▀▀▀▀

    ██  ████████████████████    ▀████                 ████
   ██  ██████████████████████    ▀████▄        ▄██▄   ████

  ██  ████                ████     ▀████▄   ▄████▀    ████▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
 ██  ████                  ████      ▀██████████▀     ████████████████████▄
  ██                                    ▀▀▀▀▀▀                           ██
   ▀█████████████████████████████████████████████████████████████████████▀
grue
Global Moderator
Legendary
*
Offline Offline

Activity: 2100
Merit: 1136



View Profile
January 27, 2018, 07:19:09 PM
Merited by OgNasty (1)
 #5

Great script grue, thanks!

Just a little thing though, when I tried installing and using the script it would tell me 'Failed to give merit' whenever I tried to reward it. I found that this was a session error due to how you get 'sc'.
I've made a small fix here (on lines 12-14), which works for me currently:
Code:
  //get csrf token
  var sc = $('input[name="sc"][type="hidden"]').val();
  sc = (!sc ? ($('a[onclick]')[1].href).split('sesc=')[1] : sc);
thanks. turns out that if you don't have quick reply enabled, the input with the token isn't there. i updated the script to use the token from the logout link (which should always be there).

It is pitch black. You are likely to be eaten by a grue.

Adblock for annoying signature ads | Enhanced Merit UI
bluefirecorp_
Member
**
Offline Offline

Activity: 114
Merit: 25


View Profile
January 28, 2018, 12:55:13 AM
 #6

Much better than my suggestion here; https://bitcointalk.org/index.php?topic=2818350.msg28914391#msg28914391

Good job. Didn't know you worked for Microsoft (that windows.net link >_>)
EcuaMobi
Legendary
*
Offline Offline

Activity: 1400
Merit: 1171


https://Ecua.Mobi


View Profile WWW
February 01, 2018, 08:24:31 PM
 #7

Thanks for this!
I just found it and it's really useful. So here's a little bump for others to find it.

Also, could you add a small link to own Merit stats (https://bitcointalk.org/index.php?action=merit) ?
Sometimes I used to click "+Merit" just to go there.



Edit:
I just realized I posted the wrong link. I meant own Metir stats.
Something like https://bitcointalk.org/index.php?action=merit;msg=29410086 (with the corresponding msg)

PGP: KeyBase.io/EcuaMobi [Verify / Encrypt] • 37D06E1D43EC62B874DD56868DAFD805AE6D5F7A
Bitcoin full node: node.ecua.mobiUserscripts for bitcointalk: Improved imagesShort URLs
Domains for sale: Current auctionFull list
sncc
Full Member
***
Offline Offline

Activity: 126
Merit: 111


Virtue: 365


View Profile
February 07, 2018, 03:30:12 PM
Merited by jtipt (1)
 #8

Thank you, this is very nice UI.
Adding stats link would be interesting but imho it would be more useful if one could check his/her own (not others') sMerit balance when trying to send Merit.
Could you implement it like this image?

▌▌▌   SmileySmiley Cosplay Token   ▌  World's largest cosplay platform   ▌▌▌
ANN  Bounty  Twitter  Facebook  Telegram  Medium
▬▬▬▬▬▬   Register to stay updated on our NEWS   ▬▬▬▬▬▬
adrianto1995
Full Member
***
Offline Offline

Activity: 252
Merit: 104


Smart Contracts for Smart Contractors


View Profile WWW
February 08, 2018, 05:17:47 AM
 #9

oh man you da real MVP

it really helpful a lot, especially for low speed internet connection users like me...  Smiley
i will try it when i got my sMerit back...

Vod
Legendary
*
Offline Offline

Activity: 2352
Merit: 1414


Licking my boob since 1970


View Profile WWW
February 08, 2018, 05:20:13 AM
Merited by bill gator (1)
 #10

Nice userscript!!

I won't be using it, as I like the info presented in a new window when I click the merit button.  Smiley

I'm into creating universes, smiting people, writing holy books and listening to Prayer Messages (PMs).
BitcoinTalk Public Information Project (BPIP)
$$ Our donation wallet information $$
akamit
Hero Member
*****
Offline Offline

Activity: 770
Merit: 513


IOS - The secure, scalable blockchain


View Profile
February 12, 2018, 08:08:47 PM
 #11

Great job Grue! A useful script for lazy guys.
I hope lazy guys will not hesitate anymore to merit someone's post now and then or will be able to show another excuse.

A responsible bump for the lazy mates, those who have waited long for this.  Wink

|
               ▄
            ▄█████▄
         ▄███████████▄
      ▄████████▀████████▄
   ▄█████████▀   ▀█████████▄
 █████████▀    ▄    ▀████████
▐██████▀    ▄█████▄    ▀██████▌
▐████▌   ▐███████████▄   ▐████▌
▐██████▄    ▀▀   ███████▄█████▌
▐█████████▄     ██████████████▌
▐█████████▄  ▄   ▀▀   ████████▌
▐███████████████▄    █████████▌
▐████ ▀████████▄  ▄    ▀██████▌
▐████    ▀███████████▌   ▐████▌
▐██████▄    ▀█████▀    ▄██████▌
 █████████▄    ▀    ▄█████████
   ▀█████████▄   ▄█████████▀
      ▀████████▄████████▀
         ▀███████████▀
            ▀█████▀
               ▀
  
>_FOR


    ███▄▄▄▄▄▄▄▄▄▄▄▄▄         ██
    ███            █
             ██    █             █████
 █████             █▀▀▀▀▀▀▀▀▀▀▀▀▀█████
 █████▀▀▀▀▀▀▀▀▀▀█  █             █████
 █████          █  █      ██
       ██       █  █
 ██             █  █           ███
            ██  █  █      █▀▀▀▀███
   █████        █  █      █
   █████▀▀▀▀▀▀▀▀▀▀▀▀▀█▀▀▀▀▀
   █████             █
         ██          █   ██          █████
                ██   █      ▄▄▄▄▄▄▄▄▄█████
        ███▄▄▄▄▄▄▄▄▄▄█▄▄▄▄▄▄█        █████
        ███
                  ██      ▀
 

█▄▄              █▄▄
█████▄▄         ██████▄▄
████████       ████████ █
████████ ██   ████████ ██
████████ ███ ████████ ███
████████ ████ ██████ ████
████████ █████ ████ █████
████████ ▀█████ ██ ██████
████████    ▀▀██  ███████
▀███████         ▀███████
   ▀▀███            ▀▀███
       ▀                ▀
 

                   ▄▄████
              ▄▄████████▌
         ▄▄█████████▀███
    ▄▄██████████▀▀ ▄███▌
▄████████████▀▀  ▄█████
▀▀▀███████▀   ▄███████▌
      ██    ▄█████████
       █  ▄██████████▌
       █  ███████████
       █ ██▀ ▀██████▌
       ██▀     ▀████
                 ▀█▌
 

             ▄████▄▄   ▄
█▄          ██████████▀▄
███        ███████████▀
▐████▄     ██████████▌
▄▄██████▄▄▄▄█████████▌
▀████████████████████
  ▀█████████████████
  ▄▄███████████████
   ▀█████████████▀
    ▄▄█████████▀
▀▀██████████▀
    ▀▀▀▀▀
|
BenOnceAgain
Member
**
Offline Offline

Activity: 207
Merit: 70

🌐 www.btric.org 🌐


View Profile WWW
February 12, 2018, 08:33:12 PM
 #12

This is a very simple userscript that allows you to add merit without leaving the page. Click on the "+Merit" link to open/close the popup.

Hi grue, thank you very much for the great script!

Best regards,
Ben

fabianji
Jr. Member
*
Offline Offline

Activity: 70
Merit: 8


View Profile
February 13, 2018, 05:23:36 AM
 #13

This is a very simple userscript that allows you to add merit without leaving the page. Click on the "+Merit" link to open/close the popup.

Amazing - thank you!


▬▬▬▬ THRIVE ▬▬▬▬
THE PREMIUM DECENTRALIZED AD MARKETPLACE
[  Private Round | Jan 15th, 2018  ] (http://ico.thrivelabs.io)
ungvantuyen
Jr. Member
*
Offline Offline

Activity: 40
Merit: 0


View Profile
February 13, 2018, 05:40:47 AM
 #14

Thanks Chris for the great works. How about drop-down list of meriters correspond to number of merits they sent. It will help to clear appearance of topics and threads that have abundant meriters. I don't remember the source of the idea, but I read about the idea somewhere in the ground.

ULTIMA
Discord (https://discordapp.com/invite/3A7JfsB)  Ⓤ  Website (http://ultima.qa/)
EcuaMobi
Legendary
*
Offline Offline

Activity: 1400
Merit: 1171


https://Ecua.Mobi


View Profile WWW
February 23, 2018, 06:58:58 PM
Merited by dbshck (3), Vod (2), akamit (2)
 #15

I have combined my own suggestion as well as sncc's and modified grue's script to implement them.

This is the result:
Loading image...

The available sMerit points are shown. 'Available' is a link which opens the default https://bitcointalk.org/index.php?action=merit;msg=30923337 (with the corresponding msg) in a new window to keep the original functionality.

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

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

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

A small limitation is that it queries the available sMerit points once (when the thread is loaded). It does subtract them when points are sent. However, if sMerit points are received the change won't be reflected unless the page is reloaded. That would require re-querying every time which I considered an overkill.

To install this version, you can just modify grue's script or install this from scratch:
https://openuserjs.org/scripts/EcuaMobi/bitcointalk_merit

(grue, I assumed this code is open-source. If that's not the case, let me know to unpublish this)

PGP: KeyBase.io/EcuaMobi [Verify / Encrypt] • 37D06E1D43EC62B874DD56868DAFD805AE6D5F7A
Bitcoin full node: node.ecua.mobiUserscripts for bitcointalk: Improved imagesShort URLs
Domains for sale: Current auctionFull list
Meraki
Full Member
***
Offline Offline

Activity: 322
Merit: 108


Earn with impressio.io


View Profile
February 23, 2018, 08:06:01 PM
 #16

Thankyou for this it worked smoothly, really useful for me bc i hate the fact that new tab is opening for clicking the merit!

UsernameBitcoin
Sr. Member
****
Offline Offline

Activity: 483
Merit: 250



View Profile
February 24, 2018, 12:36:08 AM
 #17

Great addition! This was required especially in the light of the changes to the merit system. I just found about the merit system today and was looking for a way to give merits easily.


Is it possible to integrate this into the forum itself? Using some simple machines plugin maybe?

                             ▄▄▄████████▄▄▄
                         ▄▄██████████████████▄▄
                       ▄███████▄▄▄▄▄▄▄▄▄▄███████▄
                     ▄█████▄▄██████████████▄▄█████▄
        ██████  █████████▄████████████████████▄█████
        ██████  ███████▄████████▄▄▄▄▄▄▄▄████████▄████
                      ▄██████▀████████████▀██████▄████
███████   █████████████████████████████████████████████
███████   █████████████████████████████████████████████
                   ████████████████████████████████████
     ██████████████████████████████████████████████████
     ██████████████████████████████████████████████████
                     █████████████████████████████████
            ██████████▀██████▄████████████▄██████▀████
            ███████████▀████████▀▀▀▀▀▀▀▀▀▀███████▄███
                    █████▀████████████████▄▀██████▄
                     ▀█████▀▀██████████████▀██▀██████▄
                       ▀███████▀▀▀▀▀▀▀▀▀▀███████▀▀▀▀▀▀
                         ▀▀██████████████████▀▀
                             ▀▀▀████████▀▀▀
QUIFAS                     
                    ███
 █              ███ ███
 █              ███  █
███          █  ███
███         ███  █
███  █      ███  █
    ███  █  ███  █
    ███ ███  █   █
     █   █   █
     █       
Alex_Sr
Member
**
Offline Offline

Activity: 98
Merit: 57

Merit? No, not heard


View Profile WWW
February 28, 2018, 07:52:52 AM
 #18

This is a very simple userscript that allows you to add merit without leaving the page. Click on the "+Merit" link to open/close the popup.



Download: Merit.user.js

Installation:

Changelog:
1.0: release
1.1: fix csrf token not working when quick reply is disabled. (thanks minifrij)

Thank you, this is very nice script. When will more merit - I will definitely use it!

holder99
Member
**
Offline Offline

Activity: 98
Merit: 12

The Experience Layer of the Decentralized Internet


View Profile
February 28, 2018, 10:18:35 AM
 #19

Awesome, the landlord is really a technology expert, this must support, will not be so troublesome later.

bobq
Sr. Member
****
Offline Offline

Activity: 560
Merit: 275



View Profile
March 25, 2018, 08:41:25 AM
 #20

I have combined my own suggestion as well as sncc's and modified grue's script to implement them.

This is the result:
Loading image...


Thanks for this upgrade, it was absolutely necessary. Not knowing how many sMerits you still have when you are about to give one was not an option, given their overall scarcity (most people have just a few sMerits).

Pages: [1] 2 »  All
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!