Greasy Fork

Greasy Fork is available in English.

斗鱼自动发弹幕、领取观看鱼丸,清爽模式

自动发弹幕,参与弹幕抽奖。开启清爽模式,隐藏无关元素。自动领取观看鱼丸(不是鱼秀鱼丸)。

当前为 2019-03-30 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name			斗鱼自动发弹幕、领取观看鱼丸,清爽模式
// @namespace		http://tampermonkey.net/
// @version			0.6.0
// @icon			http://www.douyutv.com/favicon.ico
// @description		自动发弹幕,参与弹幕抽奖。开启清爽模式,隐藏无关元素。自动领取观看鱼丸(不是鱼秀鱼丸)。
// @author			H2P
// @require			https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js
// @match			*://*.douyu.com/0*
// @match			*://*.douyu.com/1*
// @match			*://*.douyu.com/2*
// @match			*://*.douyu.com/3*
// @match			*://*.douyu.com/4*
// @match			*://*.douyu.com/5*
// @match			*://*.douyu.com/6*
// @match			*://*.douyu.com/7*
// @match			*://*.douyu.com/8*
// @match			*://*.douyu.com/9*
// @match			*://*.douyu.com/topic/*
// @note			2019.3.18-V0.2.0 循环弹幕可以设置多条,随机发送;新增弹幕倒计时;界面美化一下?抽奖弹幕新增一种查询类型
// @note			2019.3.18-V0.3.0 界面修改;界面可隐藏;可以设置是否发送默认弹幕
// @note			2019.3.18-V0.3.1 小 BUG 修复
// @note			2019.3.19-V0.4.0 用 JQuery 改写,还没改完;更新了弹幕抽奖元素获取(因为斗鱼改了);增加设置抽奖弹幕次数;发送弹幕时可以修改循环弹幕
// @note			2019.3.23-V0.4.1 完善了一下代码;完善了界面;修改了字体
// @note			2019.3.23-V0.5.0 添加了斗鱼清爽模式:隐藏部分、隐藏全部、删除元素
// @note			2019.3.23-V0.5.1 修缮清爽模式;添加自动领取观看鱼丸(不是鱼秀鱼丸)
// @note			2019.3.24-V0.5.2 修缮自动领取观看鱼丸;修缮隐藏全部元素的返回按钮
// @note			2019.3.24-V0.5.3 修改介绍。。。
// @note			2019.3.24-V0.5.4 修缮自动领取观看鱼丸,如果无法领取则清除循环
// @note			2019.3.24-V0.5.5 解决 jQuery $ 冲突;清爽模式处理粉丝节
// @note			2019.3.24-V0.6.0 添加“功能自动化”设置面板
// @grant			none
// ==/UserScript==

