Merge remote-tracking branch 'origin/main' into bot
This commit is contained in:
commit
12994e43c3
@ -10,7 +10,7 @@ import os
|
|||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
|
|
||||||
from apscheduler.schedulers.background import BackgroundScheduler
|
from apscheduler.schedulers.background import BackgroundScheduler # scheduler for cron
|
||||||
from dotenv import load_dotenv
|
from dotenv import load_dotenv
|
||||||
|
|
||||||
import helper_functions as hf
|
import helper_functions as hf
|
||||||
@ -63,15 +63,9 @@ def update_crontab(p_my_handler):
|
|||||||
|
|
||||||
global user_crontab
|
global user_crontab
|
||||||
global user_ids
|
global user_ids
|
||||||
<<<<<<< HEAD
|
|
||||||
|
|
||||||
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
|
||||||
|
|
||||||
=======
|
|
||||||
|
|
||||||
all_users = p_my_handler.get_all_users()
|
|
||||||
|
|
||||||
>>>>>>> origin/main
|
|
||||||
user_ids = []
|
user_ids = []
|
||||||
user_crontab = []
|
user_crontab = []
|
||||||
|
|
||||||
@ -81,33 +75,18 @@ def update_crontab(p_my_handler):
|
|||||||
user_ids.append(int(element["telegram_user_id"]))
|
user_ids.append(int(element["telegram_user_id"]))
|
||||||
try:
|
try:
|
||||||
user_crontab.append(str(element["cron"]))
|
user_crontab.append(str(element["cron"]))
|
||||||
<<<<<<< HEAD
|
|
||||||
except:
|
except:
|
||||||
user_ids.pop() # if something goes wrong with cron I have to delete matching user id
|
user_ids.pop() # if something goes wrong with cron I have to delete matching user id
|
||||||
except: continue
|
except: continue
|
||||||
|
|
||||||
|
|
||||||
=======
|
|
||||||
except:
|
|
||||||
user_ids.pop()
|
|
||||||
except:
|
|
||||||
continue
|
|
||||||
|
|
||||||
>>>>>>> origin/main
|
|
||||||
print(user_ids)
|
print(user_ids)
|
||||||
|
|
||||||
update_based_on_crontab(user_ids, user_crontab, p_my_handler)
|
update_based_on_crontab(user_ids, user_crontab, p_my_handler)
|
||||||
<<<<<<< HEAD
|
|
||||||
|
|
||||||
update_crontab(p_my_handler) # restart the update after time sleep
|
update_crontab(p_my_handler) # restart the update after time sleep
|
||||||
|
|
||||||
|
|
||||||
=======
|
|
||||||
|
|
||||||
update_crontab(p_my_handler)
|
|
||||||
|
|
||||||
|
|
||||||
>>>>>>> origin/main
|
|
||||||
def update_based_on_crontab(p_user_ids, p_user_crontab, p_my_handler):
|
def update_based_on_crontab(p_user_ids, p_user_crontab, p_my_handler):
|
||||||
""" Check all the crontab codes and add jobs to start in time
|
""" Check all the crontab codes and add jobs to start in time
|
||||||
:type p_user_ids: array
|
:type p_user_ids: array
|
||||||
@ -123,33 +102,19 @@ def update_based_on_crontab(p_user_ids, p_user_crontab, p_my_handler):
|
|||||||
|
|
||||||
:rtype: none
|
:rtype: none
|
||||||
"""
|
"""
|
||||||
<<<<<<< HEAD
|
|
||||||
|
|
||||||
my_scheduler = BackgroundScheduler() # schedule sends based on cron
|
my_scheduler = BackgroundScheduler() # schedule sends based on cron
|
||||||
|
|
||||||
=======
|
|
||||||
|
|
||||||
my_scheduler = BackgroundScheduler()
|
|
||||||
|
|
||||||
>>>>>>> origin/main
|
|
||||||
for i in range(len(p_user_ids)):
|
for i in range(len(p_user_ids)):
|
||||||
cron_split = p_user_crontab[i].split(" ") # split it up to use in scheduler
|
cron_split = p_user_crontab[i].split(" ") # split it up to use in scheduler
|
||||||
print(cron_split[4], cron_split[1], cron_split[0], cron_split[3], cron_split[2])
|
print(cron_split[4], cron_split[1], cron_split[0], cron_split[3], cron_split[2])
|
||||||
my_scheduler.add_job(update_for_user, 'cron', day_of_week=cron_split[4], hour=cron_split[1], minute=cron_split[0], month=cron_split[3], day=cron_split[2], args=(p_user_ids[i], p_my_handler))
|
my_scheduler.add_job(update_for_user, 'cron', day_of_week=cron_split[4], hour=cron_split[1], minute=cron_split[0], month=cron_split[3], day=cron_split[2], args=(p_user_ids[i], p_my_handler))
|
||||||
|
|
||||||
my_scheduler.start()
|
my_scheduler.start()
|
||||||
<<<<<<< HEAD
|
|
||||||
|
|
||||||
time.sleep( 600 ) # scheduler runs in background and I wait 10mins
|
time.sleep( 600 ) # scheduler runs in background and I wait 10mins
|
||||||
my_scheduler.shutdown() # after this the new crontabs will be loaded
|
my_scheduler.shutdown() # after this the new crontabs will be loaded
|
||||||
|
|
||||||
=======
|
|
||||||
|
|
||||||
time.sleep(600)
|
|
||||||
my_scheduler.shutdown()
|
|
||||||
|
|
||||||
|
|
||||||
>>>>>>> origin/main
|
|
||||||
def update_for_user(p_user_id, p_my_handler):
|
def update_for_user(p_user_id, p_my_handler):
|
||||||
""" Pull shares and send updates for specific user id
|
""" Pull shares and send updates for specific user id
|
||||||
:type p_user_id: integer
|
:type p_user_id: integer
|
||||||
@ -164,16 +129,9 @@ def update_for_user(p_user_id, p_my_handler):
|
|||||||
"""
|
"""
|
||||||
share_symbols = []
|
share_symbols = []
|
||||||
share_amounts = []
|
share_amounts = []
|
||||||
<<<<<<< HEAD
|
|
||||||
|
|
||||||
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
|
||||||
|
|
||||||
=======
|
|
||||||
share_courses = []
|
|
||||||
|
|
||||||
my_portfolio = p_my_handler.get_user_portfolio(p_user_id)
|
|
||||||
|
|
||||||
>>>>>>> origin/main
|
|
||||||
for element in my_portfolio:
|
for element in my_portfolio:
|
||||||
if element["count"] != '' and element["isin"] != '':
|
if element["count"] != '' and element["isin"] != '':
|
||||||
print(element["count"], element["isin"])
|
print(element["count"], element["isin"])
|
||||||
@ -181,19 +139,11 @@ def update_for_user(p_user_id, p_my_handler):
|
|||||||
share_amounts.append(element["count"])
|
share_amounts.append(element["count"])
|
||||||
|
|
||||||
my_user = p_my_handler.get_user(p_user_id)
|
my_user = p_my_handler.get_user(p_user_id)
|
||||||
<<<<<<< HEAD
|
|
||||||
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 share 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
|
shares = p_my_handler.get_user_shares(p_user_id) # all interest shares
|
||||||
|
|
||||||
if len(share_symbols) != 0: # iterate through all shares
|
if len(share_symbols) != 0: # iterate through all shares
|
||||||
=======
|
|
||||||
send_to_user("Hello %s this is your share update for today:" % str(my_user["username"]), pUser_id=p_user_id)
|
|
||||||
|
|
||||||
shares = p_my_handler.get_user_shares(p_user_id)
|
|
||||||
|
|
||||||
if len(share_symbols) != 0:
|
|
||||||
>>>>>>> origin/main
|
|
||||||
for i in range(len(share_symbols)):
|
for i in range(len(share_symbols)):
|
||||||
my_price = share_fetcher.get_share_price_no_currency(share_symbols[i])
|
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'
|
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'
|
||||||
@ -214,19 +164,11 @@ def update_for_user(p_user_id, p_my_handler):
|
|||||||
news = news_fetcher.get_top_news_by_keyword(keyword)["articles"]
|
news = news_fetcher.get_top_news_by_keyword(keyword)["articles"]
|
||||||
keyword = hf.make_markdown_proof(keyword)
|
keyword = hf.make_markdown_proof(keyword)
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
if not news: # if empty news array
|
if not news: # if empty news array
|
||||||
send_to_user(f"No news found for keyword _{keyword}_\.", pUser_id=p_user_id, md_mode=True)
|
send_to_user(f"No news found for keyword _{keyword}_\.", pUser_id=p_user_id, md_mode=True)
|
||||||
|
|
||||||
elif news == None: # if news is none
|
elif news == None: # if news is none
|
||||||
send_to_user(f"Server error for keyword _{keyword}_\.", pUser_id=p_user_id, md_mode=True)
|
send_to_user(f"Server error for keyword _{keyword}_\.", pUser_id=p_user_id, md_mode=True)
|
||||||
=======
|
|
||||||
if not news: # if empty news array
|
|
||||||
send_to_user(f"No news found for keyword _{keyword}_.", pUser_id=p_user_id, md_mode=True)
|
|
||||||
|
|
||||||
elif news == None: # if news is none
|
|
||||||
send_to_user(f"Server error for keyword _{keyword}_.", pUser_id=p_user_id, md_mode=True)
|
|
||||||
>>>>>>> origin/main
|
|
||||||
else:
|
else:
|
||||||
news_formatted = news_fetcher.format_article(news[0]) # format for message, only use the most popular article
|
news_formatted = news_fetcher.format_article(news[0]) # format for message, only use the most popular article
|
||||||
send_to_user(f"_keyword: {keyword}_\n\n{news_formatted}", pUser_id=p_user_id, md_mode=True) # send news with related keyword in Markdown
|
send_to_user(f"_keyword: {keyword}_\n\n{news_formatted}", pUser_id=p_user_id, md_mode=True) # send news with related keyword in Markdown
|
||||||
|
Loading…
Reference in New Issue
Block a user