Skip to content

Instantly share code, notes, and snippets.

@dafeiroc
Last active October 19, 2023 12:20
Show Gist options
  • Save dafeiroc/0a8df32b182758fad093e0c28b9e2e02 to your computer and use it in GitHub Desktop.
Save dafeiroc/0a8df32b182758fad093e0c28b9e2e02 to your computer and use it in GitHub Desktop.
tradingview_show_kanji.js
// 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 &#38; APPARELS', '繊維製品');
kanji_name = kanji_name.replace('PULP &#38; PAPER', 'パルプ・紙');
kanji_name = kanji_name.replace('CHEMICALS', '化学');
kanji_name = kanji_name.replace('PHARMACEUTICAL', '医薬品');
kanji_name = kanji_name.replace('OIL &#38; COAL PRODUCTS', '石油・石炭製品');
kanji_name = kanji_name.replace('RUBBER PRODUCTS', 'ゴム製品');
kanji_name = kanji_name.replace('GLASS &#38; CERAMICS PRODUCTS', 'ガラス・土石製品');
kanji_name = kanji_name.replace('IRON &#38; 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 &#38; 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 &#38; HARBOR TRANSPORTATION SERVICES', '倉庫・運輸関連');
kanji_name = kanji_name.replace('INFORMATION &#38; 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 &#38; 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