User:Gary/stock symbol formatter.js

// Generated by CoffeeScript 2.1.1 (function { /*    STOCK SYMBOL FORMATTER    Description: Converts stock symbols links to link to Google Finance.    A full list of supported stock exchanges is available here:    http://www.google.com/googlefinance/disclaimer/  */  var stockSymbols;

stockSymbols = function { var exchanges; if ((window.mw.util.getParamValue('disable') === 'stocks' || window.mw.config.get('wgCanonicalNamespace') !== '' || window.mw.config.get('wgAction') !== 'view') && window.mw.config.get('wgPageName') !== 'Wikipedia:Sandbox' && window.mw.config.get('wgPageName') !== 'User:Gary_King/Sandbox') { return false; }   // Stock exchanges exchanges = { // Australian Securities Exchange 'ASX': '//www.asx.com.au/asx/research/companyInfo.do?by=asxCode&asxCode=', // Stock Exchange of Thailand 'BAK': '//www.set.or.th/set/companyprofile.do?symbol=', // Italy Stock Exchange 'BIT': '//www.borsaitaliana.it/borsa/azioni/scheda/', // Bombay Stock Exchange 'BOM': '//www.bseindia.com/bseplus/StockReach/AdvanceStockReach.aspx?scripcode=', // Brazilian Stock Exchange 'BVMF': '//www.bmfbovespa.com.br/cias-listadas/empresas-listadas/', // Euronext 'EBR': '//euronext.com/products/equities/', // Frankfurt Stock Exchange 'ETR': '//www.boerse-frankfurt.de/EN/index.aspx?pageID=23&Query=', // Frankfurt Stock Exchange 'FRA': '//www.boerse-frankfurt.de/en/equities/search/result?name_isin_wkn=', // Helsinki Stock Exchange 'HEL': '//www.nasdaqomxnordic.com/shares/shareinformation?Instrument=', // Hong Kong Stock Exchange 'HKG': '//www.hkex.com.hk/eng/invest/company/quote_page_e.asp?WidCoID=', // JASDAQ Securities Exchange 'JSD': '//www.ose.or.jp/e/listed_company_info/description/company_outline?security_code=', // Johannesburg Stock Exchange 'JSE': 'https://www.jse.co.za/Search?k=', // London Stock Exchange 'LON': '//www.londonstockexchange.com/exchange/searchengine/search.html?q=', // Madrid Stock Exchange 'MCE': '//www.bolsamadrid.es/ing/aspx/Empresas/FichaValor.aspx?ISIN=', // Mutual Funds 'MUTF': '//finance.yahoo.com/q?exchange=MUTF&s=', // Mexican Stock Exchange 'MXK': '//www.bmv.com.mx/wb3/wb/BMV/BMV_busqueda_de_valores/_rid/222/_mto/3/_url/BMVAPP/componenteSelectorInput.jsf?cadenaCotizacion=', // NASDAQ 'NASDAQ': '//www.nasdaq.com/symbol/', // National Stock Exchange of India 'NSE': '//www.nseindia.com/marketinfo/companyinfo/companysearch.jsp?cons=', // New York Stock Exchange 'NYSE': '//www.nyse.com/quote/XNYS:', // NYSE MKT 'NYSEMKT': 'https://www.nyse.com/quote/XASE:', // New Zealand Stock Exchange 'NZE': '//nzx.com/markets/NZSX/', // OTC Bulletin Board 'OTC1': '//www.otcbb.com/asp/Info_Center.asp?symbol=', // Pink Sheets 'PINK': '//www.otcmarkets.com/stock/', // Philippine Stock Exchange 'PSE': '//www.pse.com.ph/html/MarketInformation/stockinfo.jsp?securitySymbol=', // Brazil Stock Exchange 'SAO': '//www.bovespa.com.br/home/ExecutaAcaoCotRapXSL.asp?gstrCA=', // Korea Exchange 'SEO': '//eng.krx.co.kr/mki/stc/stc_d_001.jsp?isu_cd=', // Shanghai Stock Exchange 'SHA': '//www.sse.com.cn/sseportal/webapp/datapresent/SSEQueryListCmpAct?', // Taiwan Stock Exchange 'TPE': '//www.twse.com.tw/pdf/en/', // Toronto Stock Exchange 'TSE': '//web.tmxmoney.com/quote.php?qm_symbol=', // Tokyo Stock Exchange 'TYO': '//www2.tse.or.jp/tseHpFront/StockSearch.do?callJorEFlg=1&method=&topSearchStr=', // SIX Swiss Exchange 'VTX': '//www.six-swiss-exchange.com/search/quotes_en.html?security=', // Warsaw Stock Exchange 'WSE': '//www.gpw.pl/karta_spolki_en/' };   // Get all elements with "external" class return $('.external').each(function(index, element) {     var exchange, lastCharacter, link, newNode, symbol, url;      link = $(element);      symbol = '';      if (!link.contents.length || !link.contents.eq(0).text) {        return true;      }      for (exchange in exchanges) {        if (link.attr('href').indexOf(exchanges[exchange]) === -1) {          continue;        }        symbol = link.contents.eq(0).text;        // For OTC exchange only, where last character is an integer        // lastCharacter = exchange.substr(exchange.length - 1, 1);        // symbol = parseInt(lastCharacter) ? exchange.substring(0, exchange.length - 1) + ':' + symbol : exchange + ':' + symbol;        break;      }      if (symbol) {        url = 'http://finance.yahoo.com/q?s=' + symbol;        link.attr('href', url);        newNode = $(' ').append(link.clone);        return link.replaceWith(newNode); }   });  };

$(function {   return stockSymbols;  });

}).call(this);