diff --git a/telegram_bot/bot.py b/telegram_bot/bot.py index 65a164d..48b7b72 100644 --- a/telegram_bot/bot.py +++ b/telegram_bot/bot.py @@ -208,7 +208,7 @@ def send_status(message): bot.reply_to(message, "bot is running") -@bot.message_handler(commands=['portfolio', 'Portfolio']) # /update -> update shares +@bot.message_handler(commands=['portfolio', 'Portfolio']) # /portfolio -> print all owned shares def update_for_user(message): p_user_id = int(message.from_user.id) p_my_handler = api_handler diff --git a/telegram_bot/bot_updates.py b/telegram_bot/bot_updates.py index 3168bdd..f01a318 100644 --- a/telegram_bot/bot_updates.py +++ b/telegram_bot/bot_updates.py @@ -63,8 +63,13 @@ def update_crontab(p_my_handler): global user_crontab global user_ids - - all_users = p_my_handler.get_all_users() # get all users so crontabs can update for everybody + + all_users = p_my_handler.get_all_users() # get all users so crontabs can update for everybody + + if all_users == None: + print("No users found, trying again.") + update_crontab(p_my_handler) + return user_ids = [] user_crontab = [] @@ -75,10 +80,9 @@ def update_crontab(p_my_handler): user_ids.append(int(element["telegram_user_id"])) try: user_crontab.append(str(element["cron"])) - except: - user_ids.pop() # if something goes wrong with cron I have to delete matching user id - except: - continue + except: + user_ids.pop() # if something goes wrong with cron I have to delete matching user id + except: continue print(user_ids) @@ -130,21 +134,23 @@ def update_for_user(p_user_id, p_my_handler): """ share_symbols = [] share_amounts = [] + + my_portfolio = p_my_handler.get_user_portfolio(p_user_id) # get all existing shares for user - my_portfolio = p_my_handler.get_user_portfolio(p_user_id) # get all existing shares for user - - for element in my_portfolio: - if element["count"] != '' and element["isin"] != '': - print(element["count"], element["isin"]) - share_symbols.append(element["isin"]) - share_amounts.append(element["count"]) + if my_portfolio!=None: + for element in my_portfolio: + if element["count"] != '' and element["isin"] != '': + print(element["count"], element["isin"]) + share_symbols.append(element["isin"]) + share_amounts.append(element["count"]) my_user = p_my_handler.get_user(p_user_id) - send_to_user("Hello %s this is your share update for today:" % str(my_user["username"]), pUser_id=p_user_id) + send_to_user("Hello %s this is your update for today:"%str(my_user["username"]), pUser_id=p_user_id) + + shares = p_my_handler.get_user_shares(p_user_id) # all interest shares + + if len(share_symbols) != 0: # iterate through all shares - shares = p_my_handler.get_user_shares(p_user_id) # all interest shares - - if len(share_symbols) != 0: # iterate through all shares for i in range(len(share_symbols)): my_price = share_fetcher.get_share_price_no_currency(share_symbols[i]) my_update_message = f'{share_fetcher.get_share_information_markdown(share_symbols[i])}\ncount: {hf.make_markdown_proof(share_amounts[i])}\nTotal: {hf.make_markdown_proof(round(float(my_price) * float(share_amounts[i]), 2))} EUR'