Last active
October 19, 2023 12:20
-
-
Save dafeiroc/0a8df32b182758fad093e0c28b9e2e02 to your computer and use it in GitHub Desktop.
tradingview_show_kanji.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// update on 2023-10-19 since tradingview updated some css .symbol-RsFlttSS and description-bIGHJRgI | |
// update on 2022-04-12 since tradingview updated some css .symbol-ghhqKDrt etc. | |
// Please install chrome extension https://chrome.google.com/webstore/detail/user-javascript-and-css/nbhcbdghjpllgmfilhnhkllmkecfmpld?hl=en and set https://*.tradingview.com/chart | |
window.addEventListener('load', (event) => { | |
(function () { | |
let lang = document.documentElement.lang; | |
if (lang.startsWith("zh-Hans") || lang.startsWith("ja") || lang.startsWith("en")) { | |
// !function(d,f,s){s=d.createElement("script");s.src="//j.mp/1bPoAXq";s.onload=function(){f(jQuery.noConflict(1))};d.body.appendChild(s)}(document,function($){ | |
//console.log(lang); | |
//CSS追加 | |
let add_style = document.createElement('style'); | |
add_style.type = 'text/css'; | |
add_style.innerText = 'body .kdkJpName{ padding-left:10px !important;flex:0 1 50% !important; }'; | |
add_style.innerText += 'body .kdkJpName-text{ font-size:12px !important;letter-spacing:-0.04em; }'; | |
add_style.innerText += 'body .kdkJpName-delayed{ display:block;background-color:#ff9800;width:6px;height:6px;border-radius:50%;color:transparent;margin-right:-4px!important; }'; | |
add_style.innerText += 'body .symbol-17NLytxZ{ overflow:hidden; }'; | |
add_style.innerText += 'body .kdk_ex_tool_box{ transition:0.1s; opacity:0; right:0; position:absolute; background:#d8e0f3; height:100%; padding:0 30px 0 5px; line-height:29px; font-size:13px; text-align:center;}'; | |
add_style.innerText += 'body .kdk_ex_tool_box.on{ opacity:0.92; right:0; }'; | |
add_style.innerText += 'body .kdk_ex_tool_box a{ color:#2196f3 !important; padding:0 5px;}'; | |
add_style.innerText += 'body .kdk_ex_tool_box a:hover{ text-decoration:underline; }'; | |
document.getElementsByTagName('head').item(0).appendChild(add_style); | |
function zen2han(str) { | |
var str_temp = str.replace(/[!-~]/g, | |
function(str){ | |
return String.fromCharCode(str.charCodeAt(0)-0xFEE0); | |
}); | |
return str_temp.replace(/ /g," "); | |
}; | |
function cvt() { | |
jQuery('.symbol-RsFlttSS').each(function (index, element) { //各銘柄コード行に対して処理を実行 | |
let ele_symbol = jQuery(this).attr('data-symbol-full').split(":"); | |
//console.log(ele_symbol); | |
if (ele_symbol.length == 2) { | |
let ex_name = ele_symbol[0].trim(); | |
let symbol_name = jQuery(this).closest('.symbol-RsFlttSS'); | |
let symbol_name_inner = symbol_name.find('.symbolNameText-RsFlttSS'); | |
//console.log(ex_name); | |
let symbol_name_delayed = symbol_name.find('.tv-data-mode--delayed'); //遅延中文字 | |
if (ex_name == 'TSE' || ex_name == 'HKEX' || ex_name == 'SSE' || ex_name == 'SZSE' || ex_name == 'NYSE' || ex_name == 'NASDAQ') { | |
let data_tooltip = jQuery(this).attr('data-tooltip') | |
//console.log(data_tooltip); | |
if (/<div class="description-bIGHJRgI">(.*?)<\/div>/.test(data_tooltip)) { | |
let kanji_name_grp = data_tooltip.match(/<div class="description-bIGHJRgI">(.*?)<\/div>/);//銘柄コード行から社名を取得 | |
let kanji_name = kanji_name_grp[1]; | |
if (ex_name == 'TSE' && /^\D/.test(ele_symbol[1].trim())) { | |
//文字入れ替え | |
kanji_name = kanji_name.replace('TSE MOTHERS INDEX', 'マザーズ指数'); | |
kanji_name = kanji_name.replace('FISHERY/AGRICULTURE/FORESTRY', '水産・農林業'); | |
kanji_name = kanji_name.replace('MINING INDUSTRY', '鉱業'); | |
kanji_name = kanji_name.replace('CONSTRUCTION', '建設業'); | |
kanji_name = kanji_name.replace('FOODS', '食料品'); | |
kanji_name = kanji_name.replace('TEXTILES & APPARELS', '繊維製品'); | |
kanji_name = kanji_name.replace('PULP & PAPER', 'パルプ・紙'); | |
kanji_name = kanji_name.replace('CHEMICALS', '化学'); | |
kanji_name = kanji_name.replace('PHARMACEUTICAL', '医薬品'); | |
kanji_name = kanji_name.replace('OIL & COAL PRODUCTS', '石油・石炭製品'); | |
kanji_name = kanji_name.replace('RUBBER PRODUCTS', 'ゴム製品'); | |
kanji_name = kanji_name.replace('GLASS & CERAMICS PRODUCTS', 'ガラス・土石製品'); | |
kanji_name = kanji_name.replace('IRON & STEEL', '鉄鋼'); | |
kanji_name = kanji_name.replace('NONFERROUS METALS', '非鉄金属'); | |
kanji_name = kanji_name.replace('METAL PRODUCTS', '金属製品'); | |
kanji_name = kanji_name.replace('MACHINERY', '機械'); | |
kanji_name = kanji_name.replace('ELECTRIC APPLIANCES', '電気機器'); | |
kanji_name = kanji_name.replace('TRANSPORTATION EQUIPMENT', '輸送用機器'); | |
kanji_name = kanji_name.replace('PRECISION INSTRUMENTS', '精密機器'); | |
kanji_name = kanji_name.replace('OTHER PRODUCTS', 'その他製品'); | |
kanji_name = kanji_name.replace('ELECTRIC POWER & GAS', '電気・ガス業'); | |
kanji_name = kanji_name.replace('LAND TRANSPORTATION', '陸運業'); | |
kanji_name = kanji_name.replace('MARINE TRANSPORTATION', '海運業'); | |
kanji_name = kanji_name.replace('AIR TRANSPORTATION', '空運業'); | |
kanji_name = kanji_name.replace('WAREHOUSING & HARBOR TRANSPORTATION SERVICES', '倉庫・運輸関連'); | |
kanji_name = kanji_name.replace('INFORMATION & COMMUNICATION', '情報・通信業'); | |
kanji_name = kanji_name.replace('WHOLESALE TRADE', '卸売業'); | |
kanji_name = kanji_name.replace('RETAIL TRADE', '小売業'); | |
kanji_name = kanji_name.replace('BANKS', '銀行業'); | |
kanji_name = kanji_name.replace('SECURITES & COMMODITY FUTURES', '証券、商品先物取引業'); | |
kanji_name = kanji_name.replace('INSURANCE', '保険業'); | |
kanji_name = kanji_name.replace('OTHER FINANCIAL BUSINESS', 'その他金融業'); | |
kanji_name = kanji_name.replace('REAL ESTATE', '不動産業'); | |
kanji_name = kanji_name.replace('SERVICES', 'サービス業'); | |
} | |
//console.log(index); | |
symbol_name.addClass('kdkJpName'); | |
symbol_name_inner.addClass('kdkJpName-text').text(kanji_name); | |
symbol_name_delayed.addClass('kdkJpName-delayed').text(''); | |
} | |
} | |
} | |
}); | |
} | |
//Wait Function | |
function sleep(waitSec, callbackFunc) { | |
let spanedSec = 0; | |
let id = setInterval(function () { | |
spanedSec++; | |
if (spanedSec >= waitSec) { | |
clearInterval(id); | |
if (callbackFunc) callbackFunc(); | |
} | |
}, 500); | |
} | |
//ロード完了時に実行 | |
sleep(3, function () { | |
cvt(); | |
}); | |
//ウォッチリストマウスオーバー時に再実行(ウォッチリスト・スクロール切り替え対策) | |
jQuery(".layout__area--right").on({ | |
'mouseenter': function(){ | |
cvt(); | |
//ex_tool(this); | |
}, | |
'mouseleave': function(){ | |
jQuery(this).find('.kdk_ex_tool_box').removeClass('on'); | |
} | |
}, '.symbol-RsFlttSS'); | |
jQuery('.listContainer-KFALCIeR').scroll(function () { | |
cvt(); | |
}); | |
//}); | |
} | |
})(); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment