您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Click the search button to begin. Then simply click on the matching image in the google results.
- // ==UserScript==
- // @name CrowdSource: Search Image URL
- // @version 0.9
- // @namespace localhost
- // @description Click the search button to begin. Then simply click on the matching image in the google results.
- // @copyright 2013+, John Stoehr, Tjololo12, modified for Image URL Hits by BenWo
- // ------------------------------------------------------------------------------------
- // @match https://work.crowdsource.com/amt/view*
- // @match https://www.google.com/search*
- // @match https://www.google.co.uk/search*
- // @run-at document-end
- // @require http://code.jquery.com/jquery-2.1.0.js
- // @require https://greasyfork.org/scripts/2352-parseuri-license/code/parseuri%20license.js?version=6261
- // ==/UserScript==
- // Source: http://stackoverflow.com/a/4673436/2405722
- String.prototype.format = function() {
- var args = arguments;
- return this.replace(/\{(\d+)\}/g, function(match, number) {
- return args[number] !== undefined ? args[number] : match;
- });
- };
- var mturkOrigins = ["https://work.crowdsource.com/amt/view"];
- var googlePrefix="https://www.google.com/search?tbm=isch&q=site:";
- var numTasks = 0;
- function isMturkOrigin(url) {
- for (var i = 0; i < mturkOrigins.length; ++i) {
- if (url.indexOf(mturkOrigins[i]) === 0) {
- return true;
- }
- }
- return false;
- }
- function sleep(ms) {
- var start = new Date().getTime(), expire = start + ms;
- while (new Date().getTime() < expire) { }
- return;
- }
- if (isMturkOrigin(location.href)) {
- $('label[for^=Url]').each(
- function() {
- numTasks++;
- $(this).append(
- $("<button></button>", {
- type: "button",
- text: "Search "+numTasks
- }).click(function() {
- var $task = $(this).parent().parent().prev().prev().prev().prev();
- var taskNumber = parseInt($(this).text().replace('Search ',''));
- $task.addClass("task-" + taskNumber);
- var textRepText = $task.text();
- var pageCheck = 1;
- var pageText = $(this).parent().parent().prev().text();
- if (pageText.indexOf("View Image.") > -1) {
- pageCheck = 0;
- }
- //console.log(pageText);
- var prefixKeyword = 'Keyword:';
- var prefixSite = 'URL:';
- var keywords = $.trim(textRepText.replace(prefixKeyword,'').replace(prefixSite,''));
- var keywordsEncoded = encodeURIComponent(keywords).replace(/%0A/g, '');
- //console.log(keywords);
- sleep(500); //added in rate limiting because issues. Should be virtually un-noticeable.
- window.open("https://www.google.co.uk/search?tbm=isch&q=site:{0}&magicword={1}&task={2}&isPage={3}".format(keywordsEncoded, "oogieboogie", taskNumber, pageCheck));
- //console.log("https://www.google.com/search?tbm=isch&q=site:{0}&magicword={1}&task={2}".format(keywordsEncoded, "oogieboogie", taskNumber));
- }));
- });
- console.log(numTasks+" tasks");
- window.addEventListener("message", function(e) {
- if (e.data.magicword === "oogieboogie") {
- console.log("Message Received");
- console.log(e.data);
- $("textarea#Url-{0}".format(e.data.task)).val(e.data.url);
- } else{
- console.log("MSG "+e.data);
- }
- }, false);
- } else if (window.opener != null && window.location.href.indexOf("oogieboogie") > -1) {
- window.opener.postMessage("Child Frame Loaded", "*");
- $('#rg_s div.rg_di a').each(function() {
- var taskNumber = parseUri(location.href).queryKey.task;
- var tHref = $(this).attr('href');
- var dHref = decodeURIComponent(tHref);
- // *** GET IMAGE DIRECT URL ***
- var refRegex = new RegExp("[\\?&]imgurl=([^&#]*)");
- // *** GET PAGE URL IF TASK CALLS FOR IT ***
- if (parseUri(location.href).queryKey.isPage == 1) {
- refRegex = new RegExp("[\\?&]imgrefurl=([^&#]*)");
- }
- var pageUrl = refRegex.exec(dHref)[1];
- $(this).click(function() {
- window.opener.postMessage({magicword: "oogieboogie", task: taskNumber, url: pageUrl}, "*");
- //console.log({magicword: "oogieboogie", task: taskNumber, url: pageUrl});
- //sleep(100);
- window.close();
- });
- });
- }