1. ceedj Survey Slinger

    Messages:
    2,867
    Gender:
    Male
    Ratings:
    +6,405
    I did not create this script, nor the fix (that was done by @Melting Glacier ), I am just posting it here so people have it.

    The fix: add this to your include entries near the top of the script:

    Code:
    // @include
    https://www.mturkcontent.com/*
    Full script (will remove if asked:

    Code:
    // ==UserScript==
    // @name
    PI Search Helper Script
    // @namespace
    https://greasyfork.org/en/users/10782
    // @version
    0.4111
    // @description
    Keyword highlighting, keyboard shortcuts and autoselect options. Helper script for PI search in mturk. Disable script when not in use.
    // @author
    tismyname
    // @require
    https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js
    // @include
    https://s3.amazonaws.com/*
    // @include
    https://www.mturkcontent.com/*
    // ==/UserScript==
    // Makes Instructions Hidable
    $(".panel-heading").before('<label id="toggle-label" style="color:#0000EE; "><input type="checkbox" id="toggler"><span>-Show Instructions-<span></input><br></label>')
    $(".panel-heading").hide();
    $(".panel-body").hide();
    var text = $('#toggle-label').text();
    // Button to show or hide instructions
    $('#toggler').click(function() {
    $(".panel-heading").toggle();
    $(".panel-body").toggle();
    $('#toggle-label').text() == '-Show Instructions-' ? str = '-Hide Instructions-' : str = '-Show Instructions-';
    $('#toggle-label span').html(str);
    });
    var ITEMS = 6;
    var currentQ = 1;
    // Auto Select First Option
    for(var i = 1; i <= ITEMS; i++) {
    $('#Q'+i+'_5').click();
    // Quick Fix for the Pi Search with Two Choices
    $('#Q'+currentQ+'_Y').click();
    }
    // Auto focuses on first radio button
    $('#Q'+currentQ+'_5').focus();
    // Sets current clicked element to match keyboard shortcuts
    $("input[type=radio]").click(function(){
    currentQ = this.id.charAt(1);
    });
    // Checks for keypresses
    $(document).keyup(function (event) {
    var key = toCharacter(event.keyCode);
    if (key=='1') {
    $('#Q'+currentQ+'_5').prop("checked", true);
    // Quick Fix for the Pi Search with Two Choices
    $('#Q'+currentQ+'_Y').prop("checked", true);
    currentQ++;
    }
    if (key=='2') {
    $('#Q'+currentQ+'_4').prop("checked", true);
    // Quick Fix for the Pi Search with Two Choices
    $('#Q'+currentQ+'_Y').prop("checked", true);
    currentQ++;
    }
    if (key=='3') {
    $('#Q'+currentQ+'_3').prop("checked", true);
    currentQ++;
    }
    if (key=='4') {
    $('#Q'+currentQ+'_2').prop("checked", true);
    currentQ++;
    }
    if (key=='5') {
    $('#Q'+currentQ+'_1').prop("checked", true);
    currentQ++;
    }
    if(key=='N' || key=='W') {
    currentQ++;
    }
    if(key=='B' || key=='Q') {
    currentQ--;
    }
    if(currentQ > ITEMS)
    {
    currentQ = 6;
    }
    if(currentQ < 1)
    {
    currentQ = 1;
    }
    if(key != 'ARROWKEY')
    {
    $('#Q'+currentQ+'_5').focus();
    $('#Q'+currentQ+'_Y').focus();
    }
    });
    // keyboard logic from https://greasyfork.org/en/scripts/5978-mturk-dave-cobb-hit-helper
    function toCharacter(keyCode) {
    // delta to convert num-pad key codes to QWERTY codes.
    var numPadToKeyPadDelta = 48;
    // if a numeric key on the num pad was pressed.
    if (keyCode >= 96 && keyCode <= 105) {
    keyCode = keyCode - numPadToKeyPadDelta;
    return String.fromCharCode(keyCode);
    }
    if(keyCode >= 37 && keyCode <= 40)
    return "ARROWKEY";
    if (keyCode == 13)
    return "ENTER"; // not sure if I need to add code to hit the submit button
    return String.fromCharCode(keyCode);
    }
    /*
    SUPER AWESOME NOT MINE PLUGIN CODE STARTS HERE ====================================================
    highlight v5
    Highlights arbitrary terms.
    <http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html>
    MIT license.
    Johann Burkard
    <http://johannburkard.de>
    <mailto:jb@eaio.com>
    */
    jQuery.fn.highlight = function(pat) {
    function innerHighlight(node, pat) {
    var skip = 0;
    if (node.nodeType == 3) {
    var pos = node.data.toUpperCase().indexOf(pat);
    pos -= (node.data.substr(0, pos).toUpperCase().length - node.data.substr(0, pos).length);
    if (pos >= 0) {
    var spannode = document.createElement('span');
    spannode.className = 'highlight';
    var middlebit = node.splitText(pos);
    var endbit = middlebit.splitText(pat.length);
    var middleclone = middlebit.cloneNode(true);
    spannode.appendChild(middleclone);
    middlebit.parentNode.replaceChild(spannode, middlebit);
    skip = 1;
    }
    }
    else if (node.nodeType == 1 && node.childNodes && !/(script|style)/i.test(node.tagName)) {
    for (var i = 0; i < node.childNodes.length; ++i) {
    i += innerHighlight(node.childNodes[i], pat);
    }
    }
    return skip;
    }
    return this.length && pat && pat.length ? this.each(function() {
    innerHighlight(this, pat.toUpperCase());
    }) : this;
    };
    jQuery.fn.removeHighlight = function() {
    return this.find("span.highlight").each(function() {
    this.parentNode.firstChild.nodeName;
    with (this.parentNode) {
    replaceChild(this.firstChild, this);
    normalize();
    }
    }).end();
    };
    // PLUGIN CODE ENDS
    ===================================================
    // Adds Styling Class for Highlighting Text
    var sheet = document.createElement('style')
    sheet.innerHTML = ".highlight { font-weight: bold; background-color: yellow; font-size: 110%;}";
    document.body.appendChild(sheet);
    // Regex to find keywords to highlight
    var match =
    $('tbody').text().match(/searched for[: ](.*)/g);
    // Loops through matched terms, cleans regex junk and then highlights them
    for(var i = 0; i < match.length; i++)
    {
    // Remove the noise in front used to find the area
    var cleanedString = match[i].toString().substring(13);
    // Replace any searches with '+' with spaces
    cleanedString = cleanedString.replace(/[+]/g, " ");
    var words = cleanedString.split(" ");
    for(var j = 0; j < words.length; j++)
    {
    var word = words[j];
    // Highlights only first row of each table
    $('tr:eq('+i*2+')').highlight(word);
    // If word ends in s, highlight the case without it
    var patt = new RegExp("[s]$");
    if( patt.test(word) ) {
    $('tr:eq('+i*2+')').highlight(word.substring(0, word.length - 1));
    }
    // Cases where word ends in 'es'
    patt = new RegExp("es$");
    if( patt.test(word) ) {
    $('tr:eq('+i*2+')').highlight(word.substring(0, word.length - 2));
    }
    }
    }
     
    • Today I Learned x 2
    • Like x 1
    • Love x 1
  2. HubHelper Hiii The Prophet TurkerView Masters

    Messages:
    212
    Ratings:
    +843
  3. lefty Survey Slinger

    Messages:
    18,930
    Gender:
    Female
    Ratings:
    +49,005
    How do I get added to the th-sergey group? I got the qual yesterday


    Edit thought I was on the daily thread lol
     
  4. slothbear Survey Slinger

    Messages:
    10,822
    Gender:
    Male
    Ratings:
    +22,072
    You made me think 3.14s came back by posting in here. :biblethump: