您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
tba_style
当前为
- // ==UserScript==
- // @name tb_borer
- // @namespace http://wp.stf.iaceob.name
- // @description tba_style
- // @include http://tieba.baidu.com/*
- // @version 1
- // @grant none
- // @author 生物烯丙菊
- // ==/UserScript==
- String.prototype.format = function () {
- var txt = this.toString();
- for (var i = 0; i < arguments.length; i++) {
- var exp = getStringFormatPlaceHolderRegEx(i);
- txt = txt.replace(exp, (arguments[i] == null ? "" : arguments[i]));
- }
- return cleanStringFormatResult(txt);
- }
- function getStringFormatPlaceHolderRegEx(placeHolderIndex) {
- return new RegExp('({)?\\{' + placeHolderIndex + '\\}(?!})', 'gm');
- }
- function cleanStringFormatResult(txt) {
- if (txt == null) return "";
- return txt.replace(getStringFormatPlaceHolderRegEx("\\d+"), "");
- }
- !(function(window, $, undefined){
- var topic = $('#thread_topic');
- var h_posts = $('#thread_list li.j_thread_list');
- var h_paging = $('#frs_list_pager');
- var me = $('#balv_mod');
- var html = '';
- var document = window.document;
- var pd = window.PageData;
- var tpl = {};
- var post_config = {
- forum_id: '',
- forum_name: '',
- tbs: ''
- };
- tpl.html_header = '<header id="header" class="loop-12"></header>';
- tpl.html_container = '<div class="span container">{0}</div>';
- tpl.html_footer = '<footer id="footer" class="loop-12">Footer</footer>';
- tpl.html_box_posts = '<div class="loop-4 box_posts" id="box_posts"></div>';
- tpl.html_box_post = '<div class="loop-8 post_container" id="post_container"></div>';
- tpl.css = 'http://idc.iaceob.name/tba_style/tba_v1.css';
- if (location.href === 'http://tieba.baidu.com/') {
- return;
- }
- if (!pd) {
- return;
- }
- function initBorer() {
- if (!!pd.forum.id) {
- var postsPage = parsePosts($('body'));
- initPage();
- initPosts(postsPage);
- return;
- }
- if (!!pd.forum.forum_id) {
- $.ajax({
- url: 'http://tieba.baidu.com/' + pd.forum.forum_name,
- dataType: 'html'
- }).done(function(data){
- var postPage = parsePost($('body'));
- initPage();
- initPosts(parsePosts($(data)));
- initPost(postPage);
- getPostConfig();
- });
- return;
- }
- }
- function initPage() {
- var fhtml = parseFooter();
- html = tpl.html_header;
- html += tpl.html_container.format(tpl.html_box_posts+tpl.html_box_post);
- html += tpl.html_footer;
- $('body').empty();
- $('body').html(html);
- // $('#head').html(html);
- initHeader();
- initFooter(fhtml);
- initCss();
- bindEvent();
- }
- function initPosts(body) {
- $('.posts_paging a').unbind('click');
- $('#post_container').empty();
- $('#box_posts').html(body);
- $('#box_posts').scrollTop(0);
- monitorHPage();
- };
- function initPost(body) {
- $('.post-page a').unbind('click');
- $('#post_container').html(body);
- $('#post_container').scrollTop(0);
- mointorPPage();
- };
- function initHeader() {
- var hhtml = '<div class="loop-2 tiebalogo"><img src="http://tb2.bdstatic.com/tb/static-common/img/search_logo_7098cbef.png"></div>';
- hhtml += '<div class="loop-8">\
- <div class="select_box">\
- <input type="text" name="query" id="query" class="keyipt">\
- <div id="search_list" style="display: none"></div>\
- </div>\
- </div>';
- $('#header').html(hhtml);
- };
- function initFooter(fhtml) {
- $('#footer').html(fhtml);
- };
- function initCss(){
- $('head').append('<link rel="stylesheet" href="' + tpl.css + '">');
- };
- function monitorHPage() {
- $('.posts_paging a').bind('click', function(){
- $.ajax({
- url:this.href,
- dataType: 'html'
- }).done(function(data){
- initPosts(parsePosts($(data)));
- });
- return false;
- });
- $('.posts_list li').bind('click', function(){
- $.ajax({
- url: $(this).data('href'),
- dataType: 'html'
- }).done(function(data){
- initPost(parsePost($(data)));
- });
- });
- };
- function mointorPPage() {
- $('.post-page a').bind('click', function(){
- $.ajax({
- url: this.href,
- dataType: 'html'
- }).done(function(data){
- initPost(parsePost($(data)));
- });
- return false;
- });
- };
- function mointorSearch(){
- $.ajax({
- url: 'http://tieba.baidu.com/suggestion',
- data: $('#query').serialize(),
- dataType: 'json',
- }).done(function(data){
- $('#search_list').html(parseSearch(data));
- });
- };
- window.handleSearchResult = function(forum){
- $.ajax({
- url:'http://tieba.baidu.com/' + forum,
- dataType: 'html'
- }).done(function(data){
- initPosts(parsePosts($(data)));
- });
- };
- function getPostConfig(){
- $.ajax({
- url: 'http://tieba.baidu.com/dc/common/tbs',
- dataType: 'json'
- }).done(function(data){
- post_config.tbs = data.tbs;
- });
- };
- function bindEvent() {
- $('#query').bind('keyup', function(){
- $('#search_list').show();
- mointorSearch();
- });
- $('#query').bind('click', function(){
- $('#search_list').show();
- mointorSearch();
- });
- $('#search_list').hover(function(){
- $(this).show();
- }, function(){
- $(this).hide();
- });
- };
- function parseFooter() {
- var tf = $('#footer').html();
- var fhtml = '<div class="loop-12">' + tf + '</div>';
- return fhtml;
- };
- function parseSearch(data) {
- var qms = data.query_match.search_data;
- if (qms.length==0) {
- return '<p>无数据';
- }
- var qhtml = '<ul>';
- for(var i=0; i<qms.length; i++) {
- qhtml += '<li onclick="handleSearchResult("' + qms[i].fname + '")">\
- <div class="sh_forum_name">' + qms[i].fname + '</div>\
- <div class="sh_forum_desc">' + qms[i].forum_desc + '</div>';
- }
- qhtml += '</ul>';
- return qhtml;
- };
- function parsePosts(postsDom) {
- var h_posts = postsDom.find('li.j_thread_list');
- var h_paging = postsDom.find('#frs_list_pager');
- var h_cur_page = postsDom.find('#frs_list_pager .cur');
- var h_cur_url = !h_cur_page.length ? '#?' + window.Math.random() : '/f?kw=' + pd.forum.forum_name + '&pn=' + (h_cur_page.text()*50-50);
- var ho_pobj = {}, posts_html='';
- posts_html='<div class="span"><div class="loop-12 posts_list"><ul>';
- for(var i=0; i<h_posts.length; i++) {
- var hp = h_posts[i];
- var hp_rep_num = $(hp).find('.threadlist_rep_num')[0].textContent;
- var hp_title = $(hp).find('.j_th_tit')[1].textContent;
- var hp_href = $(hp).find('.j_th_tit')[1].href;
- var hp_detail = !$(hp).find('.threadlist_text')[1] ? '' : $(hp).find('.threadlist_text')[1].textContent;
- var hp_author = !$(hp).find('.j_user_card')[0] ? '' : $(hp).find('.j_user_card')[0].textContent;
- var hp_last_repuser = !$(hp).find('.j_user_card')[1] ? '' : $(hp).find('.j_user_card')[1].textContent;
- var hp_last_time = !$(hp).find('.j_reply_data')[0] ? '' : $(hp).find('.j_reply_data')[0].textContent;
- posts_html += '<li data-href="' + hp_href + '">\
- <div class="span">\
- <div class="loop-10 post_title hidefont" title="' + hp_title + '">' + hp_title + '</div>\
- <div class="loop-2 post_author hidefont" title="' + hp_author + '">' + hp_author + '</div>\
- <div class="loop-12 box_posts_detail">' + hp_detail + '</div>\
- <div class="loop-5 post_repuser hidefont">最后回复人:' + hp_last_repuser + '</div>\
- <div class="loop-5 post_lasttime">最后回复时间:' + hp_last_time + '</div></div>';
- }
- posts_html += '</ul></div>';
- posts_html += '<div class="loop-4 posts_paging">' + (!h_paging.length ? '' : h_paging.html()) + '<a href="' + h_cur_url + '">刷新</a></div></div>';
- return posts_html;
- }
- function parsePost(postDom) {
- var post_title = postDom.find('.core_title_txt').html()
- var post_info = postDom.find('.l_post');
- var post_content = postDom.find('.p_content cc');
- var author_avatar = postDom.find('.p_author_face img');
- var lzlbox = postDom.find('j_lzl_c_b_a');
- var ppage = postDom.find('.pb_list_pager')[0];
- var post_html = '';
- post_html += '<div class="loop-12 post_title">' + post_title + '</div>';
- for(var i=0; i<post_info.length; i++) {
- var pi = $(post_info[i]).data('field');
- var pc = post_content[i];
- post_html += '<section data-post="' + pi.content.post_id + '">';
- post_html += '<div class="loop-2 post_info">\
- <div class="loop-12 post_author" data-user="' + pi.author.user_id + '">\
- <div><img src="http://tb.himg.baidu.com/sys/portrait/item/' + pi.author.portrait + '"></div>\
- <span>' + pi.author.user_name + '</span>\
- </div>\
- <div class="loop-12 post_author_level">\
- <span>' + (pi.author.level_name||'*') + '</span>\
- <span>' + (pi.author.level_id||'0') + '</span>\
- </div>\
- </div>';
- post_html += '<div class="loop-10 post_article">' + pc.innerHTML + '</div>';
- post_html += '<div class="loop-10 post_msg">' + pi.content.date + '</div>';
- post_html += '<div class="loop-10 post_lzl">' + getPostLzl(lzlbox, i) + '</div>';
- post_html += '</section>';
- }
- post_html += '<div id="ue_texteara" class="loop-12"><script id="ueditor_tieba" name="content" type="text/plain">这里写你的初始化内容</script></div><div class="loop-12"><textarea id="post_editor" /></div><div class="loop-12"><button>回复</button></div>';
- post_html += '<div class="loop-8 post-page">' + ppage.innerHTML + '</div>';
- // <a href="'+(($(ppage).find('a'))[0].href.split('?')[0]+'?see_lz=1')+'">只看楼主</a>
- post_html='<div class="span box_post">' +post_html+ '</div>';
- return post_html;
- }
- function getPostLzl(lzldom, index) {
- var lzlbox = lzldom[index];
- if (!lzlbox) { return ''; }
- var lzlreps = $(lzlbox).find('li');
- var lzlhtml = '<ul>';
- for(var i=0; i<lzlreps.length; i++) {
- var lzlinfo = $(lzlreps[i]).data('field');
- var lzltext = $(lzlreps[i]).find('.lzl_cnt span.lzl_content_main').html();
- var lzltime = $(lzlreps[i]).find('.lzl_cnt span.lzl_time').html();
- var llio = eval('(' + lzlinfo + ')');
- lzlhtml += '<li data-pid="' + llio.pid + '" data-spid="'+llio.spid+'">\
- <div class="span">\
- <div class="loop-2">' + llio.user_name + '</div>\
- <div class="loop-8">' + lzltext + '</div>\
- <div class="loop-2">' + lzltime + '</div>\
- </div>';
- }
- lzlhtml += '</ul>';
- return lzlhtml;
- };
- initBorer();
- })(window, jQuery);