您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
A Simple Mturk/Greasyfork/MTG search bar
- // ==UserScript==
- // @name AMT Searchbar
- // @namespace http://i.imgur.com/UNrCfvr.gif
- // @version 1.01
- // @description A Simple Mturk/Greasyfork/MTG search bar
- // @author Ethraiel
- // @contributor R.Daneel
- // @include *.mturkgrind.*
- // @include *.reddit.*
- // @include *.mturk.*
- // @require https://code.jquery.com/jquery-3.0.0-alpha1.min.js
- // ==/UserScript==
- //press backtick [`] to toggle the searchbar
- var theme_no = "0";//***0******1*******2******3*******4************5*******the names of the themes are below their respective numbers because im lazy :P
- var theme_name = ["Custom","Dark","Frost","Mint","Ole'Greg","Dark_plain","",""];//set the theme_no to set the theme...
- var search = "";//This is a default value for the searchbar, i.e. "survey" will make "survey" appear when you bring up the searchbar.
- var minpay = ("0.00");//Same as above, but for the minimum pay field.
- var qual = "false";//Set to "true" to automatically check the box "Qualled For" everytime you bring up the searchbar. *note any string other than "true" will return false.
- var master = "false";//Same as above but for "Masters Only"
- if ( localStorage.getItem("AMTSBtheme") ) {
- theme_no = localStorage.getItem("AMTSBtheme");
- }
- if (theme_no == "0"){
- var panel_bg = "white";//CUSTOM********[theme_no = 0]*************CUSTOM
- var text_color = "black";//sets the text color*note the above var sets the panel background color
- var border_color = "grey";//the color of all the borders
- var text_bg = "white";//sets the textfield background color
- var button_bg = "white";//sets the button background color
- var button_hover ="white";//sets the color of the button when hovered over
- var button_hover_text = "blue";//sets the color of the text when the button is hovered over
- var greyed_out_payfield_bg = "grey";//sets the color of the minpay field when disabled
- }
- else if (theme_no == 1){//Dark**********[ theme_no = 1 ]****************Dark
- var panel_bg = "-webkit-linear-gradient(top,rgb(67, 66, 66) 0,rgb(32, 32, 32) 100%) repeat-y; background: -moz-linear-gradient(top,rgb(67, 66, 66) 0,rgb(32, 32, 32) 100%) repeat-y";
- var text_bg = "-webkit-linear-gradient(top,rgb(56, 56, 56) 0,rgb(25, 25, 25) 100%) repeat-x; background: -moz-linear-gradient(top,rgb(56, 56, 56) 0,rgb(25, 25, 25) 100%) repeat-x";
- var button_bg = "-webkit-linear-gradient(top,rgb(84, 83, 83) 0,rgb(48, 48, 48) 100%) repeat-x; background: -moz-linear-gradient(top,rgb(84, 83, 83) 0,rgb(48, 48, 48) 100%) repeat-x";
- var border_color = "rgb(15, 15, 22)";
- var text_color = "rgb(12, 144, 195)";
- var button_hover ="-webkit-linear-gradient(top,rgb(85, 91, 101) 0,rgb(48, 48, 48) 100%) repeat-x; background: -moz-linear-gradient(top,rgb(85, 91, 101) 0,rgb(48, 48, 48) 100%) repeat-x";
- var button_hover_text = "rgb(30, 165, 220)";
- var greyed_out_payfield_bg = "rgb(60, 45, 45)";
- }
- else if (theme_no == 2){//Frost**********[ theme_no = 2 ]****************Frost
- var panel_bg = "-webkit-linear-gradient(top,rgb(225, 244, 251) 0,rgb(121, 190, 255) 100%) repeat-x; background: -moz-linear-gradient(top,rgb(225, 244, 251) 0,rgb(121, 190, 255) 100%) repeat-x";
- var text_bg = "-webkit-linear-gradient(top,rgb(241, 241, 241) 0,rgb(198, 216, 232) 100%) repeat-x !important; background: -moz-linear-gradient(top,rgb(241, 241, 241) 0,rgb(198, 216, 232) 100%) repeat-x !important";
- var button_bg = "-webkit-linear-gradient(top,rgba(151, 182, 250, 0.97) 0,rgb(51, 95, 162) 100%) repeat-x; background: -moz-linear-gradient(top,rgba(151, 182, 250, 0.97) 0,rgb(51, 95, 162) 100%) repeat-x";
- var border_color = "rgb(70, 110, 180)";
- var text_color = "rgb(0, 57, 79)";
- var button_hover ="-webkit-linear-gradient(top,rgba(175, 195, 255, 0.97) 0,rgb(70, 110, 180) 100%) repeat-x; background: -moz-linear-gradient(top,rgba(175, 195, 255, 0.97) 0,rgb(70, 110, 180) 100%) repeat-x";
- var button_hover_text = "rgb(1, 69, 85)";
- var greyed_out_payfield_bg = "rgb(210, 145, 145)";
- }
- else if (theme_no == 3){//Mint**********[ theme_no = 3 ]****************Mint
- var panel_bg = "-webkit-linear-gradient(top,rgb(176, 251, 170) 0,rgb(142, 255, 151) 100%) repeat-x; background: -moz-linear-gradient(top,rgb(176, 251, 170) 0,rgb(142, 255, 151) 100%) repeat-x";
- var text_bg = "-webkit-linear-gradient(top,rgba(233, 249, 235, 0.97) 0,rgb(245, 179, 234) 100%) repeat-x; background: -moz-linear-gradient(top,rgba(233, 249, 235, 0.97) 0,rgb(245, 179, 234) 100%) repeat-x";
- var button_bg = "-webkit-linear-gradient(top,rgba(255, 200, 236, 0.97) 0,rgb(255, 108, 231) 100%) repeat-x; background: -moz-linear-gradient(top,rgba(255, 200, 236, 0.97) 0,rgb(255, 108, 231) 100%) repeat-x";
- var border_color = "rgb(6, 170, 53)";
- var text_color = "rgb(116, 27, 81)";
- var button_hover ="-webkit-linear-gradient(top,rgba(255, 200, 236, 0.97) 0,rgb(255, 125, 255) 100%) repeat-x; background: -moz-linear-gradient(top,rgba(255, 200, 236, 0.97) 0,rgb(255, 125, 255) 100%) repeat-x";
- var button_hover_text = "rgb(196, 47, 138)";
- var greyed_out_payfield_bg = "rgb(150, 190, 75)";
- }
- else if (theme_no == 4){//Ole'Gregg**********[ theme_no = 4 ]****************Ole'Gregg
- var panel_bg = "-webkit-linear-gradient(top,rgb(236, 69, 236) 0,rgb(159, 37, 119) 100%) repeat-x; background: -moz-linear-gradient(top,rgb(236, 69, 236) 0,rgb(159, 37, 119) 100%) repeat-x";
- var text_bg = "-webkit-linear-gradient(top,rgba(158, 230, 79, 0.97) 0,rgb(143, 194, 141) 100%); background: -moz-linear-gradient(top,rgba(158, 230, 79, 0.97) 0,rgb(143, 194, 141) 100%)";
- var button_bg = "-webkit-linear-gradient(top,rgba(130, 191, 64, 0.97) 0,rgb(10, 148, 4) 100%) repeat-x; background: -moz-linear-gradient(top,rgba(130, 191, 64, 0.97) 0,rgb(10, 148, 4) 100%) repeat-x";
- var border_color = "rgb(48, 94, 48)";
- var text_color = "rgb(75, 25, 75)";
- var button_hover ="-webkit-linear-gradient(top,rgba(145, 210, 79, 0.97) 0,rgb(27, 159, 10) 100%) repeat-x; background: -moz-linear-gradient(top,rgba(145, 210, 79, 0.97) 0,rgb(27, 159, 10) 100%) repeat-x";
- var button_hover_text = "rgb(55, 99, 55)";
- var greyed_out_payfield_bg = "rgb(100, 55, 100)";
- }
- else if (theme_no == 5){//Dark_plain**********[ theme_no = 5 ]****************Dark_plain
- var panel_bg = "rgb(45, 45, 45)";
- var text_bg = "rgb(30, 30, 30)";
- var button_bg = "rgb(40, 40, 40)";
- var border_color = "rgb(15, 15, 22)";
- var text_color = "rgb(12, 144, 195)";
- var button_hover ="rgb(45, 45, 55)";
- var button_hover_text = "rgb(30, 165, 220)";
- var greyed_out_payfield_bg = "rgb(60, 45, 45)";
- }
- //note you can also add new custom themes here... simply add another "else if (theme_no == [your theme number]){" then copy and paste your custom theme under it and dont forget to add the closing "}"
- var textfield_focus = "";//".eJtextfields:focus {box-shadow: 0px 0px 7px 1.5px rgba(15, 15, 20, 0.75);}";(this is a style that i'd like to have on some themes and not on others... just replace "" with what comes after //)
- //you can play with some of the finer details below, note that any changes you make will apply to all themes
- var theme =`<style id= "Theme_No.`+theme_no+`" name="`+theme_name[theme_no]+`">
- .eJmain {
- position: relative;
- color: `+text_color+`;
- box-sizing: initial;
- border-radius: 2em;
- font: bold 15px Arial;
- margin: 0;
- outline: none !important;
- padding: 2px !important;
- min-height: 0px;
- text-align: left;
- }
- .eJpanel {
- height: 85px;
- width: 440px;
- background: `+panel_bg+`;
- border: 2.5px solid `+border_color+`;
- box-shadow: 5px 7px 5px 3px rgba(15, 15, 20, 0.72);
- transition-property: height;
- transition-duration: 0.65s;
- }
- .eJtop_row {
- width: 500px;
- position: relative;
- top: 20px;
- left: 7.5px;
- }
- .eJtextfields {
- height: 18px;
- background: `+text_bg+` !important;
- border: .5px solid `+border_color+`;
- box-shadow: inset 0px 4px 6px -2px rgba(15, 15, 20, 0.8);
- font-stretch: normal;
- transition-property: border, background, box-shadow;
- transition-duration: 1s;
- }
- `+textfield_focus+`
- .eJalign_right {
- text-align: right;
- }
- .eJbutton {
- height: 18px;
- width: 75px;
- background: `+button_bg+`;
- border: 0px solid `+border_color+`;
- box-shadow: 1.5px 1.5px 2px 1px rgba(15, 15, 20, 0.75);
- text-align: center;
- }
- .eJbutton:hover {
- box-shadow: 1.5px 2px 2px 1px rgba(15, 15, 20, 0.55);
- background: `+button_hover+`;
- color: `+button_hover_text+`;
- cursor:pointer;
- }
- .eJbutton:active {
- box-shadow: 1px 1px 0px 0px rgba(15, 15, 20, 0.55);
- }
- .eJtoggle_button {
- height: 15px;
- width: 15px;
- }
- .eJsecond_row {
- position: relative;
- top: 15px;
- left: 215px;
- }
- .eJanimate {
- height: 165px;
- }
- .eJsmallfont {
- font: bold 12px Arial;
- position: relative;
- top: 25px;
- left: 20px;
- opacity: 1;
- transition-property: opacity;
- transition-duration: 1s;
- }
- .eJcheckbox {
- height: 14px;
- width: 14px;
- margin-left 15px;
- vertical-align: middle;
- }
- .eJdrop_menu {
- height: 18px;
- width: 100px;
- position: relative;
- top: 12.5px;
- left: 235px;
- opacity: 1;
- transition-property: opacity, display;
- transition-duration: 1s;
- }
- .eJdisable {
- background: `+greyed_out_payfield_bg+` !important;
- box-shadow: 0px 0px 0px 0px rgba(1, 1, 1, 0.0);
- border: none;
- }
- .eJhidden_menu {
- opacity: 0;
- }
- </style>`;
- var AMT_Searchbar =/*div structure-you should only have to edit the theme dropdown menu if you want to add a theme to that menu*/`
- <div id="eJAMTcapsule" class="cap" style="position: fixed; top: 24%; left: 31%; z-index: 3; display: none;">
- <div id="eJmain_panel" class="eJmain eJpanel">
- <div id="eJhomebar" class="eJtop_row">
- <input type="text" id="eJsearch_field" class="eJmain eJtextfields" size="30">
- <input type="text" id="eJpay_field" class="eJmain eJtextfields eJalign_right" size="3">
- <button type="button" id="eJsearch_button" class="eJmain eJbutton">Search</button>
- <div style="height: 1px;">
- <select name="eJdropdown" id="eJgreasy_drop" class="eJmain eJtextfields eJdrop_menu eJhidden_menu">
- <option value="">Relevance</option>
- <option value="&sort=daily_installs">Daily Installs</option>
- <option value="&sort=total_installs">Total Installs</option>
- <option value="&sort=ratings">Ratings</option>
- <option value="&sort=created">Created Date</option>
- <option value="&sort=updated">Updated Date</option>
- <option value="&sort=name">Name</option>
- </select>
- </div>
- </div></br>
- <button type="button" id="eJanimate_button" class="eJmain eJbutton eJtoggle_button eJsecond_row">⇕</button>
- <div id="eJchecks" class="eJsmallfont eJhidden_menu">
- <input type="checkbox" id="eJqual_box" class="eJmain eJcheckbox" value="Qualed"> Qualified For
- <span style="display:inline-block; width: 180px;"></span>
- Search GreasyFork <input type="checkbox" id="eJgreasy_box" class="eJmain eJcheckbox eJalign_right" value="urls"></br>
- <input type="checkbox" id="eJmaster_box" class="eJmain eJcheckbox" value="Masters"> Masters Only
- <span style="display:inline-block; width: 218px;"></span>
- Search MTG <input type="checkbox" id="eJMTG_box" class="eJmain eJcheckbox eJalign_right" value="urls"></br></br>
- <button type="button" id="eJtheme_button" class="eJmain eJbutton eJtoggle_button"><img src="http://i.imgur.com/dvGS1s8.png"></button>
- <select name="eJ1dropdown" id="eJtheme_drop" class="eJmain eJtextfields eJhidden_menu">
- <option value="`+theme_no+`">`+theme_name[theme_no]+`</option>
- <option value="0">`+theme_name[0]+`</option>
- <option value="1">`+theme_name[1]+`</option>
- <option value="2">`+theme_name[2]+`</option>
- <option value="3">`+theme_name[3]+`</option>
- <option value="4">`+theme_name[4]+`</option>
- <option value="5">`+theme_name[5]+`</option>
- </select>
- </div>
- </div>
- </div>
- ;`;
- $("head").append($(theme));
- $("body").append($(AMT_Searchbar));
- $("#eJgreasy_drop").prop("disabled", true);
- $("#eJtheme_drop").prop("disabled", true);
- var search1 = "";//Using the var "search" as a default would not work without this var. neither would using "" as a defualt clear the searchbar on toggle
- var eJflag1 = -1;//flag used to control the dropdown of the hidden menu
- var inject_search = "";//general var that will carry any of the URLs required for search
- $.fn.extend({valid_num: function() {//to escape the minpay field of any invalid characters *Thanks R.Daneel*
- vn = this.val().replace(/[^\d\.]/g, '');
- return (vn.length > 0 && /\d/.test(vn)) ? vn : minpay;
- }});
- $.fn.extend({valid_srch: function() {//to make sure there are not just spaces typed into the searchbar (probably not needed, but i like it)
- vs = this.val();
- return (vs.trim().length > 0) ? vs : search;
- }});
- $.fn.extend({box_manager: function() {//this is important... it manages the url injection for "qualed" and "masters" as well as assigning the var "inject_search" with the proper URL later on
- cb = this.prop("checked");
- if ($(this).attr("id") === "eJqual_box"){
- return (cb === true) ? "qualifiedFor=on" : "";
- }
- else if ($(this).attr("id") === "eJmaster_box"){
- return (cb === true) ? "requiresMasterQual=on" : "";
- }
- else if ($(this).attr("id") === "eJgreasy_box"){
- return (cb === true) ? "https://gf.qytechs.cn/en/scripts/search?q="+($("#eJsearch_field").valid_srch())+""+($("#eJgreasy_drop").val()) : "https://www.mturk.com/mturk/searchbar?selectedSearchType=hitgroups&searchWords="+$("#eJsearch_field").valid_srch()+"&minReward="+$("#eJpay_field").valid_num()+"&"+$("#eJqual_box").box_manager()+"&"+$("#eJmaster_box").box_manager();
- }
- else if ($(this).attr("id") === "eJMTG_box"){
- return (cb === true) ? "http://www.mturkgrind.com/search/7230196/?q="+($("#eJsearch_field").valid_srch())+"&o=date" : inject_search;
- }
- }});
- $(document).keydown(function(e){//toggle function--- press[`] (backtick) to toggle the searchbar *note this is also responsible for applying most of the default values
- if (e.which == 192) {
- search1 = search;
- if (qual == "true"){
- $("#eJqual_box").prop("checked", true);
- }
- if (master == "true"){
- $("#eJmaster_box").prop("checked", true);
- }
- if (window.getSelection().toString() !== ""){//this will paste whatever you have selected on the page into the searchbar when you press the toggle button (select a requester name in the forum, then toggle the searchbar and the name will already be in the searchbar)
- search1 = window.getSelection().toString();
- }
- $("#eJsearch_field").val(search1);
- $("#eJpay_field").prop("readonly") === true ? $("#eJpay_field").val("") : $("#eJpay_field").val(minpay);
- $("#eJAMTcapsule").toggle();
- (e.preventDefault());
- $("#eJsearch_field").focus();//this can be changed to ".select();" to select all the text in the searchfield as you toggle the searchbar
- }
- });
- $(".eJcheckbox").click(function(e){//this messy logic makes sure that, when you change which site you want to search, the proper things happen...i.e. disabling the minpay field, toggling the hidden dropmenu...
- if ($(this).attr("id") === "eJgreasy_box") {//this manages the greasyfork checkbox and everything that happens when you click it
- if (eJflag1 == 1) {
- $(this).prop("checked") === true ? ($("#eJpay_field").addClass("eJdisable").val("").prop("readonly", true)) : ($("#eJpay_field").removeClass("eJdisable").val(minpay).prop("readonly", false));
- $("#eJgreasy_drop").prop("disabled") === true ? ($("#eJgreasy_drop").prop("disabled", false).toggleClass("eJhidden_menu")) : ($("#eJgreasy_drop").prop("disabled", true).toggleClass("eJhidden_menu"));
- $("#eJMTG_box").prop("checked", false);
- }
- else (e.preventDefault());
- }
- if ($(this).attr("id") === "eJMTG_box") {//this manages the MTG checkbox and everything that happens when you click it
- if (eJflag1 == 1) {
- $(this).prop("checked") === true ? ($("#eJpay_field").addClass("eJdisable").val("").prop("readonly", true)) : ($("#eJpay_field").removeClass("eJdisable").val(minpay).prop("readonly", false));
- $("#eJgreasy_drop").prop("disabled") === true ? $("#eJgreasy_drop").prop("disabled", true) : ($("#eJgreasy_drop").prop("disabled", true).toggleClass("eJhidden_menu"));
- $("#eJgreasy_box").prop("checked", false);
- }
- else (e.preventDefault());
- }
- });
- $(".eJbutton").click(function(e){//this makes things happen when you click any button
- if ($(this).attr("id") === "eJsearch_button") {//this is the search button
- inject_search = $("#eJgreasy_box").box_manager();
- inject_search = $("#eJMTG_box").box_manager();
- $("#eJAMTcapsule").toggle();
- window.open(inject_search);
- }
- if ($(this).attr("id") === "eJtheme_button") {//this is the theme changing button, click once to bring up the drop menu and select your theme, click again to save your theme...*note the line directly beneath this one places the text in the search bar when you click the theme button, you can change this text to whatever you like.
- $("#eJtheme_drop").prop("disabled") === true ? $("#eJsearch_field").val("Press again to save your theme...") : $("#eJsearch_field").val("Please refresh the page");
- $("#eJtheme_drop").prop("disabled") === true ? $("#eJtheme_drop").toggleClass("eJhidden_menu").prop("disabled", false) : $("#eJtheme_drop").toggleClass("eJhidden_menu").prop("disabled", true);
- localStorage.AMTSBtheme = $("#eJtheme_drop").val();
- }
- if ($(this).attr("id") === "eJanimate_button") {//this is the hidden menu toggle button
- if (eJflag1 == -1) {
- $("#eJmain_panel").toggleClass("eJanimate");
- setTimeout(function(){$(".eJsmallfont").toggleClass("eJhidden_menu");}, 500);
- eJflag1 = (eJflag1)*-1;
- }
- else {
- $(".eJsmallfont").toggleClass("eJhidden_menu");
- setTimeout(function(){$("#eJmain_panel").toggleClass("eJanimate");}, 650);
- eJflag1 = (eJflag1)*-1;
- }
- }
- });
- $(".eJtextfields").keyup(function(e){//this makes things happen when you press enter in a searchfield
- if (e.which == 13) {
- inject_search = $("#eJgreasy_box").box_manager();
- inject_search = $("#eJMTG_box").box_manager();
- $("#eJAMTcapsule").toggle();
- window.open(inject_search);
- }
- });
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址