(function() {
	'use strict';

	var $h2p_j = jQuery.noConflict();
	var h2p_DYScript_version = '0.6.0';

	var interval_autoSendBarrage = undefined;		// 自动发弹幕
	var interval_countDownOfBarrage = undefined;	// 弹幕倒计时

	var bool_barrageReady = false;			// 自动弹幕模块是否装载完毕
	var bool_clearReady = false;			// 自动清理模块是否装载完毕
	var bool_settingReady = false;			// 斗鱼设置模块是否装载完毕

	var interval = 0;					// 弹幕发送间隔时间
	var interval_default = 5;			// 弹幕发送默认间隔时间
	var luckDrawCountDown = 0;			// 弹幕抽奖活动倒计时
	var barrageCountDown = 0;			// 弹幕倒计时
	var barrageLuckDraw = '';			// 抽奖弹幕内容
	var count_luckDraw = 0;				// 抽奖弹幕实际发送次数
	var count_luckDrawTotal = 0;		// 抽奖弹幕总共发送次数
	var count_luckDrawDefault = 5;		// 抽奖弹幕默认发送次数

	var color_input_on = 'white';
	var color_input_off = '#DCDCDC';
	var color_font_green = '#228B22';
	var fontSize_input = '13px';
	// 设置弹幕面板字体
	var fontFamily = 'WeibeiSC-Bold, STKaiti';

	// 元素样式  ===============================================================
	var style_div_layer = {
		'position'		: 'relative',
		'width'			: '100%',
		'height'		: '24px',
	};

	var style_div_half = {
		'position' 		: 'absolute',
		'width' 		: '50%',
		'height' 		: '24px',
	};

	var style_input_checkBok_left = {
		'position'		: 'absolute',
		'top'			: '0',
		'bottom'		: '0',
		'left'			: '0',
		'margin'		: 'auto',
	};

	var style_input = {
		'position'		: 'absolute',
		'height'		: '22px',
		'padding'		: '0px 5px',
		'border'		: '1px solid #708090',
		'border-radius'	: '5px',
		'font-size'		: fontSize_input,
	}

	var style_label_checkBok_left = {
		'margin'		: '0 0 0 20px',
	};

	var style_btn = {
		'width'			: '100%',
		'height'		: '100%',
		'padding'		: '4px 0',
		'border'		: 'none',
		'border-radius'	: '5px',
		'margin'		: '0',
		'font-size'		: fontSize_input,
		'background'	: '#00ddbb',
		'cursor'		: 'pointer',
	};

	// 初始化界面  ===============================================================
	var initView_barrage = function(){
		var div_sendBarrage = document.createElement('div');
		$h2p_j(div_sendBarrage).attr('id', 'div-sendBarrage');
		$h2p_j(div_sendBarrage).css({
			'position' 		: 'absolute',
			'bottom' 		: '1px',
			'min-width' 	: '315px',
			'max-width' 	: '315px',
			'padding' 		: '10px',
			'border' 		: '1px solid #DCDCDC',
			'border-radius'	: '2px',
			'margin' 		: '0 0 0 -1px',
			'box-shadow'	: '#A9A9A9 5px 0 10px 0',
			'font-family'	: fontFamily,
			'font-size'		: '16px',
			'background'	: '#f5f5f5',
			'display'		: 'none',
			'z-index' 		: '998',
		});


		// 发送弹幕的速度  ===============================================================
		var div_speed_countDown = document.createElement('div');
		$h2p_j(div_speed_countDown).css(style_div_layer);

		var div_speed = document.createElement('div');
		$h2p_j(div_speed).css(style_div_half);

		var label_speed = document.createElement('label');
		$h2p_j(label_speed).text('间隔:');
		$h2p_j(div_speed).append(label_speed);

		var input_speed = document.createElement('input');
		$h2p_j(input_speed).attr('id', 'input-sendBarrage-speed');
		$h2p_j(input_speed).css(style_input);
		$h2p_j(input_speed).css('width', '56px');
		$h2p_j(input_speed).attr('placeholder', '默认 5');
		input_speed.onblur = input_speed.onkeyup = function(){
			var value = this.value;
			value = value.replace(/[^\d]/g,'');
			while( value.length > 0 && value[0] == '0' ){
				value = value.substr(1, value.length);
			}
		    if( value.length > 3 ){
	            value = value.substr(0, 3);
            }
            this.value = value;
		}
		$h2p_j(div_speed).append(input_speed);

		var label_unit = document.createElement('label');
		$h2p_j(label_unit).css({
			'position'		: 'absolute',
			'left'			: '120px',
		});
		$h2p_j(label_unit).text('秒');
		$h2p_j(div_speed).append(label_unit);

		$h2p_j(div_speed_countDown).append(div_speed);

		// 发送弹幕倒计时
		var div_countDown = document.createElement('div');
		$h2p_j(div_countDown).css(style_div_half);
		$h2p_j(div_countDown).css('left', '50%');

		var label_countDown = document.createElement('label');
		$h2p_j(label_countDown).css('color', color_font_green);
		$h2p_j(label_countDown).text('弹幕倒计:');
		$h2p_j(div_countDown).append(label_countDown);

		var input_numOfCountDown = document.createElement('input');
		$h2p_j(input_numOfCountDown).attr('id', 'input-countDown');
		$h2p_j(input_numOfCountDown).css(style_input);
		$h2p_j(input_numOfCountDown).css({
			'width'				: '65px',
			'background'	: color_input_off,
		});
		$h2p_j(input_numOfCountDown).attr('disabled', true);
		$h2p_j(div_countDown).append(input_numOfCountDown);

		$h2p_j(div_speed_countDown).append(div_countDown);


		// 是否发送默认弹幕  ===============================================================
		var div_defaultBarrage = document.createElement('div');
		$h2p_j(div_defaultBarrage).css(style_div_layer);
		$h2p_j(div_defaultBarrage).css('height', '22px');

		var input_defaultBarrage = $h2p_j('<input type="checkbox" value="">');
		$h2p_j(input_defaultBarrage).attr('id', 'input-isDefaultBarrage');
		$h2p_j(input_defaultBarrage).css(style_input_checkBok_left);
		$h2p_j(div_defaultBarrage).append(input_defaultBarrage);

		var label_defaultBarrage = document.createElement('label');
		$h2p_j(label_defaultBarrage).css(style_label_checkBok_left);
		$h2p_j(label_defaultBarrage).text('发送默认弹幕');
		$h2p_j(div_defaultBarrage).append(label_defaultBarrage);

		// 是否发送循环弹幕  ===============================================================
		var div_barrage = document.createElement('div');
		$h2p_j(div_barrage).css(style_div_layer);
		$h2p_j(div_barrage).css('height', '98px');

		var input_isLoopBarrage = $h2p_j('<input name="barrageLoop" type="checkbox" value="">');
		$h2p_j(input_isLoopBarrage).attr('id', 'input-isLoopBarrage');
		$h2p_j(input_isLoopBarrage).css(style_input_checkBok_left);
		$h2p_j(div_barrage).append(input_isLoopBarrage);

		var input_barrage = document.createElement('textarea');
		$h2p_j(input_barrage).attr('id', 'input-sendBarrage-content');
		$h2p_j(input_barrage).css({
			'width'			: '287px',
			'height'		: '90px',
			'padding'		: '3px',
			'border'		: '1px solid #708090',
			'border-radius'	: '5px',
			'margin'		: '0 0 0 20px',
			'font-size'		: fontSize_input,
			'resize'		: 'none',
		});
		input_barrage.placeholder = '循环弹幕';
		$h2p_j(div_barrage).append(input_barrage);


		// 是否参加弹幕抽奖  ===============================================================
		var div_luckDrawBarrage = document.createElement('div');
		$h2p_j(div_luckDrawBarrage).css(style_div_layer);

		var div_isLuckDrawBarrage = document.createElement('div');
		$h2p_j(div_isLuckDrawBarrage).css(style_div_half);

		var input_luckDrawBarrage = $h2p_j('<input name="luckDraw" type="checkbox" value="">');
		$h2p_j(input_luckDrawBarrage).attr('id', 'input-isLuckDrawBarrage');
		$h2p_j(input_luckDrawBarrage).css(style_input_checkBok_left);
		$h2p_j(div_isLuckDrawBarrage).append(input_luckDrawBarrage);

		var label_luckDrawBarrage = document.createElement('label');
		$h2p_j(label_luckDrawBarrage).css(style_label_checkBok_left);
		$h2p_j(label_luckDrawBarrage).text('参与抽奖弹幕');
		$h2p_j(div_isLuckDrawBarrage).append(label_luckDrawBarrage);

		$h2p_j(div_luckDrawBarrage).append(div_isLuckDrawBarrage);

		// 抽奖弹幕发送次数
		var div_luckDrawBarrageCount = document.createElement('div');
		$h2p_j(div_luckDrawBarrageCount).css(style_div_half);
		$h2p_j(div_luckDrawBarrageCount).css('left', '50%');

		var label_luckDrawBarrageCount = document.createElement('label');
		$h2p_j(label_luckDrawBarrageCount).css('color', color_font_green);
		$h2p_j(label_luckDrawBarrageCount).text('抽奖发送:');
		$h2p_j(div_luckDrawBarrageCount).append(label_luckDrawBarrageCount);

		var input_luckDrawBarrageCount = document.createElement('input');
		$h2p_j(input_luckDrawBarrageCount).attr('id', 'input-luckDrawCount');
		$h2p_j(input_luckDrawBarrageCount).css(style_input);
		$h2p_j(input_luckDrawBarrageCount).css('width', '65px');
		$h2p_j(input_luckDrawBarrageCount).attr('placeholder', '默认 5 次');
		input_luckDrawBarrageCount.onblur = input_luckDrawBarrageCount.onkeyup = function(){
			var value = this.value;
			value = value.replace(/[^\d]/g,'');
			while( value.length > 0 && value[0] == '0' ){
				value = value.substr(1, value.length);
			}
		    if( value.length > 2 ){
	            value = value.substr(0, 2);
            }
            this.value = value;
		}
		$h2p_j(div_luckDrawBarrageCount).append(input_luckDrawBarrageCount);

		$h2p_j(div_luckDrawBarrage).append(div_luckDrawBarrageCount);

		// 弹幕发送按钮  ===============================================================
		var div_sendBtn = document.createElement('div');
		$h2p_j(div_sendBtn).css(style_div_layer);

		var btn_send = document.createElement('button');
		$h2p_j(btn_send).attr('id', 'btn-send');
		$h2p_j(btn_send).text('发送');
		$h2p_j(btn_send).css({
			'width'			: '100%',
			'height'		: '100%',
			'padding'		: '4px 0',
			'border'		: 'none',
			'border-radius'	: '5px',
			'margin'		: '0',
			'font-size'		: fontSize_input,
			'background'	: '#00ddbb',
			'cursor'		: 'pointer',
		});
		btn_send.onclick = function(){
			clearInterval_barrageCountDown();
	        if( interval_autoSendBarrage == undefined ){
	            setInterval_autoSendBarrage();
				setInterval_barrageCountDown();
		    }
		    else {
	            clearInterval_autoSendBarrage();
		    }
		}
		btn_send.onmouseover = function(){
			this.style.background = '#00d1b2';
		}
		btn_send.onmouseout = function(){
			this.style.background = '#00ddbb';
		}
		$h2p_j(div_sendBtn).append(btn_send);


		// 分隔线  ===============================================================
		var hr_style = '<hr style="margin: 3px; border: 1px solid transparent;">';


		// 添加所有元素  ===============================================================
		$h2p_j(div_sendBarrage).append(div_speed_countDown);
		$h2p_j(div_sendBarrage).append($h2p_j(hr_style));
		$h2p_j(div_sendBarrage).append(div_defaultBarrage);
		$h2p_j(div_sendBarrage).append($h2p_j(hr_style));
		$h2p_j(div_sendBarrage).append(div_barrage);
		$h2p_j(div_sendBarrage).append($h2p_j(hr_style));
		$h2p_j(div_sendBarrage).append(div_luckDrawBarrage);
		$h2p_j(div_sendBarrage).append($h2p_j(hr_style));
		$h2p_j(div_sendBarrage).append(div_sendBtn);


		// 检查弹幕面板挂载点(斗鱼弹幕显示区域)是否加载完成
		var check_mountPoint_barragePanel = setInterval( function(){
			if( $h2p_j('div.layout-Player-asideMainTop')[0] ){
				setTimeout( function(){
					$h2p_j('div.layout-Player-asideMainTop')[0].append(div_sendBarrage);
				}, 3000);
				window.clearInterval( check_mountPoint_barragePanel );
			}
		}, 1000);


		// 检查弹幕图标挂载点(斗鱼弹幕输入框)是否加载完成
		var check_mountPoint_barrageIcon = setInterval( function(){
			if( document.getElementById('div-sendBarrage') && document.getElementsByClassName('ChatToolBar')[0] ){
				var div_sign = document.createElement('div');
				$h2p_j(div_sign).css({
					'width'		: '18px',
					'height'	: '18px',
					'margin'	: '-8px 0 0 -5px',
					'display'	: 'inline-block',
					'vertical-align' : 'middle',
				});
				$h2p_j(div_sign).css('title', '斗鱼自动发弹幕');

				var btn_sign = document.createElement('span');
				$h2p_j(btn_sign).attr('id', 'button-sign');
				$h2p_j(btn_sign).css({
					'font-size'	: '18px',
					'cursor'	: 'pointer',
				});
				$h2p_j(btn_sign).text('📢');
				btn_sign.onclick = function(){
					$h2p_j('div#div-sendBarrage').toggle();
					$h2p_j('div#div-DYLight').hide();
					$h2p_j('div#div-setting').hide();
				};

				$h2p_j(div_sign).append(btn_sign);

				$h2p_j('div.ChatToolBar')[0].append(div_sign);
				window.clearInterval( check_mountPoint_barrageIcon );

				bool_barrageReady = true;
			}
		}, 1000);
	}

	function sendBarrage(){

		var barrage = '';
		var isLuckDrawBarrage = 0;

		// 优先抽奖弹幕
		if( document.getElementById('input-isLuckDrawBarrage') && document.getElementById('input-isLuckDrawBarrage').checked ){
			var temp1 = document.getElementsByClassName('UPlayerLotteryEnter-deadsec')[0];
			if( temp1 ){
				// 计算目前倒计时
				var minute = parseInt( temp1.textContent.split(':')[0] );
				var second = parseInt( temp1.textContent.split(':')[1] );
				var nowLuckDrawCountDown = minute * 60 + second;

				// 判断是否是新一轮抽奖
				if( nowLuckDrawCountDown > luckDrawCountDown ){
					// 新一轮抽奖弹幕
					count_luckDraw = 0;
					// 显示抽奖内容
					temp1.click();

					// 获取抽奖弹幕内容
					try{
						barrageLuckDraw = document.getElementsByClassName('ULotteryStart-danmuDesc UserLottery-ellipse is-coping')[0].textContent;
						barrageLuckDraw = barrageLuckDraw.split(':')[1];
					}catch(err){
						console.log('不是弹幕抽奖');
					}finally{
						$h2p_j('span.LotteryContainer-close').click();
					}
				}

				barrage = count_luckDraw < count_luckDrawTotal ? barrageLuckDraw : '';
				if( barrage != undefined && barrage.length > 0 ){
					isLuckDrawBarrage = 1;
					count_luckDraw++;
				}
				luckDrawCountDown = nowLuckDrawCountDown;
			}
		}

		// 循环发送自定义弹幕
		if( ( barrage == undefined || barrage.length == 0 ) && document.getElementById('input-isLoopBarrage') && document.getElementById('input-isLoopBarrage').checked ){
			var barrageLoop = new Array();
			barrageLoop = document.getElementById('input-sendBarrage-content').value.split('\n');
			let index = Math.round( Math.random()*barrageLoop.length );
			barrage = barrageLoop[index] ? barrageLoop[index] : barrageLoop[0];
		}

		// 代码内置弹幕
		if( ( barrage == undefined || barrage.length == 0 ) && document.getElementById('input-isDefaultBarrage') && document.getElementById('input-isDefaultBarrage').checked ){
			var praise = [ ',我们一起手牵手走过很多路,我们一起手牵手唱了很多歌,我们也手牵手爱了彼此很久很久。', ',遇见你本身就是一个错误,爱上你便是一错再错,离开你的时候我才明白,这才是错上加错。', '追我追了三条街;谢霆锋昨天看见我后,立即宣布要在9月份退出演艺圈!不为别的,就是因为我长得实在是太帅了!', ',每次你凶我的时候,我都觉得你有病,面对这么帅气的我,你居然还能发脾气。', '一直承受着这个年纪不该有的帅气,好累。', '只恨自己太倔强,明明可以靠脸吃饭,却偏偏要靠才华。', '帅到走在街上开车的人看了都会发生交通事故,汽车追尾;路人看了都有迷倒晕倒~~', '人见人爱,鸟见鸟呆,风靡万千少女,刺激帅哥市场,挽救无数,一支梨花压海棠……', '你是花丛中的蝴蝶,是百合花中的蓓蕾。无论什么衣服穿到你的身上,总是那么端庄好看。', '你也许没有若隐若现的酒窝,但你的微笑一定是月闭花羞,鱼沉雁落。', ',在人流中,我一眼就发现了你。我不敢说你是她们中最漂亮的一个,可是我敢说,你是她们中最出色的一个。','求你不要再打扮了,给其他的女人留点自信吧。', 'skr~skr~skr~', '的美由骨到皮,感天动地,此情可待成追忆', '蹦蹦跳跳地走进来,一件红尼大衣,紧束着腰带,显得那么轻盈,那么矫健,简直就像天边飘来一朵红云。', '一张坏坏的笑脸,连两道浓浓的眉毛也泛起柔柔的涟漪,好像一直都带着笑意,弯弯的,像是夜空里皎洁的上弦月。白皙的皮肤衬托着淡淡桃红色的嘴唇,俊美突出的五官,完美的脸型,特别是左耳闪着炫目光亮的钻石耳钉,给他的阳光帅气中加入了一丝不羁。', '真是个聪明的孩子!', '是花丛中的蝴蝶,是百合花中的蓓蕾。无论什么衣服穿到你的身上,总是那么端庄、好看。', '全身充溢着少女的纯情和青春的风采。留给我印象最深的是你那双湖水般清澈的眸子,以及长长的、一闪一闪的睫毛。像是探询,像是关切,像是问候。', ',只有莲花才能比得上你的圣洁,只有月亮才能比得上你的冰清。', ',我不知道该怎样表达你留在我心中最强最深的印象,是你丰满颀长的身材,白皙的皮肤。乌黑幽深的眼睛,小巧红润的嘴唇,但还有一种说不出,捉不到的丰仪在煽动着我的心。', '表现的很勇敢,是一个真正的男子汉!', '想法很有创意!', '瀑布一般的长发,淡雅的连衣裙,标准的瓜子脸,聪明的杏仁眼,那稳重端庄的气质,再调皮的人见了你都会小心翼翼。', '娉婷婉约的风姿,娇艳俏丽的容貌,妩媚得体的举止,优雅大方的谈吐,一开始就令我刮目相看。', '像一片轻柔的云在我眼前飘来飘去,你清丽秀雅的脸上荡漾着春天般美丽的笑容。', '说话得体,举止大方。不要吝啬赞美!因为你的赞美,对他人是一种鼓励,一种信任。', '思维太活跃了,我根本就跟不上。', '是那样地美,美得象一首抒情诗。', '远近书疏,莫不手答,笔翰如流未尝壅滞。', '双目似有千情万怨,道不尽也诉不完,一句巧笑倩兮,美目盼兮可能描述碧瑶盈盈眼波。', '双眉有如柳叶刀裁,盈盈笑意眉上来,一句云髻峨峨,修眉联娟得以道出碧瑶云云细眉。', '那红嘟嘟地脸蛋闪着光亮,像九月里熟透地苹果一样。', '像那沾满露珠的花瓣,给我带来一室芳香;你像那划过蓝天的鸽哨,给我带来心灵的静远和追求。', '乌灵的眼眸,倏地笼上层嗜血的寒意,仿若魔神降世一般,一双冰眸轻易贯穿人心,刺透心底最柔弱,舞衣的角落。', '眼神优雅、娴静,双眼回盼流波,像是俏丽的江南女子;但又挂着一丝倔犟的波纹,又带着北国女儿的神韵。', '清水出芙蓉,天然去雕饰。', '刹那芳华,犹如指尖流砂。灿烂烟花,终究剪不下。', '不必假装有深度,只要懂得欣赏别人的深度,已经是 一种美德了。', '言谈中可以看出,我今天遇到的都是有修养的人。', '白皙的皮肤衬托着淡淡桃红色的嘴唇,俊美突出的五官,完美的脸型,特别是左耳闪着炫目光亮的钻石耳钉,给他的阳光帅气中加入了一丝不羁。', '真是一位家庭、事业有成的人,非常令人羡慕。', '一席话,胜读十年书,今天与您交谈,我受益匪浅。', '真幽默,话从您口中说出来就是不一样。', '在午后的阳光下,没有丝毫红晕,清秀的脸上只显出了一种病态的苍白,却无时不流露出高贵淡雅的气质,配合他颀长纤细的身材。', '那双圆溜溜的大眼睛,镶了一圈乌黑闪亮的长睫毛,眨动之间,透出一股聪明伶俐劲儿。', '目光深邃,一看您就是一位有思想的人。', '语调独特,言谈话语中充满了感染力。', '别开玩笑了,看您的容貌,肯定不到四十岁。', '立体的五官刀刻般俊美,整个人发出一种威震天下的王者之气,邪恶而俊美的脸上此时噙着一抹放荡不拘的微笑。', '好像是上品的西湖龙井那种淡淡的苦涩是你的成熟越品你越有味道。', '浓密的眉毛叛逆地稍稍向上扬起,长而微卷的睫毛下,有着一双像朝露一样清澈的眼睛,英挺的鼻梁,像玫瑰花瓣一样粉嫩的嘴唇,还有白皙的皮肤。', '可以夸,但没必要。。。', '游戏打的不错', '英俊潇洒', '风流倜傥', '玉树临风', '遇见你之后,再看别的女人,就好象在侮辱自己的眼睛!', '神勇威武', '你笑起来的样子最为动人,两片薄薄的嘴唇在笑,长长的眼睛在笑,腮上两个陷得很举动的酒窝也在笑。', '宇内第一寂寞高手', '满腹经纶!这果然是奥妙!我等佩服!', '天资聪颖,文思敏捷,下笔成章,将来未可限量!', '玉面郎君', '仁者无敌', '那瓜子形的脸,那么白净,弯弯的一双眉毛,那么修长;水汪汪的一对眼睛,那么明亮!', '金刚不坏', '英明神武'];
		    var subject = "主播";
			let index = Math.round( Math.random()*praise.length );
			barrage = subject + praise[index];
		}

		if( barrage != undefined && barrage.length > 0 ){
			if( isLuckDrawBarrage === 1 ){
				$h2p_j('#input-luckDrawCount').val( count_luckDraw + ' / ' + count_luckDrawTotal );
			}
			$h2p_j( $h2p_j('textarea.ChatSend-txt ')[0] ).val(barrage);
			document.getElementsByClassName('ChatSend-button')[0].click();
		}

		if( interval_countDownOfBarrage == undefined ){
			setInterval_barrageCountDown();
		}
	}

	function setInterval_autoSendBarrage(){
		var input_speed = document.getElementById('input-sendBarrage-speed');
		interval = parseInt( input_speed.value ) >= 2 ? parseInt( input_speed.value ) : interval_default;
		$h2p_j(input_speed).attr('disabled', true);
		$h2p_j(input_speed).css({
			'background'	: color_input_off,
			'cursor'		: 'default',
		});

		$h2p_j('button#btn-send').text('停止发送');

		var input_luckDrawBarrageCount = document.getElementById('input-luckDrawCount');
		$h2p_j(input_luckDrawBarrageCount).attr('disabled', true);
		$h2p_j(input_luckDrawBarrageCount).css({
			'background'	: color_input_off,
			'cursor'		: 'default',
		});
		count_luckDraw = 0;
		count_luckDrawTotal = parseInt( $h2p_j('#input-luckDrawCount').val() );
		count_luckDrawTotal = count_luckDrawTotal ? count_luckDrawTotal : count_luckDrawDefault;

		$h2p_j('#button-sign').text('🔥');

		interval_autoSendBarrage = setInterval(sendBarrage, interval * 1000);
	}

	function clearInterval_autoSendBarrage(){
		window.clearInterval(interval_autoSendBarrage);
		interval_autoSendBarrage = undefined;

		var input_speed = document.getElementById('input-sendBarrage-speed');
		$h2p_j(input_speed).attr('disabled', false);
		$h2p_j(input_speed).css({
			'background'	: color_input_on,
			'cursor'		: 'text',
		});

		$h2p_j('button#btn-send').text('发送');

		var input_luckDrawBarrageCount = document.getElementById('input-luckDrawCount');
		$h2p_j(input_luckDrawBarrageCount).attr('disabled', false);
		$h2p_j(input_luckDrawBarrageCount).css({
			'background'	: color_input_on,
			'cursor'		: 'text',
		});

		$h2p_j('#input-luckDrawCount').val(count_luckDrawTotal);

		$h2p_j('#button-sign').text('📢');
	}

	function showBarrageCountDown(){
		if( barrageCountDown <= 0 ){
			barrageCountDown = interval;
		}
		$h2p_j('#input-countDown').val(--barrageCountDown);
	}

	function setInterval_barrageCountDown(){
		barrageCountDown = interval;
		interval_countDownOfBarrage = setInterval(showBarrageCountDown, 1000);
	}

	function clearInterval_barrageCountDown(){
		window.clearInterval(interval_countDownOfBarrage);
		interval_countDownOfBarrage = undefined;
		$h2p_j('#input-countDown').val('');
	}


	// 调用初始化自动发弹幕函数
	initView_barrage();






// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //






	var bool_hide_part = 0;
	var bool_hide_all = 0;

	var initView_clearUp = function(){
		var div_DYLight = document.createElement('div');
		$h2p_j(div_DYLight).attr('id', 'div-DYLight');
		$h2p_j(div_DYLight).css({
			'position' 		: 'absolute',
			'bottom' 		: '1px',
			'min-width' 	: '315px',
			'max-width' 	: '315px',
			'padding' 		: '10px',
			'border' 		: '1px solid #DCDCDC',
			'border-radius'	: '2px',
			'margin' 		: '0 0 0 -1px',
			'box-shadow'	: '#A9A9A9 5px 0 10px 0',
			'font-family'	: fontFamily,
			'font-size'		: '16px',
			'background'	: '#f5f5f5',
			'display'		: 'none',
			'z-index' 		: '999',
		});

		var btn_hide_part = document.createElement('button');
		$h2p_j(btn_hide_part).attr('id', 'btn-hide-part');
		$h2p_j(btn_hide_part).text('隐藏部分元素');
		$h2p_j(btn_hide_part).css(style_btn);
		btn_hide_part.onclick = function(){
			douyu_hide_part();
		}
		btn_hide_part.onmouseover = function(){
			this.style.background = '#00d1b2';
		}
		btn_hide_part.onmouseout = function(){
			this.style.background = '#00ddbb';
		}

		var btn_hide_all = document.createElement('button');
		$h2p_j(btn_hide_all).attr('id', 'btn-hide-all');
		$h2p_j(btn_hide_all).text('隐藏全部元素');
		$h2p_j(btn_hide_all).css(style_btn);
		btn_hide_all.onclick = function(){
			douyu_hide_all();
		}
		btn_hide_all.onmouseover = function(){
			this.style.background = '#00d1b2';
		}
		btn_hide_all.onmouseout = function(){
			this.style.background = '#00ddbb';
		}


		// 分隔线  ===============================================================
		var hr_style = '<hr style="margin: 3px; border: 1px solid transparent;">';


		// 添加所有清爽按钮
		$h2p_j(div_DYLight).append($h2p_j(hr_style));
		$h2p_j(div_DYLight).append($h2p_j(hr_style));
		$h2p_j(div_DYLight).append(btn_hide_part);
		$h2p_j(div_DYLight).append($h2p_j(hr_style));
		$h2p_j(div_DYLight).append($h2p_j(hr_style));
		$h2p_j(div_DYLight).append($h2p_j(hr_style));
		$h2p_j(div_DYLight).append(btn_hide_all);
		$h2p_j(div_DYLight).append($h2p_j(hr_style));
		$h2p_j(div_DYLight).append($h2p_j(hr_style));


		// 隐藏全部返回键
		var btn_hide_all_back = document.createElement('button');
		$h2p_j(btn_hide_all_back).attr('id', 'btn-hide-all-back');
		$h2p_j(btn_hide_all_back).text('退出清爽');
		$h2p_j(btn_hide_all_back).css({
			'position' 		: 'fixed',
			'right'			: '0',
			'bottom'		: '0',
			'width'			: '55px',
			'height'		: '55px',
			'padding'		: '10px',
			'border'		: 'none',
			'font-size'		: fontSize_input,
			'background'	: 'transparent',
			'cursor'		: 'pointer',
			'display'		: 'none',
		});
		$h2p_j(btn_hide_all_back).click(douyu_hide_all);
		$h2p_j(btn_hide_all_back).mouseenter(function(){
			$h2p_j(this).css('background', '#00ddbb');
		});
		$h2p_j(btn_hide_all_back).mouseleave(function(){
			$h2p_j(this).css('background', 'transparent');
		});

		document.body.appendChild(btn_hide_all_back);


		// 检查清爽面板挂载点(斗鱼弹幕显示区域)是否加载完成
		var check_mountPoint_clearPanel = setInterval( function(){
			if( $h2p_j('div.layout-Player-asideMainTop')[0] ){
				setTimeout( function(){
					$h2p_j('div.layout-Player-asideMainTop')[0].append(div_DYLight);
				}, 3000);
				window.clearInterval( check_mountPoint_clearPanel );
			}
		}, 1000);

		var check_mountPoint_clearIcon = setInterval( function(){
			if( document.getElementById('div-DYLight') && document.getElementsByClassName('ChatToolBar')[0] ){
				$h2p_j('div.Horn4Category').hide();
				$h2p_j('div.ChatNobleBarrage').hide();
				$h2p_j('div.BarrageSuperLink').hide();

				var div_clear = document.createElement('div');
				$h2p_j(div_clear).css({
					'width'		: '18px',
					'height'	: '18px',
					'margin'	: '-8px 0 0 8px',
					'display'	: 'inline-block',
					'vertical-align' : 'middle',
				});
				$h2p_j(div_clear).css('title', '斗鱼清爽模式');

				var btn_clear = document.createElement('span');
				$h2p_j(btn_clear).attr('id', 'button-clear');
				$h2p_j(btn_clear).css({
					'font-size'	: '18px',
					'cursor'	: 'pointer',
				});
				$h2p_j(btn_clear).text('✡️');
				btn_clear.onclick = function(){
					$h2p_j('div#div-sendBarrage').hide();
					$h2p_j('div#div-DYLight').toggle();
					$h2p_j('div#div-setting').hide();
				};

				$h2p_j(div_clear).append(btn_clear);

				$h2p_j('div.ChatToolBar')[0].append(div_clear);
				window.clearInterval( check_mountPoint_clearIcon );

				bool_clearReady = true;
			}
		}, 1000);
	}

	// 隐藏部分元素
	var douyu_hide_part = function(){
		if( bool_hide_all === 1 ){
			return;
		}

		// 背景图片
		$h2p_j('#js-background-holder').toggle();

		// 导航栏 ==============================
		// 斗鱼 logo
		$h2p_j('a.Header-logo').toggle();
		// 粉丝节
		$h2p_j('div.HeaderNav').toggle();
		// 客户端
		$h2p_j('div.Header-download-wrap').toggle();
		// 开播
		$h2p_j('div.Header-broadcast-wrap').toggle();
		// 导航栏 ==============================

		// 左侧边栏
		$h2p_j('#js-aside').toggle();

		// 贡献周榜、贵族、粉丝团
		$h2p_j('div.layout-Player-rank').toggle();
		// 公告栏
		$h2p_j('div.layout-Player-announce').toggle();

		// 他的视频
		$h2p_j('div.Title-roomOtherTop').toggle();
		// 友邻
		$h2p_j('div.Title-addFriend').toggle();
		$h2p_j('div.Title-anchorFriend').toggle();
		// 客户端查看
		$h2p_j('.Title-blockInline').toggle();

		// 任务、送礼物栏
		$h2p_j('div#js-player-toolbar').toggle();
		// 竞猜
		$h2p_j('div#js-player-guessgame').toggle();

		// 友邻、竞猜
		$h2p_j('div#js-bottom').toggle();

		if( bool_hide_part == 0 ){
			bool_hide_part = 1;
			$h2p_j('#btn-hide-all').attr('disabled', true);
			$h2p_j('#btn-hide-all').css('cursor', 'default');

			// 放大弹幕栏
			$h2p_j('div#js-player-barrage').css('top', '0');

			$h2p_j('.layout-Main').css('padding', '2px 35px 10px 35px');
			$h2p_j('.layout-Main').css('margin-left', '0');
			// 背景改为黑色
			$h2p_j('.layout-Main').css('background', 'black');

			$h2p_j('#btn-hide-part').text('显示部分元素');

			// 特定元素 ================================================
			document.getElementsByClassName('Act129684 ActBase is-show')[0].classList.remove('is-show');
			// 特定元素 ================================================

			setTimeout(function(){
				if( document.getElementsByClassName('roomSmallPlayerFloatLayout-closeBtn')[0] ){
					document.getElementsByClassName('roomSmallPlayerFloatLayout-closeBtn')[0].click();
				}
			}, 500);
		}
		else {
			bool_hide_part = 0;
			$h2p_j('#btn-hide-all').attr('disabled', false);
			$h2p_j('#btn-hide-all').css('cursor', 'pointer');

			$h2p_j('div#js-player-barrage').css('top', '256px');

			$h2p_j('.layout-Main').css('padding', '10px 120px 0 120px');
			$h2p_j('.layout-Main').css('margin-left', '48px');
			// 去除背景黑色
			$h2p_j('.layout-Main').css('background', '');

			$h2p_j('#btn-hide-part').text('隐藏部分元素');

			// 特定元素 ================================================
			document.getElementsByClassName('Act129684 ActBase')[0].classList.add('is-show');
			// 特定元素 ================================================
		}
	}

	// 隐藏全部元素(除播放界面)
	var douyu_hide_all = function(){
		if( bool_hide_part === 1 ){
			return;
		}

		// 背景图片
		$h2p_j('#js-background-holder').toggle();

		// 导航栏
		$h2p_j('#js-header').toggle();
		// 左边侧边
		$h2p_j('#js-aside').toggle();
		// 主播信息栏
		$h2p_j('div#js-player-title').toggle();
		// 右侧边栏
		$h2p_j('div.layout-Player-aside').toggle();
		// 任务、送礼物栏
		$h2p_j('div#js-player-toolbar').toggle();
		// 竞猜
		$h2p_j('div#js-player-guessgame').toggle();

		// 友邻、竞猜
		$h2p_j('div#js-bottom').toggle();

		// 放大剩余部分
		var height = $h2p_j(window).height();
		height = height >= 788 ? height : 788;

		var width = $h2p_j(window).width();
		width = width >= 1402 ? width : 1402;

		var margin_right = parseInt( ( width - height / 788 * 1402 ) / 2 );

		if( bool_hide_all === 0 ){
			bool_hide_all = 1;
			$h2p_j('#btn-hide-part').attr('disabled', true);
			$h2p_j('#btn-hide-part').css('cursor', 'default');

			$h2p_j('.layout-Container').css('padding-top', '0');
			$h2p_j('.layout-Main').css('margin-left', 'auto');
			$h2p_j('.layout-Main').css('margin-right', 'auto');
			$h2p_j('.layout-Main').css('padding', '5px 0 0 0');
			$h2p_j('div.layout-Player-main').css('margin', '0 ' + margin_right + 'px');
			// 背景改为黑色
			$h2p_j('.layout-Main').css('background', 'black');
			$h2p_j('.layout-Container').css('background', 'black');
			$h2p_j('.layout-Container').css('height', '100%');

			$h2p_j('#btn-hide-all-back').show();

			// 特定元素 ================================================
			document.getElementsByClassName('Act129684 ActBase is-show')[0].classList.remove('is-show');
			// 特定元素 ================================================

			setTimeout(function(){
				if( document.getElementsByClassName('roomSmallPlayerFloatLayout-closeBtn') ){
					document.getElementsByClassName('roomSmallPlayerFloatLayout-closeBtn')[0].click();
				}
			}, 500);
		}
		else {
			bool_hide_all = 0;
			$h2p_j('#btn-hide-part').attr('disabled', false);
			$h2p_j('#btn-hide-part').css('cursor', 'pointer');

			$h2p_j('.layout-Container').css('padding-top', '68px');
			$h2p_j('.layout-Main').css('margin-left', '48px');
			$h2p_j('.layout-Main').css('padding', '10px 120px 0 120px');
			$h2p_j('div.layout-Player-main').css('margin', '0 346px 0 0');
			// 去除背景黑色
			$h2p_j('.layout-Main').css('background', '');
			$h2p_j('.layout-Container').css('background', '');
			$h2p_j('.layout-Container').css('height', 'auto');

			$h2p_j('#btn-hide-all-back').hide();

			// 特定元素 ================================================
			document.getElementsByClassName('Act129684 ActBase')[0].classList.add('is-show');
			// 特定元素 ================================================
		}
	}

	// 调用初始化清爽斗鱼的函数
	initView_clearUp();






// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //






	// 自动领取观看鱼丸
	var autoReceiveFishBall = function(){
		var interval_autoReceiveFishBall = setInterval(function(){
			if( document.getElementsByClassName('RewardModule-countdown') ){
				if( document.getElementsByClassName('RewardModule-notify')[0] ){
					var timeOfYuwan = document.getElementsByClassName('RewardModule-notify')[0].textContent;
					if( ( timeOfYuwan != undefined && parseInt(timeOfYuwan) > 0 ) || document.getElementsByClassName('RewardModule-countdown')[0].textContent == '领 取' ){
						document.getElementsByClassName('RewardModule-countdown')[0].click();
						for( let i = 1; i <= parseInt(timeOfYuwan); i++ ){
							setTimeout(function(){
								try{
									document.getElementsByClassName('RewardM-text enable')[0].click();
								}catch(err){
									document.getElementsByClassName('RewardModal-close')[0].click();
									window.clearInterval(interval_autoReceiveFishBall);
									interval_autoReceiveFishBall == undefined;
								}
								if( interval_autoReceiveFishBall && i == parseInt(timeOfYuwan) ){
									setTimeout(function(){
										if( document.getElementsByClassName('RewardM-result').length == 4 ){
											window.clearInterval(interval_autoReceiveFishBall);
											console.log('所有观看鱼丸领完');
										}
										document.getElementsByClassName('RewardModal-close')[0].click();
									}, 200)
								}
							}, i * 100);
						}
					}
				}
			}
		}, 5000);
	}






// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //






	// 斗鱼功能自动化启动设置
	var h2p_DYScript_setting = {};
	var h2p_DYScript_setting_default = {
		defaultBarrage 		: false,
		speed				: 5,
		loopBarrage 		: false,
		loopBarrageContext	: '',
		luckDrawBarrage		: false,
		hidePart 			: false,
		hideAll 			: false,
		receiveFishBall		: false,
		version				: '',
	};
	var initView_setting = function(){
		try{
			let settingValue = localStorage.getItem('h2p-DYScript-setting');
			h2p_DYScript_setting = settingValue ? JSON.parse(settingValue) : h2p_DYScript_setting_default;
		}catch(err){
			localStorage.removeItem('h2p-DYScript-setting');
			h2p_DYScript_setting = h2p_DYScript_setting_default;
			localStorage.setItem('h2p-DYScript-setting', JSON.stringify(h2p_DYScript_setting) );
		}

		if( h2p_DYScript_setting.version != h2p_DYScript_version ){
			localStorage.removeItem('h2p-DYScript-setting');
			h2p_DYScript_setting = h2p_DYScript_setting_default;
			h2p_DYScript_setting.version = h2p_DYScript_version;
			localStorage.setItem('h2p-DYScript-setting', JSON.stringify(h2p_DYScript_setting) );
		}
		

		var div_setting = document.createElement('div');
		$h2p_j(div_setting).attr('id', 'div-setting');
		$h2p_j(div_setting).css({
			'position' 		: 'absolute',
			'bottom' 		: '1px',
			'min-width' 	: '315px',
			'max-width' 	: '315px',
			'padding' 		: '10px',
			'border' 		: '1px solid #DCDCDC',
			'border-radius'	: '2px',
			'margin' 		: '0 0 0 -1px',
			'box-shadow'	: '#A9A9A9 5px 0 10px 0',
			'font-family'	: fontFamily,
			'font-size'		: '16px',
			'background'	: '#f5f5f5',
			'display'		: 'none',
			'z-index' 		: '999',
		});

		// 默认弹幕
		var div_auto_barrage = document.createElement('div');
		$h2p_j(div_auto_barrage).css(style_div_layer);
		// 是否自动发送默认弹幕
		var div_auto_defaultBarrage = document.createElement('div');
		$h2p_j(div_auto_defaultBarrage).css(style_div_half);

		var input_auto_defaultBarrage = $h2p_j('<input type="checkbox" value="">');
		$h2p_j(input_auto_defaultBarrage).attr('id', 'input-auto-defaultBarrage');
		$h2p_j(input_auto_defaultBarrage).css(style_input_checkBok_left);
		$h2p_j(input_auto_defaultBarrage).click(function(){
			h2p_DYScript_setting.defaultBarrage = document.getElementById('input-auto-defaultBarrage').checked;
			localStorage.setItem('h2p-DYScript-setting', JSON.stringify(h2p_DYScript_setting) );
		});
		$h2p_j(div_auto_defaultBarrage).append(input_auto_defaultBarrage);

		var label_auto_defaultBarrage = document.createElement('label');
		$h2p_j(label_auto_defaultBarrage).css(style_label_checkBok_left);
		$h2p_j(label_auto_defaultBarrage).text('自动发送默认弹幕');
		$h2p_j(div_auto_defaultBarrage).append(label_auto_defaultBarrage);
		
		$h2p_j(div_auto_barrage).append(div_auto_defaultBarrage);

		// 发送弹幕速度
		var div_auto_speed = document.createElement('div');
		$h2p_j(div_auto_speed).css(style_div_half);
		$h2p_j(div_auto_speed).css('left', '50%');

		var label_auto_speed = document.createElement('label');
		$h2p_j(label_auto_speed).text('间隔:');
		$h2p_j(div_auto_speed).append(label_auto_speed);

		var input_auto_speed = document.createElement('input');
		$h2p_j(input_auto_speed).attr('id', 'input-auto-sendBarrage-speed');
		$h2p_j(input_auto_speed).css(style_input);
		$h2p_j(input_auto_speed).css('width', '56px');
		$h2p_j(input_auto_speed).attr('placeholder', '默认 5');
		input_auto_speed.onblur = input_auto_speed.onkeyup = function(){
			var value = this.value;
			value = value.replace(/[^\d]/g,'');
			while( value.length > 0 && value[0] == '0' ){
				value = value.substr(1, value.length);
			}
		    if( value.length > 3 ){
	            value = value.substr(0, 3);
            }
			this.value = value;
			h2p_DYScript_setting.speed = parseInt(value) ? parseInt(value) : 5;
			localStorage.setItem('h2p-DYScript-setting', JSON.stringify(h2p_DYScript_setting) );
		}
		$h2p_j(div_auto_speed).append(input_auto_speed);

		var label_auto_unit = document.createElement('label');
		$h2p_j(label_auto_unit).css({
			'position'		: 'absolute',
			'left'			: '120px',
		});
		$h2p_j(label_auto_unit).text('秒');
		$h2p_j(div_auto_speed).append(label_auto_unit);

		$h2p_j(div_auto_barrage).append(div_auto_speed);

		// 是否自动发送循环弹幕
		var div_auto_loopBarrage = document.createElement('div');
		$h2p_j(div_auto_loopBarrage).css(style_div_layer);

		var input_auto_loopBarrage = $h2p_j('<input type="checkbox" value="">');
		$h2p_j(input_auto_loopBarrage).attr('id', 'input-auto-loopBarrage');
		$h2p_j(input_auto_loopBarrage).css(style_input_checkBok_left);
		$h2p_j(input_auto_loopBarrage).click(function(){
			h2p_DYScript_setting.loopBarrage = document.getElementById('input-auto-loopBarrage').checked;
			if( document.getElementById('input-sendBarrage-content').value.length > 0 ){
				h2p_DYScript_setting.loopBarrageContext = document.getElementById('input-sendBarrage-content').value;
			}
			localStorage.setItem('h2p-DYScript-setting', JSON.stringify(h2p_DYScript_setting) );
		});
		$h2p_j(div_auto_loopBarrage).append(input_auto_loopBarrage);

		var label_auto_loopBarrage = document.createElement('label');
		$h2p_j(label_auto_loopBarrage).css(style_label_checkBok_left);
		$h2p_j(label_auto_loopBarrage).text('自动发送循环弹幕');
		$h2p_j(div_auto_loopBarrage).append(label_auto_loopBarrage);

		// 是否自动发送抽奖弹幕
		var div_auto_luckDrawBarrage = document.createElement('div');
		$h2p_j(div_auto_luckDrawBarrage).css(style_div_layer);

		var input_auto_luckDrawBarrage = $h2p_j('<input type="checkbox" value="">');
		$h2p_j(input_auto_luckDrawBarrage).attr('id', 'input-auto-luckDrawBarrage');
		$h2p_j(input_auto_luckDrawBarrage).css(style_input_checkBok_left);
		$h2p_j(input_auto_luckDrawBarrage).click(function(){
			h2p_DYScript_setting.luckDrawBarrage = document.getElementById('input-auto-luckDrawBarrage').checked;
			localStorage.setItem('h2p-DYScript-setting', JSON.stringify(h2p_DYScript_setting) );
		});
		$h2p_j(div_auto_luckDrawBarrage).append(input_auto_luckDrawBarrage);

		var label_auto_luckDrawBarrage = document.createElement('label');
		$h2p_j(label_auto_luckDrawBarrage).css(style_label_checkBok_left);
		$h2p_j(label_auto_luckDrawBarrage).text('自动发送抽奖弹幕');
		$h2p_j(div_auto_luckDrawBarrage).append(label_auto_luckDrawBarrage);

		// 隐藏选项
		var div_auto_hideOption = document.createElement('div');
		$h2p_j(div_auto_hideOption).css(style_div_layer);
		// 是否自动部分隐藏
		var div_auto_hidePart = document.createElement('div');
		$h2p_j(div_auto_hidePart).css(style_div_half);

		var input_auto_hidePart = $h2p_j('<input type="checkbox" value="">');
		$h2p_j(input_auto_hidePart).attr('id', 'input-auto-hidePart');
		$h2p_j(input_auto_hidePart).css(style_input_checkBok_left);
		$h2p_j(input_auto_hidePart).click(function(){
			h2p_DYScript_setting.hidePart = document.getElementById('input-auto-hidePart').checked;
			document.getElementById('input-auto-hideAll').checked = false;
			h2p_DYScript_setting.hideAll = document.getElementById('input-auto-hideAll').checked;
			localStorage.setItem('h2p-DYScript-setting', JSON.stringify(h2p_DYScript_setting) );
		});
		$h2p_j(div_auto_hidePart).append(input_auto_hidePart);

		var label_auto_hidePart = document.createElement('label');
		$h2p_j(label_auto_hidePart).css(style_label_checkBok_left);
		$h2p_j(label_auto_hidePart).text('自动部分隐藏');
		$h2p_j(div_auto_hidePart).append(label_auto_hidePart);

		$h2p_j(div_auto_hideOption).append(div_auto_hidePart);

		// 是否自动全部隐藏
		var div_auto_hideAll = document.createElement('div');
		$h2p_j(div_auto_hideAll).css(style_div_half);
		$h2p_j(div_auto_hideAll).css('left', '50%');

		var input_auto_hideAll = $h2p_j('<input type="checkbox" value="">');
		$h2p_j(input_auto_hideAll).attr('id', 'input-auto-hideAll');
		$h2p_j(input_auto_hideAll).css(style_input_checkBok_left);
		$h2p_j(input_auto_hideAll).click(function(){
			document.getElementById('input-auto-hidePart').checked = false;
			h2p_DYScript_setting.hidePart = document.getElementById('input-auto-hidePart').checked;
			h2p_DYScript_setting.hideAll = document.getElementById('input-auto-hideAll').checked;
			localStorage.setItem('h2p-DYScript-setting', JSON.stringify(h2p_DYScript_setting) );
		});
		$h2p_j(div_auto_hideAll).append(input_auto_hideAll);

		var label_auto_hideAll = document.createElement('label');
		$h2p_j(label_auto_hideAll).css(style_label_checkBok_left);
		$h2p_j(label_auto_hideAll).text('自动全部隐藏');
		$h2p_j(div_auto_hideAll).append(label_auto_hideAll);

		$h2p_j(div_auto_hideOption).append(div_auto_hideAll);

		// 是否自动领取鱼丸
		var div_auto_receiveFishBall = document.createElement('div');
		$h2p_j(div_auto_receiveFishBall).css(style_div_layer);
		$h2p_j(div_auto_receiveFishBall).css('height', '22px');

		var input_auto_receiveFishBall = $h2p_j('<input type="checkbox" value="">');
		$h2p_j(input_auto_receiveFishBall).attr('id', 'input-auto-receiveFishBall');
		$h2p_j(input_auto_receiveFishBall).css(style_input_checkBok_left);
		$h2p_j(input_auto_receiveFishBall).click(function(){
			h2p_DYScript_setting.receiveFishBall = document.getElementById('input-auto-receiveFishBall').checked;
			localStorage.setItem('h2p-DYScript-setting', JSON.stringify(h2p_DYScript_setting) );
		});
		$h2p_j(div_auto_receiveFishBall).append(input_auto_receiveFishBall);

		var label_auto_receiveFishBall = document.createElement('label');
		$h2p_j(label_auto_receiveFishBall).css(style_label_checkBok_left);
		$h2p_j(label_auto_receiveFishBall).text('自动领取鱼丸');
		$h2p_j(div_auto_receiveFishBall).append(label_auto_receiveFishBall);

		// 分隔线  ===============================================================
		var hr_style = '<hr style="margin: 3px; border: 1px solid transparent;">';


		// 添加所有设置按钮
		$h2p_j(div_setting).append($h2p_j(hr_style));
		$h2p_j(div_setting).append($h2p_j(hr_style));
		$h2p_j(div_setting).append(div_auto_barrage);
		$h2p_j(div_setting).append($h2p_j(hr_style));
		$h2p_j(div_setting).append($h2p_j(hr_style));
		$h2p_j(div_setting).append(div_auto_loopBarrage);
		$h2p_j(div_setting).append($h2p_j(hr_style));
		$h2p_j(div_setting).append($h2p_j(hr_style));
		$h2p_j(div_setting).append(div_auto_luckDrawBarrage);
		$h2p_j(div_setting).append($h2p_j(hr_style));
		$h2p_j(div_setting).append($h2p_j(hr_style));
		$h2p_j(div_setting).append(div_auto_hideOption);
		$h2p_j(div_setting).append($h2p_j(hr_style));
		$h2p_j(div_setting).append($h2p_j(hr_style));
		$h2p_j(div_setting).append(div_auto_receiveFishBall);
		$h2p_j(div_setting).append($h2p_j(hr_style));
		$h2p_j(div_setting).append($h2p_j(hr_style));


		// 检查设置面板挂载点(斗鱼弹幕显示区域)是否加载完成
		var check_mountPoint_settingPanel = setInterval( function(){
			if( $h2p_j('div.layout-Player-asideMainTop')[0] ){
				setTimeout( function(){
					$h2p_j('div.layout-Player-asideMainTop')[0].append(div_setting);
				}, 3000);
				window.clearInterval( check_mountPoint_settingPanel );
			}
		}, 1000);

		var check_mountPoint_settingIcon = setInterval( function(){
			if( document.getElementById('div-setting') && document.getElementsByClassName('ChatToolBar')[0] ){
				var div_setting = document.createElement('div');
				$h2p_j(div_setting).css({
					'width'		: '18px',
					'height'	: '18px',
					'margin'	: '-8px 0 0 8px',
					'display'	: 'inline-block',
					'vertical-align' : 'middle',
				});
				$h2p_j(div_setting).css('title', '脚本自动设置');

				var btn_setting = document.createElement('span');
				$h2p_j(btn_setting).attr('id', 'button-setting');
				$h2p_j(btn_setting).css({
					'font-size'	: '18px',
					'cursor'	: 'pointer',
				});
				$h2p_j(btn_setting).text('⏲️');
				btn_setting.onclick = function(){
					$h2p_j('div#div-sendBarrage').hide();
					$h2p_j('div#div-DYLight').hide();
					$h2p_j('div#div-setting').toggle();
				};

				$h2p_j(div_setting).append(btn_setting);

				$h2p_j('div.ChatToolBar')[0].append(div_setting);
				window.clearInterval( check_mountPoint_settingIcon );

				bool_settingReady = true;
			}
		}, 1000);
	}

	initView_setting();

	(function(){
		// 自动发弹幕自动化设置生效
		var interval_setting_barrage_TakeEffect = setInterval(function(){
			if( bool_settingReady && bool_barrageReady ){
				let auto_send = false;
				document.getElementById('input-auto-sendBarrage-speed').value = h2p_DYScript_setting.speed;
				if( h2p_DYScript_setting.defaultBarrage ){
					document.getElementById('input-isDefaultBarrage').checked = true;
					document.getElementById('input-auto-defaultBarrage').checked = true;
					console.log('启动:自动发送默认弹幕');
					auto_send = true;
				}
				if( h2p_DYScript_setting.loopBarrage ){
					document.getElementById('input-isLoopBarrage').checked = true;
					document.getElementById('input-sendBarrage-content').value = h2p_DYScript_setting.loopBarrageContext;
					document.getElementById('input-auto-loopBarrage').checked = true;
					console.log('启动:自动发送循环弹幕');
					auto_send = true;
				}
				if( h2p_DYScript_setting.luckDrawBarrage ){
					document.getElementById('input-isLuckDrawBarrage').checked = true;
					document.getElementById('input-auto-luckDrawBarrage').checked = true;
					console.log('启动:自动发送抽奖弹幕');
					auto_send = true;
				}
				if( auto_send ){
					document.getElementById('btn-send').click();
				}
				window.clearInterval(interval_setting_barrage_TakeEffect);
			}
		}, 500);
		// 清爽模式自动化设置生效
		var interval_setting_clear_TakeEffect = setInterval(function(){
			if( bool_settingReady && bool_clearReady ){
				if( h2p_DYScript_setting.hidePart ){
					document.getElementById('btn-hide-part').click();
					document.getElementById('input-auto-hidePart').checked = true;
					console.log('启动:自动隐藏部分');
				}
				else if( h2p_DYScript_setting.hideAll ){
					document.getElementById('btn-hide-all').click();
					document.getElementById('input-auto-hideAll').checked = true;
					console.log('启动:自动隐藏全部');
				}
				window.clearInterval(interval_setting_clear_TakeEffect);
			}
		}, 500);
		// 领取鱼丸自动化设置生效
		var interval_setting_receiveFishBall_TakeEffect = setInterval(function(){
			if( bool_settingReady && h2p_DYScript_setting.receiveFishBall ){
				autoReceiveFishBall();
				document.getElementById('input-auto-receiveFishBall').checked = true;
				console.log('启动:自动领取观看鱼丸');
				window.clearInterval(interval_setting_receiveFishBall_TakeEffect);
			}
		}, 500);
	})();
})();