Revision history and IPFS entry, back to latest
Makzan
IPFS What is this

Content Hash

使用 Pyto 將 LIKE 幣價放到 iOS 主畫面(及使用 Siri 語音觸發)

Makzan
·
·
上星期我們使用了 requests 及 JSON API,從 Coingecko 取得 $LIKE 及 $OSMO 的現時幣價。我們可以進一步將這段代碼放到 iPhone 手機上運行。甚至放到主畫面顯示或利用 Siri 語音查詢。

上星期我們使用了 requests 及 JSON API,從 Coingecko 取得 $LIKE 及 $OSMO 的現時幣價。我們可以進一步將這段代碼放到 iPhone 手機上運行。甚至放到主畫面顯示或利用 Siri 語音查詢。

最終成果,為分別運行於 iPhone 主畫面 Widget 及 Siri Shortcuts 的成果:

在 iOS 中運行 Python 代碼,一般我會 Pyto 這個應用程式。Pyto 支援將代碼放到主畫面 Widget 或 Shortcuts,所以我更推介使用 Pyto。Pyto 分為輕量版及 Pro 版,Pro 版是 $9.99 美金,一次性付款,以其功能及帶來的便利,是抵買的。

以下是我們之前撰寫好的代碼。

import requests
url = "https://api.coingecko.com/api/v3/simple/price?ids=osmosis,likecoin&vs_currencies=usd"

res = requests.get(url)
data = res.json()

like_usd = data["likecoin"]["usd"]
osmo_usd = data["osmosis"]["usd"]

result = f"現時 LIKE 兌美元為 {like_usd},OSMO 兌美元為 {osmo_usd}。"
print(result)

Gist: https://gist.github.com/makzan/0fff74313b6a3b6d5b192afb5984586d

於 iOS 的 Pyto 中運行

在 Pyto 中,建立新的代碼檔案,輸入檔案名稱,再貼上上述的代碼。

在 Pyto 中建立檔案

然後按右上角的 ▶️ Play 運行,可以得出預期的效果。

使用 Pyto 運行我們的 LIKE 幣價代碼

優化代碼

但細想一下,若果我們在主畫面的細 Widget 中運行,這樣用文字句字輸出不太易讀,而且我們也不知道這代碼的運行時間為何。

在主畫面運行效果

所以,我在原有代碼的基礎上,利用 datetime.today().isoformat() 加上了現時的日期時間(順便利用只取頭 16 個字附及將 T 字換成空格,使這字串在主畫面中稍為易讀一點。

now = datetime.today().isoformat()[:16].replace("T", " ")

另外,我也將文字輸出改成簡短換行輸出,當中 \n 為換行符號。

result = f"LIKE: {like_usd}\nOSMO: {osmo_usd}\n({now})"

稍為修改後的完整版本。

import requestsfrom datetime import datetime

url = "https://api.coingecko.com/api/v3/simple/price?ids=osmosis,likecoin&vs_currencies=usd"

res = requests.get(url)
data = res.json()

like_usd = data["likecoin"]["usd"]
osmo_usd = data["osmosis"]["usd"]
now = datetime.today().isoformat()[:16].replace("T", " ")

result = f"LIKE: {like_usd}\nOSMO: {osmo_usd}\n({now})"
print(result)

Gist: https://gist.github.com/makzan/4b4cf8fcc097147ddc22e99acef3c6f7

加到主畫面

在主畫面的編輯狀態下,選擇左上角 (+),選取 Pyto widget。可以按自己需求選擇細、中、大的運行代碼,我以細尺寸進行示範。

選擇後,會首先寫著「No selected script」未選擇要運行哪個代碼。按一下 Widget,再選擇剛剛我們儲存的 Python 代碼檔案。

注:如果想修改,可以在主畫面長按此 Widget,並選擇修改,便可以再此選擇要運行的代碼檔案。

在主畫面添加 Pyto Widget

以下是運行結果,這樣便可以隨時追蹤了。此方法配合上不同的 JSON API 資料來源,也可以用來訂閱不同的資訊,例如天氣等資料

主畫面運行結果

利用 Siri 執行代碼

Pyto 的另一個iOS 整合功能是整合到蘋果的 Shortcuts app

Shortcuts 是蘋果在 iOS (及最新的 Mac)中的編程自動化應用程式,可以以視覺化介面從上而下整合不同的應用,而每個 Shortcut 流程的名稱,都可以通過「喂 siri」加流程名稱來觸發。

Shortcuts 製作語音觸發代碼

例如,我製作了這個「今日咩價位」的 Shortcut,運行 Pyto 的指定代碼,再利用「Get Script Output」取得代碼的 Print 輸出,然後使用「Show notification」顯示文字結果,及順便讀出來。

那以後,除了在主畫面可以看到後,亦可以利用 Siri 語音觸發代碼執行,及聽取語音結果。

同場加映:「喂 Siri,返屋企有冇車位」

話說,我另外有個 Shortcut 是詢問 Siri,返屋企有冇車位。有空可以講講如何做。

— 麥誠 Makzan,2021-12-01。


我是麥誠軒(Makzan),除了正職外,平常我要麼辦本地賽與辦世界賽,要麼任教編程與網站開發的在職培訓。現正轉型將面授培訓內容寫成電子書、網上教材等,至今撰寫了 7 本書, 2 個視頻教學課程。

我逢星期三會不定期推出 #編程星期三,介紹 Python 或不同的編程技巧,包括自動化辦公文件處理、及網絡爬蟲等。

如果我的文章有價值,請訂閱贊助我持續創作分享。

訂閱贊助:https://liker.land/thomasmak/civic

CC BY-NC-ND 2.0