iTerm2で会社の株価を表示するコンポーネント作ってみた
何を作ったか
iTerm2でコンソール上にステータスバーを表示することができるようになりました🎉🎉🎉
また、独自に作成したコンポーネント (スクリプト)も登録・利用できるようになりせっかくなのでなにか作ってみようと思い今回作成しました。
(※会社はてきとうに選びました)
どうやって作るか
iTerm2のコンポーネントの作り方は他の記事を参照してください!
大変参考にさせていただきました→ 【iTerm2】ステータスバーのコンポーネントを自作してみた
プログラムとしてはシンプルで、Yahooファイナンスのページから表示したい会社を検索し、情報を埋めているだけです。
以下、ソースコード貼っておきます。
ソースコード
以下、読み替えて使ってください。
- identifier ... 一意に定まるなにか。
- 例えば
com.rindo.iterm2.stock_info
- 例えば
- security_code ... 証券コード
#!/usr/bin/env python3
import iterm2
import re
import requests
from bs4 import BeautifulSoup
async def main(connection):
component = iterm2.StatusBarComponent(
short_description="XX株価",
detailed_description="株価を表示します",
knobs=[],
exemplar="会社 12億円 ¥3,456 前日比: +78 (+9%)",
update_cadence=60,
identifier="{identifier}"
)
@iterm2.StatusBarRPC
async def coro(knobs):
SECURITY_CODE = {security_code}
URL = "https://m.finance.yahoo.co.jp/stock?code={}.T"
res = requests.get(URL.format(SECURITY_CODE))
soup = BeautifulSoup(res.text, "html.parser")
company = soup.find("h2", class_="title").string
price = soup.find("dd", class_="priceFin").string
cap = soup.find("div", class_="stockDetail").find_all("dd")[12].string
cap = re.sub(',|百万円', '', cap)
cap = int(cap) * 1000000
cap = float(cap) / 100000000
down = soup.find("dd", class_="deltaDown")
up = soup.find("dd", class_="deltaUp")
change = ""
if up is not None:
change = up.string
else:
change = down.string
return "{} {}億円 ¥{} 前日比: {}".format(company, cap, price, change)
await component.async_register(connection, coro)
iterm2.run_forever(main)
Author And Source
この問題について(iTerm2で会社の株価を表示するコンポーネント作ってみた), 我々は、より多くの情報をここで見つけました https://qiita.com/rindo/items/272e9ff00d967d45e78c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .