Greasy Fork is available in English.

百度貼吧繁體轉碼

在百度贴吧发帖时能全自动挑选出需要转码的文字进行转码,支持主楼、楼中楼、标题

As of 26/09/2014. See the latest version.

// ==UserScript==
// @name        百度貼吧繁體轉碼
// @namespace   https://greasyfork.org/scripts/4450-%E7%99%BE%E5%BA%A6%E8%B2%BC%E5%90%A7%E7%B9%81%E9%AB%94%E8%BD%89%E7%A2%BC
// @version     0.6.3
// @description 在百度贴吧发帖时能全自动挑选出需要转码的文字进行转码,支持主楼、楼中楼、标题
// @include     http://tieba.baidu.com/*
// @grant       none
// @icon        http://imgsrc.baidu.com/forum/pic/item/88f12f6d55fbb2fbba1435054c4a20a44623dc8e.jpg
// @author      Ureys@BaiduTieba
// @copyright   2014+, Ureys@BaiduTieba
// @license     GPL version 3
// ==/UserScript==

myScript = function () {
	const tcList = '⿰⿱⿲⿳⿴⿵⿶⿷⿸⿹⿺⿻㑳㘚㥮㩳䎱䙡䝼䥇䦛䦟䱷丟並丼乾亂亙亞伕佇佈佔佪併來侖侚侶侷俁係俠倀倆倉個們倖倣倫偉偪側偵偺偽傑傖傘備傚傢傭傯傳傴債傷傾僂僅僉僊僑僕僞僣僥僨僱價儀儂億儅儈儉儐儔儕儘償優儲儷儸儺儻儼兇兌兒兗內兩冊冑冪凅凈凍凜凱別刪剄則剉剋剎剗剛剝剮剴創剷劃劄劇劉劊劌劍劑劻勁動勗務勛勝勞勢勣勦勩勱勳勵勸勻匋匭匯匱區卄協卬卹卻厙厭厲厴參叡叢吋后吳吶呂呎咷咼員唄唝唸問啓啗啞啟啢啣喎喚喪喫喬單喲嗆嗇嗎嗚嗩嗶嘆嘍嘔嘖嘗嘜嘩嘮嘯嘰嘵嘸噁噓噝噠噥噦噯噲噴噸噹嚀嚇嚌嚐嚕嚙嚥嚦嚨嚮嚳嚴嚶囀囁囂囅囈囉囌囑囓囪圇國圍圏園圓圖團坵埜埡執埼堅堊堖堝堯報場塊塋塏塒塗塚塢塤塵塹墊墑墜墫墮墳墻墾壇壎壓壘壙壚壞壟壢壩壯壺壽夠夢夾奐奧奩奪奮妝妳姍姦姪娛婁婦婬婭媧媮媯媼媽媿嫋嫗嫵嫻嫿嬈嬋嬌嬙嬝嬡嬤嬪嬭嬰嬸孃孌孫學孿宮寘寢實寧審寫寬寵寶將專尋對導尷屆屍屜屝屢層屨屬岡峴島峽崍崑崗崙崠崢崳嵐嵒嶁嶄嶇嶔嶗嶠嶢嶧嶨嶸嶺嶼嶽巋巒巔巖巰巹帥師帳帶幀幃幗幘幟幣幫幬幵幷幹幾庂庫廁廂廄廈廎廚廝廟廠廡廢廣廩廬廱廳弒弔弳張強彆彈彌彎彙彚彥彫彿後徑從徠復徬徵徹恆恥悅悵悶悽惇惡惱惲惷惻愛愜愨愴愷愾慄慇態慍慘慚慟慣慪慫慮慳慶慼慾憂憊憐憑憒憚憤憫憮憲憶懃懇應懌懍懞懟懣懨懲懶懷懸懺懼懾戀戇戉戔戧戩戰戲戶扐扞扱扺抃抔抴拋拑挌挶挾捨捫捲掃掄掆掗掙掛採揀揚換揮揹搆損搖搗搟搥搨搯搶搾摀摃摑摜摟摯摳摶摻撈撏撐撓撚撟撢撣撥撦撫撲撳撻撾撿擁擄擇擊擋擓擔據擠擡擣擬擯擰擱擲擴擷擺擻擼擾攄攆攏攔攖攙攛攜攝攢攣攤攪攬攷敗敘敵數斂斃斕斬斷於旂旛昇時晉晝晞晢晳晻暈暉暘暢暫暱暸曄曆曇曉曏曖曠曨曬書會朢朧朮杇東枴柵柺栒桮桿梔梘條梟梱棄棖棗棟棡棧棲椏楄楊楓楙楜楨業極榦榪榮榿槃構槍槓槧槨槳樁樂樅樑樓標樞樣樸樹樺橈橋機橢橦橫檁檉檔檜檟檢檣檯檳檸檻櫂櫃櫐櫓櫚櫛櫝櫞櫟櫥櫧櫨櫪櫫櫬櫳櫸櫺櫻欄權欏欒欖欞欸欽歎歐歟歡歲歷歸歿殀殘殞殤殫殭殮殯殲殺殼殽毀毆毌毘毬毿氈氌氣氫氬氳氾汍汎汙決沍沒沖況泝洟洩洶浬浹涇涼淒淚淥淨淪淵淶淺渙減渢渦測渾湊湞湣湧湯溈準溝溫溮溳溼滄滅滌滎滬滯滲滷滸滻滾滿漁漊漚漢漣漬漲漵漸漿潁潑潔潛潟潤潯潰潷潿澀澂澆澇澔澗澠澤澦澩澮澱澾濁濃濕濘濛濜濟濤濫濬濰濱濺濼濾瀁瀅瀆瀉瀋瀏瀕瀘瀝瀟瀠瀦瀧瀨瀰瀲瀾灃灄灑灕灘灝灣灤灩災炤炰為烏烴無煉煒煖煙煢煥煩煬熒熗熱熾燁燄燈燉燐燒燙燜營燦燬燭燴燻燼燾燿爍爐爛爭爲爺爾牆牘牠牴牽犖犛犢犧狀狚狹狽猙猶猻獁獃獄獅獎獨獪獫獮獰獲獵獷獸獺獻獼玀玅玆玨珪珮現琱琺琿瑋瑣瑤瑩瑪瑯瑲璉璡璣璦環璽璿瓊瓏瓔瓖瓚甌甕產産甦甪畝畢畫畬異當疇疊疿痙痠痲痳痺痾瘂瘉瘋瘍瘓瘞瘡瘧瘺瘻療癆癇癉癒癘癟癡癢癤癥癧癩癬癭癮癰癱癲發皁皚皰皸皺盃盜盞盡監盤盧盪眥眾睏睜睞睪瞇瞘瞜瞞瞭瞼矇矓矚矯砲硃硤硨硯碕碩碪碭碸確碼磑磚磣磧磯磽礄礎礙礦礪礫礬礱祂祅祇祐祼祿禍禎禕禦禪禮禱禿秈秏稅稈稜稟稨種稱穀穇穌積穎穡穢穨穩穫窩窪窮窯窵窶窺竄竅竇竊競笻筆筍筧筴箄箇箋箏箠節範築篋篛篠篤篩篲篳簀簍簑簞簡簣簫簷簽簾籃籌籐籙籜籟籠籤籥籩籪籬籮籲粧粵糝糞糧糰糲糴糶糾紀紂約紅紆紇紈紉紋納紐紓純紕紖紗紘紙級紛紜紝紡紬紮細紱紲紳紹紺紼紿絀終絃組絆絎結絕絛絝絞絡絢給絨絰統絲絳絹綁綃綆綈綏綑經綜綞綠綢綣綫綬維綰綱網綴綵綸綹綺綻綽綾綿緄緇緊緋緒緔緗緘緙線緝緞締緡緣緦編緩緬緯緱緲練緶緹緻縈縉縊縋縐縑縕縗縚縛縝縞縟縣縫縭縮縯縱縲縳縴縵縶縷縹總績繃繅繆繈繒織繕繙繚繞繡繢繩繪繫繭繯繰繳繹繼繽繾纈纊續纍纏纓纔纖纘纜缽缾罈罌罦罰罵罷羅羆羈羋羥羨義羶習翬翹耑耡耤耬耮聖聞聯聰聲聳聵聶職聹聽聾肅肏肐胇胊脅脈脛脣脩脫脹腎腖腡腦腫腳腸膃膆膕膚膞膠膩膽膾膿臉臍臏臕臘臙臚臟臠臢臥臨臺與興舉舊舋舖艙艣艤艦艫艱艷艸芻苧苺茍茲荅荊荳莊莖莢莧菫華菴萇萊萬萵葉葒著葤葦葯葷蒐蒔蒞蒼蓀蓆蓋蓮蓯蓴蓽蔆蔔蔞蔣蔥蔦蔭蕁蕆蕎蕒蕕蕘蕢蕩蕪蕭蕷薈薊薌薑薔薙薟薦薩薺藍藎藝藥藪藭藶藷藹藺蘀蘄蘆蘇蘊蘋蘗蘚蘞蘢蘭蘺蘿處虖虛虜號虧虯蛺蛻蜆蜺蝕蝟蝦蝨蝸螄螞螢螻蟄蟈蟎蟣蟬蟯蟲蟶蟺蟻蠅蠆蠍蠐蠑蠔蠟蠣蠨蠱蠶蠷蠻衆衊衒術衚衛衝衹袞袪裊裏補裝裡製複褎褲褳褸褻襉襖襝襠襤襪襬襯襲襾覈見覎規覓視覘覜覡覦親覬覯覲覷覺覽覿觀觔觝觴觶觸訂訃計訊訌討訐訓訕訖託記訛訝訟訢訣訥訩訪設許訴訶診註証詁詆詎詐詒詔評詗詘詛詞詠詡詢詣試詩詫詬詭詮詰話該詳詵詶詻詼詿誄誅誆誇誌認誑誒誕誘誚語誠誡誣誤誥誦誨說説誰課誶誹誼調諂諄談諉請諍諏諑諒論諗諛諜諝諞諠諢諤諦諧諫諭諮諱諳諶諷諸諺諼諾謀謁謂謄謅謊謎謐謔謖謗謙謚講謝謠謨謫謬謳謹謼謾譁譆證譎譏譔譖識譙譚譜譟譫譭譯議譴護譽譾讀讅變讌讎讒讓讕讖讚讜讞谿豈豎豐豔豖豬豶貍貓貝貞負財貢貧貨販貪貫責貯貰貲貳貴貶買貸貺費貼貽貿賀賁賂賃賄賅資賈賊賑賒賓賕賙賚賜賞賠賡賢賣賤賦賧質賬賭賴賵賸賺賻購賽賾贄贅贈贊贋贍贏贐贓贖贛趕趙趨趲跡跼踐踡踫踰踴蹌蹕蹟蹠蹣蹤蹧蹺躉躊躋躍躑躒躓躕躚躡躥躦躪軀車軋軌軍軒軔軛軟軤軫軲軸軹軺軻軼軾較輅輇載輊輒輓輔輕輛輜輝輞輟輥輦輩輪輯輳輸輻輾輿轂轄轅轆轉轍轎轔轟轡轢轤辦辭辮辯農迆迴迺逕這連週進遊運過達違遙遜遞遠適遲遷選遺遼邁還邇邊邏邐郟郵鄆鄉鄒鄔鄖鄧鄭鄰鄲鄴鄶鄺酈酖醃醆醜醞醫醬醱醼釀釁釃釅釆釋釐釓釔釕釗釘釙針釣釤釦釧釩釵釷釹釺釾鈀鈁鈃鈄鈈鈉鈍鈐鈑鈔鈕鈞鈣鈥鈦鈧鈮鈰鈳鈴鈷鈸鈹鈺鈽鈾鈿鉀鉅鉆鉈鉉鉋鉍鉑鉕鉗鉚鉛鉞鉢鉤鉦鉬鉭鉶鉸鉺鉻鉿銀銃銅銑銓銖銘銚銜銠銣銥銦銨銩銪銫銬銱銲銳銷銹銻銼鋁鋃鋅鋇鋌鋏鋒鋝鋟鋣鋤鋥鋦鋨鋩鋪鋮鋯鋰鋱鋶鋸鋻鋼錁錄錆錇錈錐錒錕錘錙錚錛錟錠錢錦錨錫錮錯錳錶錸鍀鍁鍃鍆鍇鍊鍋鍍鍔鍘鍚鍛鍤鍥鍩鍬鍰鍵鍶鍺鍼鍾鎂鎄鎇鎊鎌鎔鎖鎗鎘鎚鎡鎢鎣鎦鎧鎩鎪鎬鎮鎰鎳鎵鎿鏃鏇鏈鏌鏍鏑鏗鏘鏜鏝鏞鏟鏡鏢鏤鏨鏰鏵鏷鏹鏺鏽鐃鐉鐋鐐鐒鐓鐔鐘鐙鐝鐠鐥鐦鐧鐨鐫鐮鐯鐲鐳鐵鐶鐸鐺鐿鑄鑊鑌鑑鑒鑔鑕鑞鑠鑣鑤鑥鑪鑭鑰鑲鑵鑷鑹鑼鑽鑾鑿钁钂長門閂閃閆閉開閌閎閏閑閒間閔閘閡閣閤閥閨閩閫閬閭閱閶閹閻閼閽閾閿闃闆闇闈闊闋闌闐闓闔闕闖關闞闡闢闥阨阬阯陏陘陝陞陣陰陳陸陽隄隉隊階隕際隤隨險隱隴隸隻雋雖雙雛雜雞離難雲電霤霧霽靂靄靆靈靉靚靜靦靨鞏鞦韁韃韆韉韋韌韍韓韙韜韞韻響頁頂頃項順頇須頊頌頎頏預頑頒頓頗領頜頡頤頦頫頭頰頲頷頸頹頻顆題額顎顏顒顓顔願顙顛類顢顥顧顫顬顯顰顱顳顴風颮颯颱颳颶颸颺颼飀飄飆飈飛飢飥飩飪飫飭飯飲飴飼飽飾飿餃餄餅餈餉養餌餎餏餑餒餓餔餘餚餛餜餞餡館餬餱餳餵餶餷餺餼餽餾餿饃饅饈饉饊饋饌饑饒饗饜饞饟馬馭馮馱馳馴駁駐駑駒駔駕駘駙駛駝駟駢駭駮駱駸駿騁騃騅騍騎騏騖騙騣騫騭騮騰騶騷騸騾驀驁驂驃驄驅驊驍驏驕驗驚驛驟驢驤驥驪骯髏髒體髕髖髣髮鬆鬍鬚鬢鬥鬧鬨鬩鬮鬱魎魘魚魛魨魯魴魷鮁鮃鮍鮐鮑鮒鮓鮚鮞鮣鮦鮪鮫鮭鮮鮺鯀鯁鯇鯉鯊鯔鯖鯗鯛鯝鯡鯢鯤鯧鯨鯪鯫鯰鯴鯽鯿鰂鰈鰉鰌鰍鰒鰓鰛鰜鰟鰠鰣鰥鰧鰨鰩鰭鰱鰲鰳鰵鰷鰹鰻鰼鰾鱅鱈鱉鱒鱔鱖鱗鱘鱝鱟鱠鱣鱧鱨鱭鱷鱸鱺鳥鳧鳩鳳鳴鳶鳾鴆鴇鴈鴉鴒鴕鴛鴝鴞鴟鴣鴦鴨鴯鴰鴴鴷鴻鴿鵁鵂鵃鵑鵒鵓鵜鵝鵠鵡鵪鵬鵮鵯鵰鵲鶄鶇鶉鶊鶏鶓鶖鶘鶚鶡鶥鶩鶪鶬鶯鶱鶴鶺鶻鶼鶿鷂鷄鷉鷓鷖鷗鷙鷚鷥鷦鷯鷰鷲鷳鷴鷸鷹鷺鸇鸊鸌鸕鸚鸛鸝鸞鹵鹹鹺鹼鹽麗麥麩麵麼黃黌點黨黲黴黶黷黽黿鼇鼉鼕鼴齊齋齎齏齒齔齙齜齟齠齡齣齦齧齪齬齲齶齷龍龐龑龔龕龜';
	function isT(c) {
		var l = 0,
		h = tcList.length - 1,
		m;
		while (l <= h) {
			m = Math.floor((l + h) / 2);
			if (tcList[m] > c)
				h = m - 1;
			else if (tcList[m] < c)
				l = m + 1;
			else
				return true;
		}
		return false;
	}

	function A2W(s) {
		var r = "",
		cd,
		nt,
		i;
		for (i = 0; i < s.length; i++) {
			if (s[i] == '`') {
				i++;
				cd = i;
				while (s[i] != '`' && i < s.length)
					i++;
				r += s.substr(cd, i - cd)
				.replace(/\[lbk\]/g, '[')
				.replace(/\[rbk\]/g, ']');
			} else {
				cd = s.charCodeAt(i);
				nt = s.charCodeAt(i + 1);
				if (0xD800 <= cd && cd <= 0xDBFF && 0xDC00 <= nt && nt <= 0xDFFF) {
					r += '&\011#' + ((cd - 0xD800) * 0x400 + nt - 0xDC00 + 0x10000) + ';';
					++i;
				} else if (isT(s[i]))
					r += '&\011#' + cd + ';';
				else
					r += s[i];
			}
		}
		return r.replace(/\&\#39;/g, '&\011#39;');
	}

	function tamperZl() {
		if (typeof test_editor !== 'undefined') {
			test_editor.getContentUbb = function () {
				return A2W(UE.utils.html2ubb(test_editor.getContent()));
			}
			test_poster.getTitle = function () {
				return (test_poster.$title) ? A2W(test_poster.$title.val()) : "";
			}
		}
	}

	function tamperLzl() {
		if (typeof LzlEditor !== 'undefined' && LzlEditor["_s_p"]) {
			LzlEditor._s_p._getUbbContent = function () {
				return LzlEditor._s_p._getHtml();
			}
			LzlEditor._s_p._getHtml = function () {
				return A2W(UE.utils.html2ubb(this._se.getContent()));
			}
		}
	}

	document.addEventListener('DOMSubtreeModified', tamperLzl, false);
	document.addEventListener('DOMSubtreeModified', tamperZl, false);
}

myScriptText = myScript.toString().replace(/(^function.*?\(\)\s*?\{|\}$)/g, '');
function appendScript(e) {
	if (typeof tamperZl == 'undefined' || typeof tamperLzl == 'undefined')
		document.head.appendChild(document.createElement('script')).innerHTML = myScriptText;
}
document.addEventListener('DOMContentLoaded', appendScript, false);
appendScript();