// ==UserScript==
// @name CB时光鸡
// @namespace http://www.fishlee.net/
// @version 1.2
// @description 一只带你看过去的鸡
// @author 木鱼(iFish)
// @match http://www.cnbeta.com/articles/*
// @grant none
// @run-at document-end
// ==/UserScript==
(function () {
'use strict';
var injectFunction = function (fun) {
if (typeof (fun) === 'string')
fun = fun + '';
var script = document.createElement("script");
script.textContent = '(' + fun + ')();';
document.head.appendChild(script);
document.head.removeChild(script);
};
var injectStyle = function (style) {
var ele = document.createElement("style");
ele.textContent = style;
document.head.appendChild(ele);
};
injectStyle("#cbtc{display:none;padding:10px;background:#fafbde;border:1px solid #cdd073;border-bottom:none;color:#707143}#cbtc a{color:#707143;font-weight:bold;text-decoration:none}#cbtc a:hover{text-decoration:underline}#cbtc a.extra{float:right}");
//main
injectFunction(function () {
var injectFunction = function (fun) {
if (typeof (fun) === 'string')
fun = fun + '';
var script = document.createElement("script");
script.textContent = '(' + fun + ')();';
document.head.appendChild(script);
document.head.removeChild(script);
};
var entry = function () {
setTimeout(checkLoop, 1000);
};
var checkLoop = function () {
var ems = $("div.post_count em");
if (!ems.length) {
setTimeout(checkLoop, 1000);
} else {
var total = parseInt($.trim(ems[0].innerText));
var showing = parseInt($.trim(ems[1].innerText));
if (document.querySelector("div.cb-comment-close") || (total && !showing)) {
doCommentShadow();
}
}
}.bind(this);
var patchMethod = function () {
var code = $.cmtOnload + '';
code = code.replace(/,\s*bindAction\s*=[\w\W]*initData\(/i, ";GV.COMMENTS.CLICKED=0;initData(");
code = code.replace(/bindAction\(\);?/i, "$('#cbtc').fadeIn();");
code = code.replace(/type\s*:\s*['"]POST['"],/i, "type:'GET',");
code = code.replace(/url\s*:\s*GV\.DETAIL\.POST_VIEW_URL/i,
"url: 'http://cb.apps.fishlee.net/comment/archive/'+GV.DETAIL.SID+'-'+GV.COMMENTS.MORENUM+'-'+page+'.json'");
code = code.replace(/cache\s*:\s*!\s*0/i, "cache: 1");
code = code.replace(/data\s*:\s*{\s*['"]op['"]\s*:\s*page\+.*?}\s*,/i, "data:{csrf_token:null},");
return code;
};
var doCommentShadow = function () {
if (typeof GV === 'undefined')
window.GV = {};
if (!GV || !GV.DETAIL || GV.DETAIL.SID < 493587)
return;
GV.COMMENTS.POSTED = 0;
var scripts = [];
//restore comments
if (!GV.EMOTION) {
var data = JSON.parse(localStorage.getItem("cbemotion") || "{}");
if (!data || !data.time || (new Date().getTime() - data.time) / 1000 > 60 * 60 * 24) {
data = {
time: new Date().getTime(),
data: GV && GV.EMOTION ||
{
PAGE_SIZE: 30,
SHOW_SIZE: 2,
EMO_DATA: [
{
"category": "\u5927\u7ae0\u9c7c",
"emotion": [
{ "sign": "[s:\u7231\u5fc3]", "url": "\/assets\/images\/emotion\/octopus\/01.gif", "name": "\u7231\u5fc3" },
{ "sign": "[s:\u6c57]", "url": "\/assets\/images\/emotion\/octopus\/02.gif", "name": "\u6c57" },
{ "sign": "[s:\u9ed1]", "url": "\/assets\/images\/emotion\/octopus\/03.gif", "name": "\u9ed1" },
{ "sign": "[s:\u52a0\u73ed]", "url": "\/assets\/images\/emotion\/octopus\/04.gif", "name": "\u52a0\u73ed" },
{ "sign": "[s:\u8d31\u7b11]", "url": "\/assets\/images\/emotion\/octopus\/05.gif", "name": "\u8d31\u7b11" },
{ "sign": "[s:\u60ca\u8bb6]", "url": "\/assets\/images\/emotion\/octopus\/06.gif", "name": "\u60ca\u8bb6" },
{ "sign": "[s:\u62a0\u9f3b]", "url": "\/assets\/images\/emotion\/octopus\/07.gif", "name": "\u62a0\u9f3b" },
{ "sign": "[s:\u54ed]", "url": "\/assets\/images\/emotion\/octopus\/08.gif", "name": "\u54ed" },
{ "sign": "[s:\u55b7]", "url": "\/assets\/images\/emotion\/octopus\/09.gif", "name": "\u55b7" },
{ "sign": "[s:\u6c99\u53d1]", "url": "\/assets\/images\/emotion\/octopus\/10.gif", "name": "\u6c99\u53d1" },
{ "sign": "[s:\u751f\u6c14]", "url": "\/assets\/images\/emotion\/octopus\/11.gif", "name": "\u751f\u6c14" },
{
"sign": "[s:\u53cc\u8d1f\u4e94]",
"url": "\/assets\/images\/emotion\/octopus\/12.gif",
"name": "\u53cc\u8d1f\u4e94"
}, { "sign": "[s:\u7b11]", "url": "\/assets\/images\/emotion\/octopus\/13.gif", "name": "\u7b11" },
{ "sign": "[s:\u6655]", "url": "\/assets\/images\/emotion\/octopus\/14.gif", "name": "\u6655" }
]
}
]
}
};
localStorage.setItem("cbemotion", JSON.stringify(data));
}
scripts.push("GV.EMOTION=" + JSON.stringify(data.data) + ";");
}
scripts.push("(" + patchMethod() + ")('.commt_list');");
$(".commt_list").show();
$("#J_commt_list").prepend("<div id='cbtc'>评论已被CB关闭显示。本页评论由 <a href='http://www.fishlee.net/soft/cbtc/' target='_blank' style=''>CB时光鸡</a> 为您提供快照!偶不是一只普通的鸡!<a href='http://www.fishlee.net/soft/cbtc/' target='_blank' class='extra'>了解更多...</a></div>");
injectFunction("function(){" + scripts.join("") + ";}");
};
entry();
});
})();