xbar/BitBar基金净值插件 | 宁静致远

xbar/BitBar基金净值插件

正在加载一言...


之前一直用的BitBar后面升级了,变成了xbar,使用方法都差不多。然后现在给她整个基金的小插件。让我们来看看咋整的。

0.简介


Put anything in your macOS menu bar

官网的图

xbar还是很好用的,正如官网上说的,将任何东西放置到你的菜单栏。之前用它显示水电燃气的状况,后面群晖总是宕机,然后就没用了。下面介绍一下xbar吧xbar的项目地址,这个是xbar官网地址。就是通过它来自定义你的菜单栏。

1.需求


最近股市不理想,很多朋友们都想关注自己的行情,因为不玩股票,买了点基金,所以就整了基金的插件。下面是完成的效果图,可以瞅瞅。
完成图

2.编码


需求有了,下面就是愉快的编码时间。这边用的shell脚本,数据来源于天天基金网,需要事先安装下jq

jq是一个灵活的轻量级命令行JSON处理器,项目主页在这里,这是介绍jq的,也可以参考看看哈。
下面是插件的代码,大家可以拿去用。


增加功能后的截图

更新记录:

20220520 :

1、增加是否工作日判断,休市不现实涨幅信息

2、详细信息增加基金代码的显示

#!/usr/bin/env bash

# <xbar.title>Fund</xbar.title>
# <xbar.version>v0.0.0</xbar.version>
# <xbar.author>freefitter</xbar.author>
# <xbar.desc>show fund info</xbar.desc>

export PATH="/usr/local/bin:${PATH}"

getFirstInfo(){
    fundcode=$(echo $fundList | cut -d " " -f1)
    cur_timestamp=$((`date '+%s'`*1000+`date '+%N'`/1000000))
    retStr=$(curl -s "http://fundgz.1234567.com.cn/js/"$fundcode".js?rt="$cur_timestamp)
    jsonStr=$(echo $retStr |grep -o '{.*}')
    if [ -z "$jsonStr" ];then
        echo "💰基金估值"
    else
        gszzl=$(echo "$jsonStr" | jq -r '.gszzl')
        if [ `awk -v num1=$gszzl 'BEGIN{print(num1<=0)?"0":"1"}'` -eq 0 ];then 
            echo "💰 \033[44;1m$fundcode\033[0m \033[32;1m⬇$gszzl\033[0m"
        else
            echo "💰 \033[44;1m$fundcode\033[0m \033[31;1m⬆$gszzl\033[0m"
        fi
    fi
}

getFundInfo(){
    fundcode=$1
    cur_timestamp=$((`date '+%s'`*1000+`date '+%N'`/1000000))
    retStr=$(curl -s "http://fundgz.1234567.com.cn/js/"$fundcode".js?rt="$cur_timestamp)
    # get json
    jsonStr=$(echo $retStr |grep -o '{.*}')
    if [ -z "$jsonStr" ];then
        echo "["$fundcode"]当前基金没有相关信息"
    else
        gszzl=$(echo "$jsonStr" | jq -r '.gszzl')
        gztime=$(echo "$jsonStr" | jq -r  '.gztime')
        gsz=$(echo "$jsonStr" | jq -r  '.gsz')
        dwjz=$(echo "$jsonStr" | jq -r  '.dwjz')
        name=$(echo "$jsonStr" | jq -r '.name')
        echo "\033[44;1m$fundcode-$name \033[0m"
        if [ `awk -v num1=$gszzl 'BEGIN{print(num1<=0)?"0":"1"}'` -eq 0 ];then 
            echo "估算涨幅: [ \033[32;1m $gszzl \033[0m ] 净值估算: [ \033[32;1m $gsz \033[0m ] 单位净值: [ \033[32;1m $dwjz \033[0m]"
        else
            echo "估算涨幅: [ \033[31;1m $gszzl \033[0m ] 净值估算: [ \033[31;1m $gsz \033[0m ] 单位净值: [ \033[31;1m $dwjz \033[0m]"
        fi
        echo "查看基金详细信息 | href=https://fund.eastmoney.com/$fundcode.html"
        echo " 更新时间: $gztime"
    fi
}
time=`date +%H:%M:%S`
## 修改此处  修改添加你的基金代码 start
fundList="007379 202015"
## 修改此处  修改添加你的基金代码 end
if [[ "$time" > "09:29:59" ]] && [[ "$time" < "11:31:00" ]] || [[ "$time" > "13:00:00" ]] && [[ "$time" < "15:30:00" ]]
then
    echo $(getFirstInfo)
    echo "---"
    for i in $fundList;
    do
        echo -e "$(getFundInfo "$i")"
        echo "---"
    done
    echo "Refresh... | refresh=true"
else
    echo "🍵休市"
    echo "---"
    for i in $fundList;
    do
        echo -e "$(getFundInfo "$i")"
        echo "---"
    done
    echo "Refresh... | refresh=true"
fi

命名方式记得看下文档介绍。001-fund.1m.sh这边是我的命名方式,每分钟刷新一次。

使用方法就是直接替换基金列表里面的基金代码即可。

3.写在最后


祝大家股票涨涨涨📈,没事多动手,让自己的生活变简单。


文章作者: 彤爸比
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 彤爸比 !
评论
  目录