From e210b9ad0e8abb32ec4c813cd427cf5cf47fbdd5 Mon Sep 17 00:00:00 2001 From: Anson Date: Fri, 22 Feb 2019 11:57:21 -0700 Subject: [PATCH] replaced formatting with f strings --- bot/stockBot.py | 47 ++++++++++++----------------------------------- bot/tickerInfo.py | 10 ++++------ 2 files changed, 16 insertions(+), 41 deletions(-) diff --git a/bot/stockBot.py b/bot/stockBot.py index 60608bf..8b86224 100644 --- a/bot/stockBot.py +++ b/bot/stockBot.py @@ -65,36 +65,22 @@ def news(bot, update): price = tickerData[ticker + "Price"] change = tickerData[ticker + "Change"] - message = ( - "The current stock price of " - + name - + " is $**" - + str(price) - + "**" - ) + message = f"The current stock price of {name} is $**{price}**" if change > 0: - message = ( - message - + ", the stock is currently **up " - + str(change) - + "%**" - ) + message = f"{message}, the stock is currently **up {change}%**" elif change < 0: message = ( - message - + ", the stock is currently **down" - + str(change) - + "%**" + f"{message}, the stock is currently **down {change}%**" ) else: message = ( - message + ", the stock hasn't shown any movement today." + f"{message}, the stock hasn't shown any movement today." ) news = tickerInfo.stockNews(ticker) for i in range(3): - message = "{}\n\n[{}]({})".format( - message, news["title"][i], news["link"][i] + message = ( + f"{message}\n\n[{news['title'][i]}]({news['link'][i]})" ) update.message.reply_text( @@ -113,9 +99,10 @@ def stockInfo(bot, update): try: # regex to find tickers in messages, looks for up to 4 word characters following a dollar sign and captures the 4 word characters tickers = re.findall("[$](\w{1,4})", message) - bot.send_chat_action(chat_id=chat_id, action=telegram.ChatAction.TYPING) tickerData = tickerInfo.tickerQuote(tickers) + bot.send_chat_action(chat_id=chat_id, action=telegram.ChatAction.TYPING) + for ticker in tickers: ticker = ticker.upper() # Makes sure ticker exists @@ -123,22 +110,13 @@ def stockInfo(bot, update): name = tickerData[ticker + "Name"] price = tickerData[ticker + "Price"] change = tickerData[ticker + "Change"] - message = ( - "The current stock price of " + name + " is $**" + str(price) + "**" - ) + message = f"The current stock price of {name} is $**{price}**" if change > 0: - message = ( - message + ", the stock is currently **up " + str(change) + "%**" - ) + message = f"{message}, the stock is currently **up {change}%**" elif change < 0: - message = ( - message - + ", the stock is currently **down " - + str(change) - + "%**" - ) + message = f"{message}, the stock is currently **down {change}%**" else: - message = message + ", the stock hasn't shown any movement today." + message = f"{message}, the stock hasn't shown any movement today." update.message.reply_text( text=message, parse_mode=telegram.ParseMode.MARKDOWN ) @@ -151,7 +129,6 @@ def stockInfo(bot, update): def dividend(bot, update): message = update.message.text chat_id = update.message.chat_id - print("div") try: # regex to find tickers in messages, looks for up to 4 word characters following a dollar sign and captures the 4 word characters tickers = re.findall("[$](\w{1,4})", message) diff --git a/bot/tickerInfo.py b/bot/tickerInfo.py index 58d5ef2..89a4595 100644 --- a/bot/tickerInfo.py +++ b/bot/tickerInfo.py @@ -39,7 +39,7 @@ def stockNews(ticker): """Makes a bunch of strings that are links to news websites for an input ticker""" print("Gather News on " + ticker) - newsLink = "https://api.iextrading.com/1.0/stock/{}/news/last/5".format(ticker) + newsLink = f"https://api.iextrading.com/1.0/stock/{ticker}/news/last/5" with urllib.request.urlopen(newsLink) as url: data = json.loads(url.read().decode()) @@ -53,12 +53,12 @@ def stockNews(ticker): def stockLogo(ticker): """returns a png of an input ticker""" - logoURL = "https://g.foolcdn.com/art/companylogos/mark/" + ticker + ".png" + logoURL = f"https://g.foolcdn.com/art/companylogos/mark/{ticker}.png" return logoURL def stockInfo(ticker): - infoURL = "https://api.iextrading.com/1.0/stock/{}/stats".format(ticker) + infoURL = f"https://api.iextrading.com/1.0/stock/{ticker}/stats" with urllib.request.urlopen(infoURL) as url: data = json.loads(url.read().decode()) @@ -100,9 +100,7 @@ def stockDividend(ticker): h, m = divmod(h, 3600) m, s = divmod(m, 60) - countdownMessage = "\n\nThe dividend is in: {:.0f} Days {:.0f} Hours {:.0f} Minutes {:.0f} Seconds.".format( - d, h, m, s - ) + countdownMessage = f"\n\nThe dividend is in: {d:.0f} Days {h:.0f} Hours {m:.0f} Minutes {s:.0f} Seconds." message = line1 + countdownMessage return message