您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
スレ本文を検索してカタログでスレッド監視しちゃう
当前为
// ==UserScript== // @name futaba_thread_highlighter // @namespace https://github.com/himuro-majika // @description スレ本文を検索してカタログでスレッド監視しちゃう // @include http://*.2chan.net/*/futaba.php?mode=cat* // @version 1.2 // @require http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js // @grant GM_registerMenuCommand // @grant GM_getValue // @grant GM_setValue // @grant GM_addStyle // ==/UserScript== this.$ = this.jQuery = jQuery.noConflict(true); (function ($) { var akahukuloadstat; init(); function init(){ console.log("futaba_thread_highlighter: " + GM_getValue("_futaba_thread_search_words")); GM_registerMenuCommand("スレッド検索ワード編集", editWords); setStyle(); makecontainer(); highlight(); setInterval(check_akahuku_reload, "100"); } /* *検索文字列の設定 */ function editWords(){ var userinput; //検索文字列入力値 userinput = prompt("スレ本文に含まれる語句を入力してください。 | を挟むと複数指定できます。正規表現使用可。\n例 : img|dat村|mayちゃん|junくん|dec", GM_getValue("_futaba_thread_search_words") ) if ( userinput != null ){ GM_setValue("_futaba_thread_search_words", userinput); highlight(); } console.log("futaba_thread_highlighter: " + GM_getValue("_futaba_thread_search_words")); } /* *スレピックアップ表示エリアの設定 */ function makecontainer() { var $pickup_thread_container = $("<div>", { id: "futaba_thread_highlighter_highlighted_threads", css: { "overflow": "hidden" } }); $("body > table[align]").before($pickup_thread_container); var $container_header = $("<div>", { id: "futaba_thread_highlighter_container_header", text: "スレッド検索該当スレッド", css: { backgroundColor: "#F0E0D6", fontWeight: "bolder" } }); $pickup_thread_container.append($container_header); //設定ボタン var $button = $("<span>", { id: "futaba_thread_highlighter_searchword", text: "[設定]", css: { cursor: "pointer", }, click: function() { editWords(); } }); $button.hover(function () { $(this).css({ backgroundColor:"#EEAA88" }); }, function () { $(this).css({ backgroundColor:"#F0E0D6" }); }); $container_header.append($button); } /* *赤福の動的リロードの状態を取得 */ function check_akahuku_reload() { if ( get_akahuku_reloading_status() == 0 || get_akahuku_reloading_status() == 1 ) { akahukuloadstat = true; } else if ( get_akahuku_reloading_status() == 2 || get_akahuku_reloading_status() == 3 ) { if ( akahukuloadstat ) { highlight(); } akahukuloadstat = false; } function get_akahuku_reloading_status() { var $acrs = $("#akahuku_catalog_reload_status"); //赤福 var $fvw = $("#fvw_mes"); //ふたクロ var relstat; if ( $acrs.length ) { //赤福 if ( $acrs.text().match(/ロード中/) ) { relstat = 0; } else if ( $acrs.text().match(/更新中/) ) { relstat = 1; } else if ( $acrs.text().match(/完了しました/) ) { relstat = 2; } else { relstat = 3; } } if ( $fvw.length ){ //ふたクロ if ( $fvw.text().match(/Now Loading/) ) { relstat = 0; } else if ( $fvw.text().match(/更新しました/) ) { relstat = 2; } else { relstat = 3; } } return relstat; } } /* *カタログを検索して強調表示 */ function highlight() { var Start = new Date().getTime();//count parsing time var words = GM_getValue("_futaba_thread_search_words") var re = new RegExp(words, "i"); if ( words != "" ) { $(".futaba_thread_highlighter_highlighted").removeClass("futaba_thread_highlighter_highlighted"); $("body > table[align] td small").each(function(){ if( $(this).text().match(re) ) { if ( !$(this).children(".futaba_thread_highlighter_matchedword").length ) { $(this).html($(this).html().replace(re, "<span class='futaba_thread_highlighter_matchedword'>" + $(this).text().match(re) + "</span>")); } if ( $(this).parent("a").length ) { //文字スレ $(this).parent().parent("td").addClass("futaba_thread_highlighter_highlighted"); } else { $(this).parent("td").addClass("futaba_thread_highlighter_highlighted"); } } }); pickup_highlighted(); } console.log('Parsing: '+((new Date()).getTime()-Start) +'msec');//log parsing time } /* *強調表示したスレを先頭にピックアップ */ function pickup_highlighted() { if ( $("#futaba_thread_highlighter_highlighted_threads .futaba_thread_highlighter_pickuped").length ) { $("#futaba_thread_highlighter_highlighted_threads .futaba_thread_highlighter_pickuped").remove(); } var highlighted = $("body > table .futaba_thread_highlighter_highlighted").clone(); $("#futaba_thread_highlighter_highlighted_threads").append(highlighted); //要素の中身を整形 highlighted.each(function(){ if ( !$(this).children("small").length ) { //文字スレ //console.log($(this).children("a").html()); //$(this).children("a").replaceWith("<div class='futaba_thread_highlighter_pickuped_caption'>" + $(this).html() + "</div>"); } else { $(this).children("small").replaceWith("<div class='futaba_thread_highlighter_pickuped_caption'>" + $(this).children("small").html() + "</div>"); $(this).children("br").replaceWith(); } $(this).replaceWith("<div class='futaba_thread_highlighter_pickuped'>" + $(this).html() + "</div>"); }); set_img_height_width(); /* *ピックアップしたスレ画像の高さと幅に合わせる */ function set_img_height_width(){ var $pickuped = $(".futaba_thread_highlighter_pickuped"); var img_height_ary = new Array; $pickuped.each(function(){ var height = $(this).find("img").attr("height"); if (height) { img_height_ary.push(parseInt(height)); } var width = $(this).find("img").attr("width"); $(this).css({ //スレ画の幅に合わせる width: width, }); $(this).children("div").css({ width: width, }); }); //画像の高さの最大値を取得 var max_height_num = Math.max.apply(null, img_height_ary); $pickuped.css({ height: (max_height_num + 110) + "px", }); } } /* *スタイル設定 */ function setStyle() { var css = //マッチ文字列の背景色 ".futaba_thread_highlighter_matchedword {" + " background-color: #ff0;" + "}" + //セルの背景色 ".futaba_thread_highlighter_highlighted {" + " background-color: #FFDFE9;" + "}" + //ピックアップスレ ".futaba_thread_highlighter_pickuped {" + " min-width: 70px;" + " margin: 1px;" + " background-color: #FFDFE9;" + " border-radius: 5px;" + " float: left;" + " word-wrap: break-word;" + "}" + //ピックアップスレ本文 ".futaba_thread_highlighter_pickuped_caption {" + " min-width: 70px;" + " font-size: 12px;" + " background-color: #ffdfe9;" + " height: 80px;" + " overflow: hidden;" + "}" + ".futaba_thread_highlighter_pickuped_caption:hover {" + " position: absolute;" + " height: auto;" + " z-index: 100;" + "}"; GM_addStyle(css); } })(jQuery);