福利吧论坛好孩子看得见

好孩子才看得见,顺便签个到

As of 2019-05-31. See the latest version.

// ==UserScript==
// @name         福利吧论坛好孩子看得见
// @namespace    https://greasyfork.org/zh-CN/users/193133-pana
// @version      1.4.1
// @description  好孩子才看得见,顺便签个到
// @author       pana
// @include      http*://www.wnflb19.com/*
// @include      http*://www.wnflb66.com/*
// @require      https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js
// ==/UserScript==

(function() {
	'use strict';
	const urlReg = /^https?:\/\/[\w\-.,@?^=%;:/~+#]*/;
	const baidupanReg = /^https?:\/\/pan\.baidu\.com\/s(hare)?\/./i;
	const codeReg = /^[^A-Za-z0-9]*([A-Za-z0-9]{4})[^A-Za-z0-9]*$/;
	const prefixLink = {
		magnet: /^https?:\/\/www\.wnflb[\d]{2}\.com\/magnet:\?xt=.*$/i,
		magnetSwitch: /^https?:\/\/www\.wnflb[\d]{2}\.com\//i,
	};
	const screenLink = {
		pojie: /^https?:\/\/www\.52pojie\.cn\/?$/i,
		pojieForum: /^https?:\/\/www\.52pojie\.cn\/forum\.php\?'/i,
		pojieHtml: /^https?:\/\/www\.52pojie\.cn\/forum-[\d]+-[\d]+\.html$/i,
		fuliba: /^https?:\/\/www\.wnflb[\d]{2}\.com\/?$/i,
		fulibaForum: /^https?:\/\/www\.wnflb[\d]{2}\.com\/(home|forum)\.php\?/i,
		daybox: /^https?:\/\/www\.daybox\.net\/image\//i,
		imdb: /^https?:\/\/www\.imdb\.com\/title\//i,
		douban: /https?:\/\/movie\.douban\.com\/subject\//i,
	};

	function creatLink(linkHref) {
		let tempLink = '<p><a style="font-size: 15px; color: blue;" target="_blank" href="' + linkHref + '">' + linkHref + '</a></p>';
		return tempLink
	}
	function managePrefix(inputLink) {
		return prefixLink.magnet.test(inputLink) ? inputLink.replace(prefixLink.magnetSwitch, '') : inputLink
	}
	function manageText(textArray) {
		let tempArray = [];
		$.each(textArray, function(index, item) {
			if (urlReg.test(item)) {
				tempArray.push(item)
			}
		});
		return managePrefix(tempArray)
	}
	function baidupanAuto(linkArray, textArray) {
		let countA = 0;
		let countB = 0;
		let indexA = -1;
		let indexB = -1;
		for (let i = 0; i < linkArray.length; i++) {
			if (baidupanReg.test(linkArray[i])) {
				countA++;
				indexA = i;
				if (countA > 1) {
					break
				}
			}
		}
		for (let i = 0; i < textArray.length; i++) {
			if (codeReg.test(textArray[i])) {
				countB++;
				indexB = i;
				if (countB > 1) {
					break
				}
			}
		}
		if ((countA === 1) && (countB === 1)) {
			linkArray[indexA] = linkArray[indexA] + '#' + codeReg.exec(textArray[indexB])[1]
		}
		return managePrefix(linkArray)
	}
	function addGoodBoy(container, linkArray, textArray) {
		let goodBoyBtn = '<div class="goodBoy"><p style="font-size: 15px; color: red">好孩子看得见:</p></div>';
		container.after(goodBoyBtn);
		let goodBoy = $('div.goodBoy');
		linkArray = baidupanAuto(linkArray, textArray);
		textArray = manageText(textArray);
		let concatArray = manageRepeatArray(linkArray.concat(textArray));
		if ((concatArray.length) === 0) {
			$('div.goodBoy p').append('无')
		} else {
			$.each(concatArray, function(index, item) {
				goodBoy.append(creatLink(item))
			})
		}
	}
	function hideLink(inputLink) {
		let status = true;
		$.each(screenLink, function(index, item) {
			if (item.test(inputLink)) {
				status = false;
				return false
			}
		});
		return status
	}
	function manageRepeatArray(inputLinkArray) {
		let outputLinkArray = [];
		for (let i = 0, l = inputLinkArray.length; i < l; i++) {
			for (let j = i + 1; j < l; j++) {
				if (inputLinkArray[i] === inputLinkArray[j]) {
					++i;
					j = i
				}
			}
			outputLinkArray.push(inputLinkArray[i])
		}
		return outputLinkArray
	}
	function findLink(container) {
		let link = container.find('a').not($('div.aimg_tip a')).not($('a:has(img.zoom)'));
		let tempArray = [];
		for (let i = 0; i < link.length; i++) {
			let imgTemp = link.eq(i).find('img');
			if (imgTemp.length !== 0) {
				if (imgTemp.attr('src') !== link.eq(i).attr('href')) {
					tempArray.push(link.eq(i).attr('href'))
				}
			} else if ((link.eq(i).text() !== link.eq(i).attr('href')) && (hideLink(link.eq(i).attr('href')))) {
				tempArray.push(link.eq(i).attr('href'))
			}
		}
		return manageRepeatArray(tempArray)
	}
	function displayText(container, oldTextColor, newTextColor) {
		let text = container.find('font');
		let tempArray = [];
		for (let i = 0; i < text.length; i++) {
			if (text.eq(i).css('color') === oldTextColor) {
				text.eq(i).css('color', newTextColor);
				tempArray.push(text.eq(i).text())
			}
		}
		return manageRepeatArray(tempArray)
	}
	function init() {
		let old_url = location.href;
		if ((old_url.indexOf('page=') === -1) || (old_url.indexOf('page=1') !== -1)) {
			let mainBtn = $('div.cm').eq(0);
			let tdBtn = $('td.t_f').eq(0);
			let textBtn = $('td.t_f:first');
			addGoodBoy(mainBtn, findLink(tdBtn), displayText(textBtn, 'rgb(255, 255, 255)', 'red'))
		}
		let checkBtn = $('a#fx_checkin_topb');
		if (checkBtn.attr('initialized') !== 'true') {
			checkBtn.click()
		}
	}
	init()
})();