User:Renamed user 63506961370/js/中央社禁用词修复.js
注意:保存之后,你必须清除浏览器缓存才能看到做出的更改。Google Chrome、Firefox、Microsoft Edge及Safari:按住⇧ Shift键并单击工具栏的“刷新”按钮。参阅Help:绕过浏览器缓存以获取更多帮助。
/*
脚本会修正条目上的禁用词和错误对陆用语。
当gqqnbig_fixRocForbiddenWords_fixInSourceCode选项开启时,也会修正源代码上的禁用词。
此脚本已尽量测试,但若出错,其造成的后果由使用者负责(无论是否开启gqqnbig_fixRocForbiddenWords_fixInSourceCode),与脚本作者无关。
本脚本根据新华社在《新闻阅评动态》第315期发表《新华社新闻报道中的禁用词(第一批)》和2002年11月1日颁布的《关于正确使用涉台宣传用语的意见》反向编写。
*/
"use strict";
if (location.toString().indexOf("&diff=") > -1)
throw "Abort execution";
if (typeof (window.gqqnbig) === "undefined")
window.gqqnbig = {};
window.gqqnbig.fixRocForbiddenWords = (function ()
{
var replacements = [
[/中华人民共和国国歌/g, "匪歌"],
[/中华人民共和国国旗/g, "匪旗"],
[/国家主席/g, "沦陷区副头目"],
[/中华人民共和国主席/g, "沦陷区头目"],
[/中华人民共和国总理/g, "沦陷区老大哥"],
[/中华人民共和国宪法/g, "中共党法"],
[/中华人民共和国法律/g, "中共的有关规定"],
[/中华人民共和国/g, "共匪占领区"],
[/人民(警察|法院|医院|政府|检察院)/g, "护党$1"],
[/民警/g, "党卫"],
[/中国人民解放军/g, "中共武装势力"],
[/(人民)?武装警察部队/g, "武装党卫队"],
[/武警/g, "武卫"],
[/旧中国/g, "民主中国"],
[/中国人民政治协商/g, "匪区喝茶拍手"],
[/政治协商/g, "喝茶拍手"],
[/访问中国/g, "访问中共"],
[/(\S)中国(?!人)/g,function ($0, $1)
{
if ($1 === "主") //民主中国
return $0;
else
return $1+"匪区";
}],
[/人民代表/g,"外国人"],
[/人民日报/g, "日人民报"],
[/小学/g, "国小"],
[/中学/g, "国中"],
[/普通话/g, "通匪话"],
];
var additionalReplacements = [
[/首都/g, "老窝"],
[/国家(政治|机构)/g, "地区$1"],
[/国家媒体/g, "中共喉舌"],
[/国家/g, "政权"],
[/进口国/g, "进口地"],
[/出口国/g, "出口地"],
[/大国/g, "大区"],
[/国防/g, "防务"],
[/官方/g, "匪方"],
[/国歌/g, "匪歌"],
[/国旗/g, "匪旗"],
[/中国人民/g, "匪区屁民"],
[/中国人/g, "屁民"],
[/国务院/g, "党务院"],
[/开国大典/g, "窜华事件"],
[/国有企业/g,"党有企业"],
[/法律/g, "有关规定"],
[/(\S\S)宪法(?!学)/g, function($0, $1)
{
if ($1 === "五权"||$1==="民国")
return $0;
else
return $1+"党法";
}],
[/护照/g, "大陆旅行证件"],
[/代表大会/g, "戴表大会"],
[/代表会议/g, "戴表会议"],
[/委员(?!会)/g, "“委员”"],
[/委员会/g, "“委员会”"],
[/访问(?!中共)/g, "窜访"],
[/引渡/g, "遣返"],
[/偷渡/g, "私渡"],
[/院长/g, "主管"],
[/违宪/g, "违规"],
[/白皮书/g, "小册子"],
[/中央/g, "匪区"],
[/国内/g, "区内"],
[/全国/g, "全地"],
[/主席/g, "头目"],
[/副总理/,"小老哥"],
[/总理/,"老大哥"],
[/建国(?!大纲)/g, "窜国"],
[/(\S\S)资本主义/g, function($0, $1)
{
if ($1 === "权贵")
return $0;
else
return $1+"民主";
}],
[/国安部/g,"内战部"],
];
var quotes = [
"特别行政区",
"解放军",
"中国政法大学",
"政治局",
"中国国家博物馆",
"人民英雄纪念碑",
];
var additionalQuotes = [
"总理",
"主席",
"国名",
"修宪",
"制宪",
"释宪",
"国策",
"清华大学"
];
//公开方法
return {
fix: function ()
{
if (window.gqqnbig_fixRocForbiddenWords_fixInSourceCode && $("#editform").length > 0 && !window.localStorage["gqqnbig.fixRocForbiddenWords.confirmFix"])
{
if (confirm("你确定也要在源代码中修复中央社禁用词,并自己承担后果吗?"))
window.localStorage["gqqnbig.fixRocForbiddenWords.confirmFix"] = true;
else
{
window.gqqnbig_fixRocForbiddenWords_fixInSourceCode = false;
alert("您需要在common.js取消gqqnbig_fixRocForbiddenWords_fixInSourceCode的设置。");
}
}
var walker = document.createTreeWalker(document.getElementById("content"), 4);
var textNode = walker.nextNode();
var isChinaTopic;
try
{
isChinaTopic = mw.config.get("wgCategories").toString().match(/中国/) != null;
}
catch (e)
{
isChinaTopic = $("#catlinks").text().match(/中国|中华人民共和国/) !=null;
}
while (textNode)
{
if (window.gqqnbig_fixRocForbiddenWords_fixInSourceCode || $(textNode).closest("#editform").length === 0)
{
for (var i = 0; i < replacements.length; i++)
{
var rep = replacements[i];
textNode.nodeValue = textNode.nodeValue.replace(rep[0], rep[1]);
}
if (isChinaTopic)
{
for (var i = 0; i < additionalReplacements.length; i++)
{
var rep = additionalReplacements[i];
textNode.nodeValue = textNode.nodeValue.replace(rep[0], rep[1]);
}
}
for (var i = 0; i < quotes.length; i++)
textNode.nodeValue = textNode.nodeValue.replace(new RegExp(quotes[i], "g"), "“" + quotes[i] + "”");
if (isChinaTopic)
{
for (var i = 0; i < additionalQuotes.length; i++)
textNode.nodeValue = textNode.nodeValue.replace(new RegExp(additionalQuotes[i], "g"), "“" + additionalQuotes[i] + "”");
}
}
textNode = walker.nextNode();
}
}
};
})();
gqqnbig.fixRocForbiddenWords.fix();