Tieba Template

贴吧模板

Vous devrez installer une extension telle que Tampermonkey, Greasemonkey ou Violentmonkey pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey ou Violentmonkey pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey ou Userscripts pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey pour installer ce script.

Vous devrez installer une extension de gestionnaire de script utilisateur pour installer ce script.

(J'ai déjà un gestionnaire de scripts utilisateur, laissez-moi l'installer !)

Vous devrez installer une extension telle que Stylus pour installer ce style.

Vous devrez installer une extension telle que Stylus pour installer ce style.

Vous devrez installer une extension telle que Stylus pour installer ce style.

Vous devrez installer une extension du gestionnaire de style pour utilisateur pour installer ce style.

Vous devrez installer une extension du gestionnaire de style pour utilisateur pour installer ce style.

Vous devrez installer une extension du gestionnaire de style pour utilisateur pour installer ce style.

(J'ai déjà un gestionnaire de style utilisateur, laissez-moi l'installer!)

// ==UserScript==
// @name         Tieba Template
// @version      1.0.0
// @description  贴吧模板
// @match        http://tieba.baidu.com/*
// @include      http://tieba.baidu.com/*
// @author       864907600cc
// @run-at       document-end
// @grant        GM_addStyle
// @namespace https://greatest.deepsurf.us/users/141
// ==/UserScript==

var stylesheet='.ttemplate_listener{width: 56px;height :14px;font-size: 12px;margin: 0 0 0 auto;color: orange;cursor: pointer;}'
			  +'.tiebaTemplate-container{width: calc(100% + 28px);height: calc(100% + 14px);position: absolute;z-index: 2;top: 0px;left: -14px;color: #000;background: rgba(255,255,255,.75);font-size: 14px}'
			  +'.tiebaTemplate-header{margin: 14px;height: 30px;-webkit-user-select: none}'
			  +'.tiebaTemplate-header h3{font-size:14px}'
			  +'.tiebaTemplate-header-exit{width: 18px;height: 18px;top: 10px;position: absolute;right: 10px;font-size: 18px;cursor: pointer;}'
			  +'.tiebaTemplate-article{height: calc(100% - 90px);padding: 0 14px;text-align: center}'
			  +'.tiebaTemplate-footer{height: 30px;text-align: center;font-size: 14px}'
			  +'.tiebaTemplate-footer-add{cursor: pointer}'
			  +'.ttemplate_addp{background: #fff;height: calc(100% - 45px);width: 100%;position: absolute;bottom: 0px}'
			  +'input[type="text"].ttemplate_addp_title{border: orange 1px solid !important;height: 20px;width: calc(100% - 36px);line-height: 20px;margin: 0 12px;font-size: 14px;padding: 5px}'
			  +'.ttemplate_addp_context{border: orange 1px solid;height: calc(100% - 75px);margin: 0 12px;font-size: 14px;padding: 5px}'
			  +'.ttemplate_addp_footer{text-align: center;font-size: 14px}'
			  +'.ttemplate_addp_footer span{cursor:pointer;}'
			  +'.ttemplate_data_num{width:5%;display:inline-block}'
			  +'.ttemplate_data_art{width:85%;display:inline-block;cursor:pointer}'
			  +'.ttemplate_data_edit,.ttemplate_data_del{width:5%;display:inline-block;cursor:pointer}'
			  +'.ttemplate_data_art:hover,.ttemplate_addp_footer span:hover,.tiebaTemplate-header-exit:hover,.tiebaTemplate-footer-add:hover,.ttemplate_data_edit:hover,.ttemplate_data_del:hover{color:blueviolet}';
GM_addStyle(stylesheet);

