// ==UserScript== // @name tb_borer // @namespace http://wp.stf.iaceob.name // @description tba_style // @include http://tieba.baidu.com/* // @version 1 // @grant none // @author 生物烯丙菊 // @downloadURL none // ==/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 = ''; tpl.html_container = '
{0}
'; tpl.html_footer = ''; tpl.html_box_posts = '
'; tpl.html_box_post = '
'; 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 = ''; hhtml += '
\
\ \ \
\
'; $('#header').html(hhtml); }; function initFooter(fhtml) { $('#footer').html(fhtml); }; function initCss(){ $('head').append(''); }; 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 = '
' + tf + '
'; return fhtml; }; function parseSearch(data) { var qms = data.query_match.search_data; if (qms.length==0) { return '

无数据'; } var qhtml = '

'; 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='
'; posts_html += '
' + (!h_paging.length ? '' : h_paging.html()) + '刷新
'; 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 += '
' + post_title + '
'; for(var i=0; i'; post_html += '
\ \ \
'; post_html += '
' + pc.innerHTML + '
'; post_html += '
' + pi.content.date + '
'; post_html += '
' + getPostLzl(lzlbox, i) + '
'; post_html += ''; } post_html += '