雪球助手

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

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

// ==UserScript==
// @name         雪球助手
// @namespace    http://tampermonkey.net/
// @version      0.7
// @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('60') === 0) {
        return 'sh';
      } else {
        return 'sz';
      }
    }

    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 oldTitleSelector = 'tr[data-symbol] span.title';
    var oldSymbolSelector = 'tr[data-symbol] span.subtitle';
    $(document.body).on('mouseenter', oldTitleSelector, function(e) {
      var code = $(this).parents('tr[data-symbol]').attr('data-symbol');
      $(this).parent().attr('href', '/S/' + code);
    });
    $(document.body).on('mouseenter', oldSymbolSelector, function(e) {
      var code = $(this).parents('tr[data-symbol]').attr('data-symbol');
      var url = getLixingrenStockPageUrl(code);
      if (!url) {
        console.log('不支持的股票代码:' + code);
        return;
      }
      $(this).parent().attr('href', url);
    });

    /**
     * 股票页跳转到理性仁
     */
    var titleSelector = '#app .stock-name';
    $(titleSelector).eq(0).after('<div style="float: left;margin: 0 20px;">' +
      '<a class="lxr-icon" target="_blank"><img style="width: 20px; height: 20px; vertical-align: middle;" ' +
      ' src="https://www.lixinger.com/static/img/logo50x50.png" 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);
      }
    });
})();