diff --git a/bot.py b/bot.py index c34e8ff..d0b3954 100644 --- a/bot.py +++ b/bot.py @@ -86,6 +86,24 @@ def news(bot, update): ) +def info(bot, update): + """ + waits for /info command and then finds info on that ticker. + """ + message = update.message.text + chat_id = update.message.chat_id + tickers = getTickers(message) + + if tickers: + bot.send_chat_action(chat_id=chat_id, action=telegram.ChatAction.TYPING) + + for symbol, reply in tickerInfo(tickers).items(): + + update.message.reply_text( + text=reply, parse_mode=telegram.ParseMode.MARKDOWN + ) + + def error(bot, update, error): """Log Errors caused by Updates.""" logger.warning('Update "%s" caused error "%s"', update, error) @@ -105,6 +123,7 @@ def main(): dp.add_handler(CommandHandler("dividend", dividend)) dp.add_handler(CommandHandler("div", dividend)) dp.add_handler(CommandHandler("news", news)) + dp.add_handler(CommandHandler("info", info)) # on noncommand i.e message - echo the message on Telegram dp.add_handler(MessageHandler(Filters.text, tickerDetect)) @@ -122,4 +141,4 @@ def main(): if __name__ == "__main__": - main() + main() \ No newline at end of file diff --git a/functions.py b/functions.py index 55fdc51..fef6fd3 100644 --- a/functions.py +++ b/functions.py @@ -98,3 +98,26 @@ def tickerNews(tickers: list): ] = f"No news found for: {ticker}\nEither today is boring or the ticker does not exist." return messages + + +def tickerInfo(tickers: list): + messages = {} + + for ticker in tickers: + IEXurl = ( + f"https://cloud.iexapis.com/stable/stock/{ticker}/company?token={IEX_TOKEN}" + ) + with urllib.request.urlopen(IEXurl) as url: + data = json.loads(url.read().decode()) + if data: + messages[ + ticker + ] = f"Company Name: [{data['companyName']}]({data['website']})\nIndustry: {data['industry']}\nSector: {data['sector']}\nCEO: {data['CEO']}\nDescription: {data['description']}\n" + + else: + messages[ + ticker + ] = f"No information found for: {ticker}\nEither today is boring or the ticker does not exist." + + return messages +