var ttemplate_node,ttemplate_data=localStorage.getItem('tiebaTemplate').match(/{"title"\:".*?","context"\:".*?"}/gi)||[];
function ttemplate_1(){
	var f=document.createElement('div'),n1=document.getElementsByClassName('poster_head_text')[0];
	n1.parentNode.insertBefore(f,n1.nextElementSibling);
	f.className='ttemplate_listener';
	f.innerHTML='插入模板';
	f.onclick=function(){ttemplate_2()};
}
function ttemplate_2(){
	if(typeof ttemplate_node=='undefined'){
		document.getElementsByClassName('edui-container')[0].appendChild(ttemplate_node=document.createElement('div'),
																		 ttemplate_node.className='tiebaTemplate-container',
																		 ttemplate_node.innerHTML='<div class="tiebaTemplate-header">'
																									+'<h3>贴吧模板</h3>'
																									+'<div class="tiebaTemplate-header-exit" title="点击关闭此页面">×</div>'
																									+'<hr>'+'</div>'
																								 +'<div class="tiebaTemplate-article"></div>'
																								 +'<div class="tiebaTemplate-footer">'
																									+'<span class="tiebaTemplate-footer-add">新建模板</span>'
																								 +'</div>');
		document.getElementsByClassName('tiebaTemplate-footer-add')[0].onclick=function(){ttemplate_3()};
		document.getElementsByClassName('tiebaTemplate-header-exit')[0].onclick=function(){ttemplate_node.style.display='none'};
		ttemplate_4();
	}
	else ttemplate_node.style.display='';
}
function ttemplate_3(attr){
	var ttemplate_addp=document.createElement('div'),ttemplate_addp_context=document.createElement('div'),ttemplate_addp_title=document.createElement('input'),ttemplate_addp_footer=document.createElement('div');
	ttemplate_addp.className='ttemplate_addp';
	ttemplate_addp_title.setAttribute('type','text');
	ttemplate_addp_title.setAttribute('placeholder','请输入标题');
	ttemplate_addp_title.className='ttemplate_addp_title';
	ttemplate_addp_context.setAttribute('contenteditable','true');
	ttemplate_addp_context.className='ttemplate_addp_context';
	ttemplate_addp_footer.innerHTML='<span class="ttemplate_addp_save">保存</span> <span class="ttemplate_addp_cancel">取消</span>';
	ttemplate_addp_footer.className='ttemplate_addp_footer';
	ttemplate_addp.appendChild(ttemplate_addp_title);
	ttemplate_addp.appendChild(ttemplate_addp_context);
	ttemplate_addp.appendChild(ttemplate_addp_footer);
	ttemplate_node.appendChild(ttemplate_addp);
	if(typeof attr!='undefined'){
		var S=JSON.parse(ttemplate_data[attr]);
		ttemplate_addp_title.value=S.title;
		ttemplate_addp_context.innerHTML=S.context;
	}
	ttemplate_addp_footer.getElementsByClassName('ttemplate_addp_save')[0].onclick=function(){
		if(ttemplate_addp_title.value!=''&&ttemplate_addp_context.innerHTML!=''){
			var t=new Object();
			t.title=ttemplate_addp_title.value;
			t.context=ttemplate_addp_context.innerHTML;
			if(typeof attr!='undefined')ttemplate_data[attr]=JSON.stringify(t);
			else ttemplate_data.push(JSON.stringify(t));
			ttemplate_node.removeChild(ttemplate_addp);
			localStorage.setItem('tiebaTemplate',ttemplate_data.toString());
			delete t;
			ttemplate_4();
		}
	}
	ttemplate_addp_footer.getElementsByClassName('ttemplate_addp_cancel')[0].onclick=function(){
		ttemplate_node.removeChild(ttemplate_addp);
	}
}
function ttemplate_4(){
	var ttemplate_article=document.getElementsByClassName('tiebaTemplate-article')[0];
	if(localStorage.getItem('tiebaTemplate')){
		var Q,R='',S,T;
		for(Q in ttemplate_data){
			S=JSON.parse(ttemplate_data[Q]);
			R+='<div class="ttemplate_data"><div class="ttemplate_data_num">'+(parseInt(Q)+1)+'</div><div class="ttemplate_data_art" title="'+S.context.substr(0,100)+'">'+S.title+'</div><div class="ttemplate_data_edit">修改</div><div class="ttemplate_data_del">删除</div></div>';
		}
		ttemplate_article.innerHTML=R;
		var T=ttemplate_article.querySelectorAll('.ttemplate_data_art'),U=ttemplate_article.querySelectorAll('.ttemplate_data_edit'),V=ttemplate_article.querySelectorAll('.ttemplate_data_del');
		for(var i=0;i<T.length;i++)T[i].onclick=ttemplate_5;
		for(var i=0;i<U.length;i++)U[i].onclick=ttemplate_6;
		for(var i=0;i<V.length;i++)V[i].onclick=ttemplate_7;
		
	}
	else{
		ttemplate_article.innerHTML='啊哦……你还没有设置过模板呢……'
	}
}
function ttemplate_5(){
	var cnode=document.getElementById('ueditor_replace');
	cnode.innerHTML+=JSON.parse(ttemplate_data[parseInt(this.parentNode.getElementsByClassName('ttemplate_data_num')[0].innerHTML)-1]).context;
	ttemplate_node.style.display='none';
}
function ttemplate_6(){
	ttemplate_3(parseInt(this.parentNode.getElementsByClassName('ttemplate_data_num')[0].innerHTML)-1);
}
function ttemplate_7(){
	ttemplate_data.splice(parseInt(this.parentNode.getElementsByClassName('ttemplate_data_num')[0].innerHTML)-1,1);
	localStorage.setItem('tiebaTemplate',ttemplate_data.toString());
	ttemplate_4();
}

if(document.getElementsByClassName('forum_content')[0]||document.getElementsByClassName('p_postlist')[0]){
if(document.getElementById('ueditor_replace'))ttemplate_1();
else {
	var editor_wait=window.setInterval(function(){
		if(document.getElementById('ueditor_replace')){
			window.clearInterval(editor_wait);
			ttemplate_1();
		}
	},100)
}}