MTurk 13D Data Extraction

Make it easier to copy/paste data for 13D Data Extraction HITs

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name        MTurk 13D Data Extraction
// @description Make it easier to copy/paste data for 13D Data Extraction HITs
// @namespace   http://idlewords.net
// @include     https://www.mturkcontent.com/dynamic/hit*
// @include     https://www.sec.gov/Archives/*
// @version     0.10
// @require     https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js
// @grant		GM_setClipboard
// ==/UserScript==

var datetime = 1; // CHANGE THIS TO 0 (zero) FOR DD/MM/YYYY FORMAT

if ($("#PageTitle:contains('Filing Detail')").length) {
	var accept_date = $("div.formContent").eq(0).children("div.formGrouping").eq(0).children("div.info").eq(1);
	var split_date = accept_date.text().split(" ");
	var acc_date = split_date[0].split("-");
	if (acc_date[0].length == 1) {
		acc_date[0] = '0' + acc_date[0];
	}
	if (datetime == 1) {
		new_date = acc_date[1] + '/' + acc_date[2] + '/' + acc_date[0];
	} else {
		new_date = acc_date[2] + '/' + acc_date[1] + '/' + acc_date[0];
	}
	accept_date.text('');
	accept_date.wrapInner("<input type='text' style='width: 400px; border: none; font-size: 16px;' id='datetime'></input>");
	$("#datetime").val(new_date + ' ' + split_date[1]).mouseover(function() {
		//$(this).select();
		GM_setClipboard(new_date + ' ' + split_date[1]);
		$(this).css('color', 'green').css('font-weight', 'bold').val($(this).val() + ' - COPIED');
	});
	console.log(link.length);
} else if ($("li:contains('You will be provided')").length) {
	$("#acceptance_date").blur(function() {
		if ($(this).val() !== '' && $("#acceptance_time").val() === '') {
			var date_time = $(this).val().split(" ");
			$("#acceptance_time").val(date_time[1]);
			$("#acceptance_time").attr('readonly', 'readonly');
			$("#acceptance_date").val(date_time[0]);
			$("#acceptance_date").attr('readonly', 'readonly');
		}
	});
	$("a[href~='sec.gov']").attr('target', 'stock');
	var link = $("a:contains('Archives')").attr('href');
	window.parent.postMessage("secpage!!!!!" + link, "https://www.mturk.com");
} else if ($(":contains('Class of Securities)')").length) {
	cusipHead = $("font, b, p, td, div").filter(":contains('(CUSIP') :contains('Number)')").first();

	var cusipNumParent = null;
	function getCusipPrev() {
		var prevTDs = 0;
		if (cusipHead.prev().length) {
			if (cusipHead.prev("td").length) {
				prevTDs = cusipHead.prevAll("td").length;
				cusipNumParent = cusipHead.parent().prev();
			} else {
				cusipNumParent = cusipHead.prev();
			}
		} else if (cusipHead.parent().prev().length) {
			if (cusipHead.parent().prev("td").length) {
				prevTDs = cusipHead.parent().prevAll("td").length;
				cusipNumParent = cusipHead.parent().parent().prev();
			} else {
				cusipNumParent = cusipHead.parent().prev();
			}
		} else if (cusipHead.parent().parent().prev().length) {
			if (cusipHead.parent().parent().prev("td").length) {
				prevTDs = cusipHead.parent().parent().prevAll("td").length;
				cusipNumParent = cusipHead.parent().parent().parent().prev();
			} else {
				cusipNumParent = cusipHead.parent().prev();
			}
		}
		return prevTDs;
	}

	prevTDs = getCusipPrev();
	if (cusipNumParent.prop("tagName") == "HR" || cusipNumParent.find("hr").length) {
		cusipHead = cusipNumParent;
		cusipNumParent = null;
		prevTDs = getCusipPrev();
	}

	if (cusipNumParent !== null) {
		var cusipNum = null;
		if (cusipNumParent.children().eq(prevTDs).children().first().children().first().length) {
			cusipNum = cusipNumParent.children().eq(prevTDs).children().first().children().first();
		}
		if (cusipNumParent.children().eq(prevTDs).children().first().length) {
			// number is buried 2 deep
			cusipNum = cusipNumParent.children().eq(prevTDs).children().first();
		} else if (cusipNumParent.children().eq(prevTDs).length) {
			// number should only be 1 deep
			cusipNum = cusipNumParent.children().eq(prevTDs);
		} else {
			// number is text within parent
			cusipNum = cusipNumParent;
		}

		if (cusipNum !== null) {
			cusipNum.attr('id', 'cusipNumField');
			cusipText = cusipNum.text();
			cusipNum.text('');
			cusipNum.append("<input type='text' style='width: 400px; border: none; font-size: 16px;' id='cusipNum' />")
			$("#cusipNum").val(cusipText).mouseover(function() {
				if ($(this).val().substr(-6) === 'COPIED') {
					$(this).val($(this).val().replace(' - COPIED', ''));
				}
				GM_setClipboard($(this).val());
				$(this).css('color', 'green').css('font-weight', 'bold').val($(this).val() + ' - COPIED');
			});
		}
	}
}