implemented News to scheduled User Update
This commit is contained in:
parent
78dfde7a86
commit
d163ba08f3
@ -8,14 +8,18 @@ __license__ = "None"
|
|||||||
|
|
||||||
from calendar import month
|
from calendar import month
|
||||||
from symtable import Symbol
|
from symtable import Symbol
|
||||||
|
from dotenv import load_dotenv
|
||||||
from shares.share_fetcher import get_share_price
|
from shares.share_fetcher import get_share_price
|
||||||
|
import news.news_fetcher as news_fetcher
|
||||||
import time
|
import time
|
||||||
import datetime
|
import datetime
|
||||||
|
import os
|
||||||
from bot import bot
|
from bot import bot
|
||||||
import sys
|
import sys
|
||||||
from multiprocessing import Process
|
from multiprocessing import Process
|
||||||
from apscheduler.schedulers.background import BackgroundScheduler
|
from apscheduler.schedulers.background import BackgroundScheduler
|
||||||
from api_handling.api_handler import API_Handler
|
from api_handling.api_handler import API_Handler
|
||||||
|
from telegram_bot.news.news_fetcher import format_article
|
||||||
|
|
||||||
|
|
||||||
'''
|
'''
|
||||||
@ -33,7 +37,9 @@ example 0 8 * * * -> daily update at 8am
|
|||||||
user_ids = []
|
user_ids = []
|
||||||
user_crontab = []
|
user_crontab = []
|
||||||
|
|
||||||
def main_loop():
|
load_dotenv(dotenv_path='.env')
|
||||||
|
|
||||||
|
def main_loop(): #loop? this is not a loop it is executed once (rename?)
|
||||||
""" main loop for regularly sending updates
|
""" main loop for regularly sending updates
|
||||||
:raises: none
|
:raises: none
|
||||||
|
|
||||||
@ -41,7 +47,7 @@ def main_loop():
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
current_time_datetime = datetime.datetime.now()
|
current_time_datetime = datetime.datetime.now()
|
||||||
my_handler = API_Handler("https://gruppe1.testsites.info/api", "bot@example.com", "bot")
|
my_handler = API_Handler("https://gruppe1.testsites.info/api", str(os.getenv("BOT_EMAIL")), str(os.getenv("BOT_PASSWORD")))
|
||||||
|
|
||||||
|
|
||||||
# update_for_user(5270256395, my_handler) # Debug (running test update for kevins shares)
|
# update_for_user(5270256395, my_handler) # Debug (running test update for kevins shares)
|
||||||
@ -140,7 +146,7 @@ def update_for_user(p_user_id, p_my_handler):
|
|||||||
share_courses.append(element["current_price"])
|
share_courses.append(element["current_price"])
|
||||||
|
|
||||||
my_user = p_my_handler.get_user(p_user_id)
|
my_user = p_my_handler.get_user(p_user_id)
|
||||||
send_to_user("Hello %s this is your share update:"%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)
|
||||||
|
|
||||||
if len(share_symbols) != 0:
|
if len(share_symbols) != 0:
|
||||||
for i in range(len(share_symbols)):
|
for i in range(len(share_symbols)):
|
||||||
@ -149,8 +155,18 @@ def update_for_user(p_user_id, p_my_handler):
|
|||||||
else:
|
else:
|
||||||
send_to_user("No shares found for your account. Check https://gruppe1.testsites.info/api to change your settings and add shares.", pUser_id=p_user_id)
|
send_to_user("No shares found for your account. Check https://gruppe1.testsites.info/api to change your settings and add shares.", pUser_id=p_user_id)
|
||||||
|
|
||||||
|
keywords = p_my_handler.get_user_keywords(p_user_id)
|
||||||
|
|
||||||
def send_to_user(pText, pUser_id = 1770205310):
|
if(keywords):
|
||||||
|
send_to_user("If you haven't read yet: \nHere are some interesting news according to your keywords:", pUser_id=p_user_id)
|
||||||
|
for keyword in keywords:
|
||||||
|
news = news_fetcher.get_top_news_by_keyword(keyword)["articles"][0]
|
||||||
|
news_formatted = news_fetcher.format_article(news)
|
||||||
|
send_to_user(f"_keyword: {keyword}_\n\n{news_formatted}", pUser_id=p_user_id, md_mode=True)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def send_to_user(pText, pUser_id = 1770205310, md_mode = False):
|
||||||
|
|
||||||
""" Send message to user
|
""" Send message to user
|
||||||
:type pText: string
|
:type pText: string
|
||||||
@ -159,11 +175,18 @@ def send_to_user(pText, pUser_id = 1770205310):
|
|||||||
:type pUser_id: int
|
:type pUser_id: int
|
||||||
:param pUser_id: user to send to. per default me (Florian Kellermann)
|
:param pUser_id: user to send to. per default me (Florian Kellermann)
|
||||||
|
|
||||||
|
:type md_mode: boolean
|
||||||
|
:param md_mode: if true, parse_mode is markdown
|
||||||
|
|
||||||
:raises: none
|
:raises: none
|
||||||
|
|
||||||
:rtype: none
|
:rtype: none
|
||||||
"""
|
"""
|
||||||
bot.send_message(chat_id=pUser_id, text=pText)
|
if md_mode:
|
||||||
|
bot.send_message(chat_id=pUser_id, text=pText, parse_mode="MARKDOWN")
|
||||||
|
else:
|
||||||
|
bot.send_message(chat_id=pUser_id, text=pText)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
Loading…
Reference in New Issue
Block a user