嘿👋,欢迎再次来到我的小世界。您是一名需要经常在互联网或某些网络应用程序上查看当前加密价格 (BTC) 的加密交易者吗?

这个过程很乏味,特别是如果你是一个忙于其他事情的人。今天,我们将构建一个简单的 Windows 桌面通知程序,它可以提醒我们当前的比特币价格,您的问题将得到解决。

image.png

🔸 简介

我正在使用 Coin DeskAPI来检索价格,但您当然可以免费获得您选择的 API,例如CoingeckoCrypto.Com或任何其他可用的 API。

我们将使用请求库连接到 API,这意味着您将需要持续的互联网才能使该应用程序正常工作

我们还将使用与 Windows 通知交互良好的plyer,它用于访问硬件的功能。

如果您没有这些,请先安装它们;

pip install requests
pip install plyer

🔸 代码

因此,让我们从导入必要的模块开始。我们将使用datetime模块来获取当前日期,并使用time模块让我们的通知器休眠。

import requests
import time
from plyer import notification
import datetime

现在让我们为通知程序创建必要的变量

bitcoin_rate = None

now = datetime.datetime.now()
now = now.strftime("%d/%m %H:%M:")

URL = "https://api.coindesk.com/v1/bpi/currentprice.json"

我们一开始将比特币初始化为 None,因为我们目前不知道它的价格,这将通过我们对 URL 变量的 API 调用进行更新。

我们还使用datetime获取当前日期和时间

现在让我们得到我们的价格;

try:
    response = requests.get(URL,
      headers={"Accept": "application/json"},
    )
    data = response.json()
    bpi = data['bpi']
    USD = bpi['USD']
    bitcoin_rate = int(USD['rate_float'])

    print("[+] We are live [+]")

except:
    print('Something is wrong, Do you have Internet!?')

💨 我们使用了 try 语句来处理没有互联网的异常,同时也防止我们的应用程序崩溃。

💨 我们在 get 调用中接受标头,这些标头将返回 JSON 格式并返回响应。

💨 然后我们查询具有我们价格的特定 ey,即比特币价格指数bpi

💨 然后我们读取USD的值。

现在让我们构建我们的桌面通知程序,并将上面的代码包装在 while 循环中以获得实时更新。

所以我们的 while 循环代码现在看起来像这样

while True:
    try:
        response = requests.get(URL,
          headers={"Accept": "application/json"},
        )
        data = response.json()
        bpi = data['bpi']
        USD = bpi['USD']
        bitcoin_rate = int(USD['rate_float'])

        print("[+] We are live [+]")

    except:
        print('Something is wrong, Do you have Internet!')


    notification.notify(
            #title of the notification,
            title = f"Bitcoin Price Alert!! {now}",

            #the body of the notification
            message = f"Current Bitcoin Price is {bitcoin_rate}",

            #creating icon for the notification
            #we need to download a icon of ico file format
            app_icon = "bitcoin.ico",

            # the notification stays for 60 seconds
            timeout  = 60
        )

        #notification repeats after every 5 Minutes
    time.sleep(30)

💨 我们将其包装在一个持续监控当前价格的 while 循环中,并检查比特币汇率是否已更新,这是保持它运行的条件。

注意:图标应与此代码位于同一文件夹中。

💨 我的名字叫bitcoin.ico

其余的解释可以从代码注释中得到。现在运行你的脚本!

我将我的命名为bitcoin_notifier.py

py bitcoin_notifier.py

您可以在此存储库上找到所有文件和代码。

如果我们想让它在后台自动运行,而不是每次都运行呢!

只需在终端中输入

pythonw.exe .\bitcoin_notifier.py

image.png

看看这是否成功,在任务管理器中查看后台进程

image.png

就是这样,您可以随时终止进程以停止接收通知。

🔸 结论

再一次,希望你今天从我的小衣橱里学到了一些东西。

请考虑订阅或关注我的相关内容,尤其是关于技术、Python 和通用编程的内容。

你可以通过给我买杯咖啡来支持这个免费内容来表达额外的爱,我也对合作伙伴、技术写作角色、协作和 Python 相关的培训或角色持开放态度。

买罗尼咖啡 📢 你也可以在Twitter上关注我:♥ ♥ 等着你! 🙂

Logo

Python社区为您提供最前沿的新闻资讯和知识内容

更多推荐