Greasy Fork

Greasy Fork is available in English.

Pocket

Count all the links, open on middle click

目前为 2017-04-21 提交的版本。查看 最新版本

// ==UserScript==
// @name         Pocket
// @version      0.2.4
// @description  Count all the links, open on middle click
// @author       Cáno
// @match        https://getpocket.com/a/queue/list/*
// @grant        unsafeWindow, chrome, notifications
// @require      http://code.jquery.com/jquery-latest.js
// @namespace http://tampermonkey.net/
// ==/UserScript==

(function() {
	'use strict';

	unsafeWindow.openLinks = function() {
		var els = $('.original_url');

		Array.prototype.forEach.call(els, function(el) {
			if ($(el).parent().parent().parent().parent('.item:not(.removed)').length === 0) {
				return;
			}
			var address = el.href.substr(el.href.indexOf('redirect?url=') + 13);
			address = address.substr(0, address.indexOf('&formCheck='));
			address = decodeURIComponent(address);
			// console.log(address);
			unsafeWindow.open(address,'_blank');
		});
	};

	document.getElementsByClassName("queue_secondarynav_actions")[0].childNodes[1].innerHTML = document.getElementsByClassName("queue_secondarynav_actions")[0].childNodes[1].innerHTML + '<li style="color:#909090; margin-top: 18px; font-size: 16px; cursor: pointer; font-weight: bold" onclick="openLinks()">Open all links</li>';

	unsafeWindow.archiveLinks = function() {
		var els = $('li.item:not(.removed) .action_mark');
		console.log(els.length);

		if (els.length > 0) {
			els[0].childNodes[0].click();
			setTimeout(unsafeWindow.archiveLinks, 160);
		}
		// Array.prototype.forEach.call(els, function(el) {
		//     el.childNodes[0].click();
		// });
	};

	var html = document.getElementsByClassName("queue_secondarynav_actions")[0].childNodes[1].innerHTML;

	setInterval( doSomething, 2000 );
	function doSomething() {
		var state = document.readyState;
		if (state == 'interactive') {
		} else if (state == 'complete') {
			var count = $('.original_url').parent().parent().parent().parent('.item:not(.removed)').length;
			document.getElementsByClassName("queue_secondarynav_actions")[0].childNodes[1].innerHTML = html + '<li style="color:#909090; margin-top: 18px; font-size: 16px; cursor: pointer; font-weight: bold" onclick="archiveLinks()">Archive all links (' + count + ')</li>';
		}
	}

	function triggerMouseEvent (node, eventType) {
		var clickEvent = document.createEvent('MouseEvents');
		clickEvent.initEvent (eventType, true, true);
		node.dispatchEvent (clickEvent);
	}

	function archiveOnClick(e) {
		if (e.which != 2) return false;
		// console.log($(e.target).parent().parent().parent().find('ul.buttons li.action_mark a'));
		$(e.target).parent().parent().parent().find('ul.buttons li.action_mark a')[0].click();
	}

	setInterval( doSomething2, 2000 );
	function doSomething2() {
		$('a.original_url').off('mouseup', archiveOnClick);
		$('a.original_url').on('mouseup', archiveOnClick);
	}
})();