雪球助手

方便跳转到理性仁网站查看个股数据

目前为 2017-12-22 提交的版本。查看 最新版本

// ==UserScript==
// @name         雪球助手
// @namespace    http://tampermonkey.net/
// @version      0.6
// @description  方便跳转到理性仁网站查看个股数据
// @author       小紫baby
// @include      /^https:\/\/xueqiu\.com.*/
// @grant        none
// ==/UserScript==

/*eslint-disable*/
(function () {
    'use strict';

    function getMarketCode(code) {
      var len = code.toString().length;
      if ([5, 6].indexOf(len) === -1) {
        console.warn('股票代码未知:' + code);
        return;
      }

      if (len === 5) return 'hk';
      if (code.indexOf('00') === 0) {
        return 'sz';
      }

      if (code.indexOf('60') === 0) {
        return 'sh';
      }

      return '';
    }

    function normalizeCode(code) {
      return code.replace(/[a-z]+/gi, '')
    }

    function getLixingrenStockPageUrl(stockCode) {
      stockCode = normalizeCode(stockCode);
      var marketCode = getMarketCode(stockCode);
      if (!marketCode) return '';

      return 'https://www.lixinger.com/analytics/company/' + marketCode + '/' + stockCode + '/detail/fundamental/value';
    }

    /**
     * 主页自选股跳转到理性仁
     */
    var linkSelector = '#optional tr.sortable a.code';
    $(document.body).on('click', linkSelector, function(e) {
        var href = $(this).attr('href').toLowerCase();
        if (href.indexOf('www.lixinger.com') > -1) {
          return;
        }

        var code = href.match(/\d+/);
        if (code.length === 0) {
          console.warn('未知信息:' + href);
          return;
        }
        code = code[0];
        $(this).attr('href', getLixingrenStockPageUrl(code));
    });

    /**
     * 兼容旧版主页
     */
    var oldVersionTrSelector = 'tr[data-symbol] a.codeName';
    $(document.body).on('mouseenter', oldVersionTrSelector, function() {
        var span = $(this).find('span.symbol');
        if (!span.length) {
          return;
        }

        var code = span.text();
        var url = getLixingrenStockPageUrl(code);
        if (url) {
          span.replaceWith('<a class="symbol" target="_blank" href="' + url + '">' + code + '</a>');
        }
    });

    /**
     * 股票页跳转到理性仁
     */
    var titleSelector = '#app .stock-name';
    if (/\/S\/\d+/.test(location.pathname)) {
      $(titleSelector).eq(0).after('<div style="float: left;width: 16px; height: 16px;margin: 0 16px;">' +
        '<a class="lxr-icon" target="_blank"><img src="https://www.lixinger.com/static/img/favicon.ico" style="vertical-align: middle;" /></a></div>');
      $('.lxr-icon').one('mouseenter', function() {
        var code = location.pathname.match(/\d+/)[0];
        var url = getLixingrenStockPageUrl(code);
        if (url) {
          $(this).attr('href', url);
        }
      });
    }
})();