Habbabreak V2


Viewing 27 posts - 1 through 27 (of 27 total)
  • Author
    Posts
  • #33636 Reply
    Phil the ex frog

      Here you go Baal. Updated for the new theme.

      
      // ==UserScript==
      // @name        Habbabreak2
      // @namespace   http://habbabreak2.nil
      // @description Sanity helper script for Craig Murray's blog
      // @include     https://www.craigmurray.org.uk/*
      // @version     1.0
      // @grant       GM_getValue
      // @grant       GM_setValue
      // @grant       GM_deleteValue
      // @require     https://code.jquery.com/jquery-1.7.2.min.js
      // @license     Unlicense
      // ==/UserScript==
      
      var styles = '<style>' +
          'div#habbabreak_options_div {display:none; background-color:#fff; padding:5px; border:1px #ccc solid;}' +
          'input#habbabreak_add_person_input {max-width:300px;}' +
          'a#habbabreak_disable_a.disabled {color:red;} div#habbabreak_options_div a {color:#262626; background: #ffff66;}' +
          'a#habbabreak_toggle_options_a.disabled, a#habbabreak_toggle_options_a:visited.disabled {color:red;}' +
          'a#habbabreak_toggle_options_a.disabled:hover {color:#28B7FF;} ' +
          '</style>';
      var boldstyle = '<style>' +
          'article p>a, article p>a:hover {color:#262626; background: #ffff66;} article p {color:#262626; font-size:17px; line-height: 24px;} aside#text-10, aside#text-12, aside#archives-5, aside#categories-5{display:none;}' +
          'aside a {color:#a27210;}' +
          '</style>';
      var peopletohide = function(s) {
          var pth = [];
          var pstr = GM_getValue('var-people-to-hide');
          if (pstr) {
             pth = pstr.split(s);
             pth.splice(-1,1); // remove last empty string from array
          }
          return pth;
      };
      jQuery.expr[':'].icontains = function(a, i, m) {
          return jQuery(a) .text() .toUpperCase() .indexOf(m[3] .toUpperCase()) >= 0;
      };
      $(document) .ready(function () {
          $('head') .append(styles);
          if (GM_getValue('var-option-bold')) $('head') .append(boldstyle);
          $('#menu-main-2') .append('<li><a href="">Habbabreak</a></li>');
          if (GM_getValue('var-script-disabled')) $('a#habbabreak_toggle_options_a') .addClass('disabled');  
          var splitstring = "/c*nt^"; // DO NOT CHANGE
          // Options form html
          var options = '<div id="habbabreak_options_div">' +
             '<h3>Habbabreak V2</h3><div id="habbabreak_people_to_hide_div"></div>' +
             '<p><input type="input" id="habbabreak_add_person_input" placeholder="Loose matching eg habba will hide Habbakuk" maxlength="20"/> <a href="">add person</a></p>' +
             '<p><label><input type="checkbox" id="habbabreak_bold"/> High contrast</label></p>' +
             '<div><a href="">Save</a> | <a href="">Close</a> | <a href="">Disable</a></div>' +
             '</div>' ;
          // Add divs to page
          $('#main-wrapper') .prepend(options);
          // Show/hide options form
          $('a#habbabreak_toggle_options_a') .click(function () {
             if (!$('#habbabreak_options_div') .is(":visible")) {
                $('#habbabreak_people_to_hide_div') .empty();
                // Display saved option values
                peopletohide(splitstring).forEach(function(value) {
                   if (value.length > 0) {
                      $('#habbabreak_people_to_hide_div') .append('<p><span>' + value + '</span> <a href="">remove</a></p>');     
                   }
                });  
                if (GM_getValue('var-option-bold')) $('#habbabreak_bold') .attr('checked', 'checked');
                if (GM_getValue('var-script-disabled')) {
                   $('#habbabreak_disable_a') .text('Enable');
                   $('a#habbabreak_disable_a') .addClass('disabled');          
                }
                $('#habbabreak_options_div') .show();
                $('#habbabreak_add_person_input') .focus();
             } else {
                $('#habbabreak_options_div') .hide();
             }
             
             return false;
          });
          // Disable/enable script link click
          $('a#habbabreak_disable_a') .click(function () {
              GM_setValue('var-script-disabled', !GM_getValue('var-script-disabled'));
              $('#habbabreak_options_div') .hide();
              return true;
          });
          // Add user link click
          $('#habbabreak_options_div a#habbabreak_add_person_a') .click(function () {
              var value = $('#habbabreak_add_person_input') .val() .trim();
              if (value.length > 0) {
                  $('#habbabreak_people_to_hide_div') .append('<p><span>' + value + '</span> <a href="">remove</a></p>');
                  $('#habbabreak_add_person_input') .val('');
              } else {
                  alert ("Habbabreak V2:\nPlease enter a name!");
                  $('#habbabreak_add_person_input').focus();
              }
              return false;
          });
          // Remove user link click
          $('#habbabreak_people_to_hide_div') .on('click', '.remove_user', function () {
              $(this) .parents('p') .remove();
              return false;
          });
          // Close form link click
          $('a#habbabreak_cancel_options_a') .click(function () {
              $('#habbabreak_options_div') .hide();
              return false;
          });
          // Save options link click
          $('a#habbabreak_save_people_a') .click(function () {
              // Delete existing saved options
              GM_deleteValue('var-people-to-hide');
              GM_deleteValue('var-script-disabled');
              GM_deleteValue('var-option-bold');        
              // Save new options
              var pthstr = ''; 
              $('#habbabreak_people_to_hide_div p span') .each(function () {
                  pthstr += $(this) .text() + splitstring;
              });
              if( pthstr.length > 0 ) GM_setValue('var-people-to-hide', pthstr);
              GM_setValue('var-option-bold', $('#habbabreak_bold') .attr('checked') == 'checked');
              // Hide options window
              $('#habbabreak_options_div') .hide();
              // Force page reload 
              return true;
          });
          // Hide comments
          if (!GM_getValue('var-script-disabled')) {
             peopletohide(splitstring).forEach(function(value) {
                var comments = $('header.comment-author') .filter(function () {
                   return $(this).is(':icontains(' + value + ')');
                }).parents('article') ; 
                comments.hide();
                var recents = $('span.comment-author-link') .filter(function () {
                   return $(this).is(':icontains(' + value + ')');
                }).parents('li') ; 
                recents.hide();
             });
          };
      });
      
      • This topic was modified 8 years, 1 month ago by Darth.
      • This topic was modified 8 years, 1 month ago by Darth.
      • This topic was modified 8 years, 1 month ago by Darth.
      #33637 Reply
      Phil the ex frog

        mmmm. I’ll try again.

        #33638 Reply
        Phil the ex frog

          // ==UserScript==
          // @name Habbabreak2
          // @namespace http://habbabreak2.nil
          // @description Sanity helper script for Craig Murray’s blog
          // @include https://www.craigmurray.org.uk/*
          // @version 1.0
          // @grant GM_getValue
          // @grant GM_setValue
          // @grant GM_deleteValue
          // @require http://code.jquery.com/jquery-1.7.2.min.js
          // @license Unlicense
          // ==/UserScript==

          var styles = ‘<style>’ +
          ‘div#habbabreak_options_div {display:none; background-color:#fff; padding:5px; border:1px #ccc solid;}’ +
          ‘input#habbabreak_add_person_input {max-width:300px;}’ +
          ‘a#habbabreak_disable_a.disabled {color:red;} div#habbabreak_options_div a {color:#262626; background: #ffff66;}’ +
          ‘a#habbabreak_toggle_options_a.disabled, a#habbabreak_toggle_options_a:visited.disabled {color:red;}’ +
          ‘a#habbabreak_toggle_options_a.disabled:hover {color:#28B7FF;} ‘ +
          ‘</style>’;
          var boldstyle = ‘<style>’ +
          ‘article p>a, article p>a:hover {color:#262626; background: #ffff66;} article p {color:#262626; font-size:17px; line-height: 24px;} aside#text-10, aside#text-12, aside#archives-5, aside#categories-5{display:none;}’ +
          ‘aside a {color:#a27210;}’ +
          ‘</style>’;
          var peopletohide = function(s) {
          var pth = [];
          var pstr = GM_getValue(‘var-people-to-hide’);
          if (pstr) {
          pth = pstr.split(s);
          pth.splice(-1,1); // remove last empty string from array
          }
          return pth;
          };
          jQuery.expr[‘:’].icontains = function(a, i, m) {
          return jQuery(a) .text() .toUpperCase() .indexOf(m[3] .toUpperCase()) >= 0;
          };
          $(document) .ready(function () {
          $(‘head’) .append(styles);
          if (GM_getValue(‘var-option-bold’)) $(‘head’) .append(boldstyle);
          $(‘#menu-main-2’) .append(‘

        • Habbabreak
        • ‘);
          if (GM_getValue(‘var-script-disabled’)) $(‘a#habbabreak_toggle_options_a’) .addClass(‘disabled’);
          var splitstring = “/c*nt^”; // DO NOT CHANGE
          // Options form html
          var options = ‘<div id=”habbabreak_options_div”>’ +
          ‘<h3>Habbabreak V2</h3><div id=”habbabreak_people_to_hide_div”></div>’ +
          ‘<p><input type=”input” id=”habbabreak_add_person_input” placeholder=”Loose matching eg habba will hide Habbakuk” maxlength=”20″/> add person</p>’ +
          ‘<p><label><input type=”checkbox” id=”habbabreak_bold”/> High contrast</label></p>’ +
          ‘<div>Save | Close | Disable</div>’ +
          ‘</div>’ ;
          // Add divs to page
          $(‘#main-wrapper’) .prepend(options);
          // Show/hide options form
          $(‘a#habbabreak_toggle_options_a’) .click(function () {
          if (!$(‘#habbabreak_options_div’) .is(“:visible”)) {
          $(‘#habbabreak_people_to_hide_div’) .empty();
          // Display saved option values
          peopletohide(splitstring).forEach(function(value) {
          if (value.length > 0) {
          $(‘#habbabreak_people_to_hide_div’) .append(‘<p><span>’ + value + ‘</span> remove</p>’);
          }
          });
          if (GM_getValue(‘var-option-bold’)) $(‘#habbabreak_bold’) .attr(‘checked’, ‘checked’);
          if (GM_getValue(‘var-script-disabled’)) {
          $(‘#habbabreak_disable_a’) .text(‘Enable’);
          $(‘a#habbabreak_disable_a’) .addClass(‘disabled’);
          }
          $(‘#habbabreak_options_div’) .show();
          $(‘#habbabreak_add_person_input’) .focus();
          } else {
          $(‘#habbabreak_options_div’) .hide();
          }

          return false;
          });
          // Disable/enable script link click
          $(‘a#habbabreak_disable_a’) .click(function () {
          GM_setValue(‘var-script-disabled’, !GM_getValue(‘var-script-disabled’));
          $(‘#habbabreak_options_div’) .hide();
          return true;
          });
          // Add user link click
          $(‘#habbabreak_options_div a#habbabreak_add_person_a’) .click(function () {
          var value = $(‘#habbabreak_add_person_input’) .val() .trim();
          if (value.length > 0) {
          $(‘#habbabreak_people_to_hide_div’) .append(‘<p><span>’ + value + ‘</span> remove</p>’);
          $(‘#habbabreak_add_person_input’) .val(”);
          } else {
          alert (“Habbabreak V2:\nPlease enter a name!”);
          $(‘#habbabreak_add_person_input’).focus();
          }
          return false;
          });
          // Remove user link click
          $(‘#habbabreak_people_to_hide_div’) .on(‘click’, ‘.remove_user’, function () {
          $(this) .parents(‘p’) .remove();
          return false;
          });
          // Close form link click
          $(‘a#habbabreak_cancel_options_a’) .click(function () {
          $(‘#habbabreak_options_div’) .hide();
          return false;
          });
          // Save options link click
          $(‘a#habbabreak_save_people_a’) .click(function () {
          // Delete existing saved options
          GM_deleteValue(‘var-people-to-hide’);
          GM_deleteValue(‘var-script-disabled’);
          GM_deleteValue(‘var-option-bold’);
          // Save new options
          var pthstr = ”;
          $(‘#habbabreak_people_to_hide_div p span’) .each(function () {
          pthstr += $(this) .text() + splitstring;
          });
          if( pthstr.length > 0 ) GM_setValue(‘var-people-to-hide’, pthstr);
          GM_setValue(‘var-option-bold’, $(‘#habbabreak_bold’) .attr(‘checked’) == ‘checked’);
          // Hide options window
          $(‘#habbabreak_options_div’) .hide();
          // Force page reload
          return true;
          });
          // Hide comments
          if (!GM_getValue(‘var-script-disabled’)) {
          peopletohide(splitstring).forEach(function(value) {
          var comments = $(‘header.comment-author’) .filter(function () {
          return $(this).is(‘:icontains(‘ + value + ‘)’);
          }).parents(‘article’) ;
          comments.hide();
          var recents = $(‘span.comment-author-link’) .filter(function () {
          return $(this).is(‘:icontains(‘ + value + ‘)’);
          }).parents(‘li’) ;
          recents.hide();
          });
          };
          });

        #33639 Reply
        Phil the ex frog

          Don’t think this’ll work in this comment box. The code tags don’t work as I expected.

          #33644 Reply
          Ba’al Zevul

            TYVM, Phil. I may just have enough savvy to work out what the intention is from the original code, but only just. I’ll take a look at it when I have time and let you know if I can make it work! Thanks again. Although knowing the original target’s offerings are ONLY intended to infuriate makes it easy to scroll past them – the new layout helps. .

            #33647 Reply
            Phil the ex frog

              Darth

              Thanks for editing my original post. Unfortunately wordpress stripped out certain code, at minimum the ids of links, at the time of posting. So whatever magic you performed to restore the links has not saved the script.

              Baal

              You will need to add id attributes to the links. Maybe more. You could get these from the event functions but what a drag. I’ll post the full script somewhere else later and put a link here.

              #33651 Reply
              Ba’al Zevul

                You are most kind, Phil. I’ll watch for developments.

                #33656 Reply
                Phil the ex frog
                  #33657 Reply
                  Phil the ex frog

                    Just found a small but annoying bug. Sometimes, when moving to another page which has comments hidden, it needs a second click of a recent comment link to get to it. I think I can see how this can be fixed. I might do it later tonight depending on time.

                    #33658 Reply
                    Phil the ex frog

                      Bug fixed. Use this version.

                      Habbabreak V2.1: http://pastebin.com/kM7RDULt

                      #33661 Reply
                      Anon1

                        This is sad. If you don’t want to read Habbabkuk’s comments then, erm, why don’t you just not read them?

                        #33662 Reply
                        Phil the ex frog

                          Anon1, good news, the script allows you to hide comments by anyone.

                          Speaking for myself, some comment writers have so consistently failed to write anything that informs or interests me for such a long time that I have simply stopped reading anything they write. Have you not noticed the, erm, somewhat, erm, repetitive baiting and bickering of a few? This script just saves scrolling time.

                          #33663 Reply
                          Ba’al Zevul

                            While I’m deeply grateful for your effort, Phil, I only seem to be able to download this as .txt, and I think it should be .js. Mock my ignorance by all means, but could you please outline how to get this into Firefox? I still have the old Habbabreak files in place: I’d assume yours (as .js) replaces the existing jsquery? The interweb is no help at all as anything that looks relevant goes into acronyms and Javajargon within the first sentence, and my brain is doing a good imitation of a Linux dependency snowball.

                            #33668 Reply
                            Phil the ex frog

                              Keep your browsing even cleaner with the newer, better Habbabreak2. Now updated to hide forum posts too! h/t Anon1

                              http://pastebin.com/t3zZxbZT

                              Baal, there is no way to “download” the script from pastebin into Firefox (I can’t be arsed to set it up to do this on one of the script serving sites). You have to manually copy and paste. I’ll write a separate post below detailing the steps. Disable/remove your old version then follow these steps.

                              No need to be too grateful mate. It’s minutes of work that I have done for myself anyway.

                              #33669 Reply
                              Phil the ex frog

                                Weed Don’t Wade with Habbabreak!

                                Tired of the same old same old? Is there a comment writer you simply no longer read? Let Habbabreak weed them out. Throw the chaff on the compost. Those saved seconds of scrolling soon add up. Find freedom with your virtual gardening friend Habbabreak.

                                Habbabreak2 v1.2: http://pastebin.com/t3zZxbZT

                                How To Install
                                Use Firefox with the Greasemonkey addon.

                                • Click on the menu Tools>Greasemonkey>New User Script
                                • Enter “Habbabreak2” into the Name box. Enter “http://habbabreak2.nil&#8221; into the Namespace box. Press OK button.
                                • Delete everything in the new window.
                                • Copy the Habbabreak pastebin contents and paste into the new window. Press Save button.

                                How To Use
                                Click the new Habbabreak menu item that appears next to Invite Craig To Speak. Add the name(s) of any comment writer(s) you no longer want to see. Press the Save button.

                                #33671 Reply
                                Ba’al Zevul

                                  Thanks*, Phil. Ah. That makes sense, according to my hasty excursion into Java – normally it’s something NoScript has to deal with..

                                  *No, you deserve it.

                                  #33677 Reply
                                  Ba’al Zevul

                                    Works like a charm. No more Ishmael misery.

                                    #33678 Reply
                                    Phil the ex frog

                                      Knowing you appreciate a little pedantry and as you are using words: this is JavaScript (& jQuery). JavaScript is a web standard. It is interpreted by web browsers. JQuery is a popular library of JavaScript functionality.

                                      Java, a JIT language, is an entirely different kettle of fish. Found in old washing machines. Not online.

                                      #33679 Reply
                                      Ba’al Zevul

                                        Pedant. 🙂 My last serious excursion into code was Motorola 68000 machine code. These metalanguages are just confusing. I’m old and confused.

                                        #33688 Reply
                                        Ba’al Zevul

                                          It’s gone! No Habbabreak option at the top of the CM page, but your script is apparently intact and enabled in ‘Manage User Scripts’, and I still have the Greasemonkey logo in Firefox. Suspect Greasemonkey may have somehow got refreshed and wiped its own script (this has happened before, when Habbabreak 1 was killed by GM). I may have a backup somewhere. Will do some digging.

                                          #33693 Reply
                                          Ba’al Zevul

                                            Attempting to run Habbabreak2 from its location in GM scripts returns ‘jquery undefined’ but it appears to be intact, and so does the jqery 1.7.2 file in the Habbabreak 2 folder (which is what got wiped last time). Will try a reinstall.

                                            #33694 Reply
                                            Ba’al Zevul

                                              Panic over – of <i>course</i> you need to turn NoScript off or allow Habbabreak permanently. Old and confused, that’s me. Move along, nothing to see, yibble, yibble.

                                              #33717 Reply
                                              Julian

                                                Oh goody I will try this soon. Thank you Phil and anyone else who helped. Will it work with Chrome or do I have to go back to firefox? – which I am happy to do if I never have to hear from you-know-who again. Regards Julian

                                                #33720 Reply
                                                Phil the ex frog

                                                  Baal

                                                  Noscript shouldn’t have any interation with habbabreak. Noscript addresses scripts downloaded with a page whereas habbabreak is stored locally. I think. I run noscript & habbabreak without issue. No sure what is going on. I like your ongoing <i> joke.

                                                  Julian

                                                  I am pretty certain in it’s current state this will only work with firefox. It would be a fairly trivial task to make it work on chrome too.

                                                  #33721 Reply
                                                  Phil the ex frog

                                                    Baal

                                                    I’m perplexed. I have had a quick looked and there should be no need to restrict noscript operation to run habbabreak.

                                                    You said:”…or allow Habbabreak permanently”.

                                                    What do you mean? How did you allow habbabreak? Is it somehow listed as a blocked script on your version of noscript?

                                                    #33722 Reply
                                                    Ba’al Zevul

                                                      Damned if I know, Phil. What you say is what I’d have thought, but guessed the new version might conceivably have thrown a rock at NoScript. I’d loaded it on a previous session, and it had disappeared. Reloading the CM page didn’t bring it back. It was there in the addons. When I invoked ‘temporarily allow all this page’ it reappeared. That’s all I know. Just a glitch then, perhaps. It’s been fine ever since (page permanently allowed).

                                                      #33723 Reply
                                                      Phil the ex frog

                                                        Baal, fine. As long as it works.

                                                        Julian, according to the web page Tampermonkey is now fully compatible with Greasemonkey scripts. So, in theory, this should work in Chrome/Safari etc as it is. Just install Tampermonkey and check the Greasemonky box.

                                                        Viewing 27 posts - 1 through 27 (of 27 total)
                                                        Reply To: Habbabreak V2
                                                        Your information: