Source code for i3pystatus.ticker

from i3pystatus import IntervalModule
import yfinance as yf


[docs]class Ticker(IntervalModule): """ Displays stock ticker information from yahoo finance Requires: yfinance """ settings = ( ("symbol", "Stock symbol to track"), ("interval", "Update interval (in seconds)"), ("good_color", "Color of text while 'regularMarketPrice' is above " "good_threshold"), ("bad_color", "Color of text while 'regularMarketPrice' is below " "bad_threshold"), ("caution_color", "Color of text while 'regularMarketPrice' is between good " "and bad thresholds"), ("good_threshold", "The target value for consindering the stock a good value"), ("bad_threshold", "The target value for consindering the stock a poor value"), "format" ) required = ("symbol",) good_color = "#00FF00" # green caution_color = "#FFFF00" # yellow bad_color = "#FF0000" # red good_threshold = 100 bad_threshold = 50 interval = 300 format = "{symbol}: {regularMarketPrice} ({regularMarketDayHigh}/{regularMarketDayLow})" def run(self): stock = yf.Ticker(self.symbol) tick = stock.info if tick['regularMarketPrice'] >= float(self.good_threshold): color = self.good_color elif tick['regularMarketPrice'] <= float(self.bad_threshold): color = self.bad_color else: color = self.caution_color self.output = { "full_text": self.format.format(**tick), "color": color }