您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds panda and once links to HIT exports
- // ==UserScript==
- // @name HIT Export Mod for HIT Catcher
- // @namespace https://gist.github.com/Kadauchi
- // @version 1.0.4
- // @description Adds panda and once links to HIT exports
- // @author Kadauchi
- // @icon http://i.imgur.com/oGRQwPN.png
- // @include https://turkerhub.com/threads/*
- // @include http://www.mturkcrowd.com/threads/*
- // ==/UserScript==
- const extId = `iglbakfobmoijpbigmlfklckogbefnlf`;
- function addButtons (elem) {
- const key = elem.querySelector(`a[href^="https://www.mturk.com/mturk/preview?groupId="]`).getAttribute(`href`).match(/roupId=(.*)/)[1];
- elem.insertAdjacentHTML(
- `afterbegin`,
- `<div>
- <button data-key="${key}" type="button" class="button primary HIT-Catcher-Panda">Panda</button>
- <button data-key="${key}" type="button" class="button primary HIT-Catcher-Once">Once</button>
- </div>`
- );
- }
- function sendToHC (once, hitSetId) {
- chrome.runtime.sendMessage(extId, {
- type: `hitCatcherAddWatcher`,
- message: {
- nickname: null,
- once: once,
- sound: true,
- requesterName: null,
- requesterId: null,
- title: null,
- hitSetId: hitSetId,
- reward: null,
- assignmentDuration: null,
- hitRequirements: null,
- hitAutoAppDelay: null
- }
- });
- }
- function nom (elem) {
- if (document.URL.match(`turkerhub`)) {
- const post = elem.closest(`li[id^="post-"]`);
- const postId = post.id.match(/[0-9]+/)[0];
- const quoted = elem.closest(`.quoteContainer`);
- const xfToken = document.querySelector(`input[name=_xfToken]`).value;
- if (quoted) {
- const post = quoted.previousElementSibling.querySelector(`.AttributionLink`).getAttribute(`href`).match(/[0-9]+/)[0];
- $.post(`https://turkerhub.com/posts/${post}/rate`, {rating: `15`, _xfToken: xfToken});
- }
- else {
- $.post(`https://turkerhub.com/posts/${postId}/rate`, {rating: `15`, _xfToken: xfToken});
- }
- }
- }
- for (let elem of document.getElementsByClassName(`ctaBbcodeTable`)) {
- if (elem.querySelector(`a[href^="https://www.mturk.com/mturk/preview?groupId="]`)) addButtons(elem);
- }
- const observer = new MutationObserver(function (mutations) {
- mutations.forEach(function (mutation) {
- for (let i = 0; i < mutation.addedNodes.length; i++) {
- const added = mutation.addedNodes[i];
- for (let elem of added.getElementsByClassName(`ctaBbcodeTable`)) {
- if (elem.querySelector(`a[href^="https://www.mturk.com/mturk/preview?groupId="]`)) addButtons(elem);
- }
- }
- });
- });
- observer.observe(document.getElementById(`messageList`), {childList: true});
- document.addEventListener(`click`, function (event) {
- const elem = event.target;
- if (elem.matches(`.HIT-Catcher-Panda`)) {
- sendToHC(false, elem.dataset.key);
- nom(elem);
- }
- if (elem.matches(`.HIT-Catcher-Once`)) {
- sendToHC(true, elem.dataset.key);
- nom(elem);
- }
- });