|
|
|
@@ -50,7 +50,7 @@ def send_start(message):
|
|
|
|
|
"""
|
|
|
|
|
bot.reply_to(message, "Welcome to this share bot project. \
|
|
|
|
|
\nType /help to get information on what this bot can do. \
|
|
|
|
|
\nAlso see " + os.getenv("WEBSITE_URL") + " \
|
|
|
|
|
\nAlso see " + os.getenv("APP_URL") + " \
|
|
|
|
|
to start configuring your bot")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -78,7 +78,7 @@ def send_help(message):
|
|
|
|
|
:rtype: none
|
|
|
|
|
"""
|
|
|
|
|
bot.reply_to(message,
|
|
|
|
|
"/id or /auth get your user id\n/shares get update on interesting shares\n/setAdmin set admin rights of user (ADMIN)\n/users see all users. (ADMIN)\n/me get my user info\n/news get top article for each keyword.\n/allnews get all news (last 7 days)\n/keywords get all your keywords\n/addkeyword add a keyword\n/removekeyword remove a keyword\n/transactions get all transactions\n/newtransaction create new transaction\n/share get price of specific share\n/portfolio see own stock portfolio\n/removeshare removes share from portfolio\n/interval get update interval\n/setinterval set update interval\n For further details see " + os.getenv("WEBSITE_URL"))
|
|
|
|
|
"/id or /auth get your user id\n/shares get update on interesting shares\n/setAdmin set admin rights of user (ADMIN)\n/users see all users. (ADMIN)\n/me get my user info\n/news get top article for each keyword.\n/allnews get all news (last 7 days)\n/keywords get all your keywords\n/addkeyword add a keyword\n/removekeyword remove a keyword\n/transactions get all transactions\n/newtransaction create new transaction\n/share get price of specific share\n/portfolio see own stock portfolio\n/removeshare removes share from portfolio\n/interval get update interval\n/setinterval set update interval\n For further details see " + os.getenv("APP_URL"))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@bot.message_handler(commands=['users', 'Users']) # /users -> sending all users
|
|
|
|
@@ -170,7 +170,7 @@ def send_user(message):
|
|
|
|
|
user_id = int(message.from_user.id)
|
|
|
|
|
user_data = api_handler.get_user(user_id)
|
|
|
|
|
if not user_data or user_data == None: # true if user is not registered
|
|
|
|
|
bot.reply_to(message, "This didn\'t work. Make sure to connect your telegram id (/id) on " + os.getenv("WEBSITE_URL"))
|
|
|
|
|
bot.reply_to(message, "This didn\'t work. Make sure to connect your telegram id (/id) on " + os.getenv("APP_URL"))
|
|
|
|
|
return
|
|
|
|
|
username = user_data['username']
|
|
|
|
|
email = user_data['email']
|
|
|
|
@@ -190,7 +190,7 @@ def send_id(message):
|
|
|
|
|
|
|
|
|
|
:rtype: none
|
|
|
|
|
"""
|
|
|
|
|
answer = 'Your ID/Authentication Code is: [' + str(message.from_user.id) + ']. Enter this code in the settings on ' + os.getenv("WEBSITE_URL") + ' to get updates on your shares.'
|
|
|
|
|
answer = 'Your ID/Authentication Code is: [' + str(message.from_user.id) + ']. Enter this code in the settings on ' + os.getenv("APP_URL") + ' to get updates on your shares.'
|
|
|
|
|
bot.reply_to(message, answer)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -219,7 +219,7 @@ def update_for_user(message):
|
|
|
|
|
my_portfolio = p_my_handler.get_user_portfolio(p_user_id)
|
|
|
|
|
|
|
|
|
|
if my_portfolio == None: # true if user is not registered
|
|
|
|
|
bot.send_message(chat_id=p_user_id, text='This didn\'t work. Make sure to connect your telegram id (/id) on ' + os.getenv("WEBSITE_URL"))
|
|
|
|
|
bot.send_message(chat_id=p_user_id, text='This didn\'t work. Make sure to connect your telegram id (/id) on ' + os.getenv("APP_URL"))
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
my_user = p_my_handler.get_user(p_user_id)
|
|
|
|
@@ -240,7 +240,7 @@ def update_for_user(message):
|
|
|
|
|
my_update_message = f'{share_fetcher.get_share_information_markdown(share_symbols[i])}\ncount: {amounts}\nTotal: {hf.make_markdown_proof(round(float(my_price) * float(share_amounts[i]), 2))} EUR'
|
|
|
|
|
bot.send_message(chat_id=p_user_id, text=my_update_message, parse_mode="MARKDOWNV2")
|
|
|
|
|
else:
|
|
|
|
|
send_to_user("No shares found for your account. Check " + os.getenv("WEBSITE_URL") + " to change your settings and add shares.", pUser_id=p_user_id)
|
|
|
|
|
send_to_user("No shares found for your account. Check " + os.getenv("APP_URL") + " to change your settings and add shares.", pUser_id=p_user_id)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def send_to_user(pText, pUser_id):
|
|
|
|
@@ -294,7 +294,7 @@ def send_all_news(message):
|
|
|
|
|
keywords = api_handler.get_user_keywords(user_id) # get keywords of user
|
|
|
|
|
|
|
|
|
|
if keywords == None: # true if user is not registered
|
|
|
|
|
bot.send_message(chat_id=user_id, text='This didn\'t work. Make sure to connect your telegram id (/id) on ' + os.getenv("WEBSITE_URL"))
|
|
|
|
|
bot.send_message(chat_id=user_id, text='This didn\'t work. Make sure to connect your telegram id (/id) on ' + os.getenv("APP_URL"))
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
if not keywords: # true if user is registered but does not have any keywords
|
|
|
|
@@ -330,7 +330,7 @@ def send_news(message):
|
|
|
|
|
keywords = api_handler.get_user_keywords(user_id) # get keywords of user
|
|
|
|
|
|
|
|
|
|
if keywords == None: # true if user is not registered
|
|
|
|
|
bot.send_message(chat_id=user_id, text='This didn\'t work. Make sure to connect your telegram id (/id) on ' + os.getenv("WEBSITE_URL"))
|
|
|
|
|
bot.send_message(chat_id=user_id, text='This didn\'t work. Make sure to connect your telegram id (/id) on ' + os.getenv("APP_URL"))
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
if not keywords: # true if user is registered but does not have any keywords
|
|
|
|
@@ -375,7 +375,7 @@ def store_keyword(message):
|
|
|
|
|
if status == 200: # statuscode 200 means keyword was added successfully without errors
|
|
|
|
|
bot.send_message(chat_id=user_id, text=f'Keyword "{keyword}" added.') # duplicate keywords are denied by Database, so no need to check for that here
|
|
|
|
|
else:
|
|
|
|
|
bot.send_message(chat_id=user_id, text=f'Keyword "{keyword}" could not be stored. Make sure to connect your telegram id (/id) on https://gruppe1.testsites.info (statuscode {status})')
|
|
|
|
|
bot.send_message(chat_id=user_id, text=f'Keyword "{keyword}" could not be stored. Make sure to connect your telegram id (/id) on {os.getenv("APP_URL")} (statuscode {status})')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@bot.message_handler(commands=['removekeyword', 'Removekeyword']) # /removekeyword -> remove keyword from user
|
|
|
|
@@ -417,7 +417,7 @@ def send_keywords(message):
|
|
|
|
|
keywords = api_handler.get_user_keywords(user_id) # get keywords of user
|
|
|
|
|
|
|
|
|
|
if keywords == None: # true if user is not registered
|
|
|
|
|
bot.send_message(chat_id=user_id, text='This didn\'t work. Make sure to connect your telegram id (/id) on ' + os.getenv("WEBSITE_URL"))
|
|
|
|
|
bot.send_message(chat_id=user_id, text='This didn\'t work. Make sure to connect your telegram id (/id) on ' + os.getenv("APP_URL"))
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
if not keywords: # true if user is registered but does not have any keywords
|
|
|
|
@@ -513,7 +513,7 @@ def send_interval(message):
|
|
|
|
|
user_id = int(message.from_user.id)
|
|
|
|
|
user_data = api_handler.get_user(user_id) # get cron interval of user (stored in user data)
|
|
|
|
|
if user_data == None: # true if user is not registered in DB
|
|
|
|
|
bot.send_message(chat_id=user_id, text='This didn\'t work. Make sure to connect your telegram id (/id) on ' + os.getenv("WEBSITE_URL") + ' and set an interval with /setinterval')
|
|
|
|
|
bot.send_message(chat_id=user_id, text='This didn\'t work. Make sure to connect your telegram id (/id) on ' + os.getenv("APP_URL") + ' and set an interval with /setinterval')
|
|
|
|
|
return
|
|
|
|
|
else: # send interval
|
|
|
|
|
interval = str(user_data['cron']) # get cron from user data
|
|
|
|
@@ -538,7 +538,7 @@ def send_transactions(message):
|
|
|
|
|
transactions = api_handler.get_user_transactions(user_id) # get transactions of user
|
|
|
|
|
|
|
|
|
|
if transactions == None: # true if user does not exist
|
|
|
|
|
bot.send_message(chat_id=user_id, text='This didn\'t work. Make sure to connect your telegram id (/id) on ' + os.getenv("WEBSITE_URL"))
|
|
|
|
|
bot.send_message(chat_id=user_id, text='This didn\'t work. Make sure to connect your telegram id (/id) on ' + os.getenv("APP_URL"))
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
if not transactions: # true if user has no transactions
|
|
|
|
@@ -571,9 +571,9 @@ def send_shares(message):
|
|
|
|
|
shares = api_handler.get_user_shares(user_id) # get shares of user
|
|
|
|
|
|
|
|
|
|
if shares == None: # true if user does not exist
|
|
|
|
|
bot.send_message(chat_id=user_id, text='This didn\'t work. Make sure to connect your telegram id (/id) on ' + os.getenv("WEBSITE_URL"))
|
|
|
|
|
bot.send_message(chat_id=user_id, text='This didn\'t work. Make sure to connect your telegram id (/id) on ' + os.getenv("APP_URL"))
|
|
|
|
|
elif not shares: # true if user has no shares
|
|
|
|
|
bot.send_message(chat_id=user_id, text='You do not have any shares. Add shares on ' + os.getenv("WEBSITE_URL"))
|
|
|
|
|
bot.send_message(chat_id=user_id, text='You do not have any shares. Add shares on ' + os.getenv("APP_URL"))
|
|
|
|
|
else:
|
|
|
|
|
for element in shares:
|
|
|
|
|
bot.send_message(chat_id=user_id, text=share_fetcher.get_share_information_markdown(element), parse_mode="MARKDOWNV2")
|
|
|
|
|