Greasy Fork 支持简体中文。

雪球助手

愉快地在雪球、理性仁等网站之间玩耍(跳转)

目前為 2017-12-24 提交的版本,檢視 最新版本

// ==UserScript==
// @name         雪球助手
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  愉快地在雪球、理性仁等网站之间玩耍(跳转)
// @author       小紫baby
// @include      /^https:\/\/(xueqiu|www\.lixinger)+\.com.*/
// @grant        none
// ==/UserScript==

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

    var hkStockTemplateUrl = 'https://www.lixinger.com/analytics/company/hk/{0}/detail/fundamental/value'
    var szStockTemplateUrl = 'https://www.lixinger.com/analytics/company/sz/{0}/detail/fundamental/value'
    var szFundTemplateUrl = 'https://www.lixinger.com/analytics/fund/sz/{0}/detail'
    var szIndiceTemplateUrl = 'https://www.lixinger.com/analytics/indice/sz/{0}/detail/value'
    var shStockTemplateUrl = 'https://www.lixinger.com/analytics/company/sh/{0}/detail/fundamental/value'
    var shFundTemplateUrl = 'https://www.lixinger.com/analytics/fund/sh/{0}/detail'
    var shIndiceTemplateUrl = 'https://www.lixinger.com/analytics/indice/sh/{0}/detail/value'

    var regList = [
      // 港股证券
      /^\d{5}$/,
      // 深市证券
      /^SZ(00|01|02|20|30)\d{4}$/,
      // 深市基金
      /^SZ(15|16)\d{4}$/,
      // 深市指数
      /^SZ39\d{4}$/,
      // 沪市证券
      /^SH(600|601|900)\d{3}$/,
      // 沪市基金
      /^SH(510|512)\d{3}$/,
      // 沪市指数
      /^SH000\d{3}$/
    ]
    var urlList = [
      hkStockTemplateUrl,
      szStockTemplateUrl,
      szFundTemplateUrl,
      szIndiceTemplateUrl,
      shStockTemplateUrl,
      shFundTemplateUrl,
      shIndiceTemplateUrl
    ]

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

    function getLixingrenStockPageUrl(code) {
      var stockCode = normalizeCode(code)
      // 美股不支持
      if (!stockCode) return ''

      for (var i = 0; i < regList.length; i += 1) {
        if (regList[i].test(code)) {
          return urlList[i].replace('{0}', stockCode)
        }
      }

      return ''
    }

    function setHrefAttribute (el, code) {
      var url = getLixingrenStockPageUrl(code)
      if (!url) {
        console.log('不支持的证券代码:' + code)
        return
      }
      el.attr('href', url)
    }

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

          var code = href.replace('/S/', '')
          setHrefAttribute($(this), 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')
        setHrefAttribute($(this).parent(), code)
      })

      /**
       * 股票页跳转到理性仁
       */
      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.replace('/S/', '')
        setHrefAttribute($(this), code)
      })
    }
})()