New try for bot and bot_updates #80
@ -8,14 +8,18 @@ __license__ = "None"
|
||||
|
||||
from calendar import month
|
||||
from symtable import Symbol
|
||||
from dotenv import load_dotenv
|
||||
from shares.share_fetcher import get_share_price
|
||||
import news.news_fetcher as news_fetcher
|
||||
import time
|
||||
import datetime
|
||||
import os
|
||||
from bot import bot
|
||||
import sys
|
||||
from multiprocessing import Process
|
||||
from apscheduler.schedulers.background import BackgroundScheduler
|
||||
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_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
|
||||
:raises: none
|
||||
|
||||
@ -41,7 +47,7 @@ def main_loop():
|
||||
"""
|
||||
|
||||
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)
|
||||
@ -140,7 +146,7 @@ def update_for_user(p_user_id, p_my_handler):
|
||||
share_courses.append(element["current_price"])
|
||||
|
||||
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:
|
||||
for i in range(len(share_symbols)):
|
||||
@ -148,9 +154,19 @@ def update_for_user(p_user_id, p_my_handler):
|
||||
send_to_user(my_update_message, pUser_id=p_user_id)
|
||||
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)
|
||||
|
||||
keywords = p_my_handler.get_user_keywords(p_user_id)
|
||||
|
||||
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):
|
||||
def send_to_user(pText, pUser_id = 1770205310, md_mode = False):
|
||||
|
||||
""" Send message to user
|
||||
:type pText: string
|
||||
@ -159,11 +175,18 @@ def send_to_user(pText, pUser_id = 1770205310):
|
||||
:type pUser_id: int
|
||||
: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
|
||||
|
||||
: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__":
|
||||
|
Loading…
Reference in New Issue
Block a user