55import requests
66
77import dynaconfig
8- import news_db
98
109# Time range for sending messages loaded from settings.toml
1110TIME_TO_SEND_START = dynaconfig .settings ["TIMINIGS" ]["TIME_TO_SEND_START" ]
2827API_URL = f"https://api.telegram.org/bot{ API_TOKEN } /sendMessage"
2928CHAT_ID = dynaconfig .settings ["TELEGRAM" ]["CHAT_ID" ]
3029
30+ NEWS_DB_API_URL = dynaconfig .settings ["DB" ]["DB_API_URL" ]
31+
32+
33+ def check_api_available () -> bool :
34+ try :
35+ logging .info (f"Try to connect to API, URL: { NEWS_DB_API_URL } /healthcheck" )
36+ time .sleep (1 )
37+ return requests .get (f"{ NEWS_DB_API_URL } /healthcheck" ).ok
38+ except (ConnectionError , ConnectionRefusedError ) as con_err :
39+ logging .error (con_err )
40+
3141
3242def send_news_to_telegram (message ):
3343 """
@@ -40,15 +50,15 @@ def send_news_to_telegram(message):
4050 API_URL ,
4151 json = {
4252 "chat_id" : CHAT_ID ,
43- "text" : f"Author: { message [0 ]} \n "
53+ "text" : f"Author: { message ['author' ]} \n "
4454 f"\n "
45- f"Title: { message [1 ]} \n "
55+ f"Title: { message ['title' ]} \n "
4656 f"\n "
47- f"{ message [2 ]} \n "
57+ f"{ message ['description' ]} \n "
4858 f"\n "
49- f"URL: { message [3 ]} \n "
59+ f"URL: { message ['url' ]} \n "
5060 f"\n "
51- f"Date published: { message [4 ]} \n " ,
61+ f"Date published: { message ['pub_date' ]} \n " ,
5262 },
5363 )
5464 if response .status_code == 200 :
@@ -64,14 +74,13 @@ def send_news_to_telegram(message):
6474
6575
6676if __name__ == "__main__" :
67- db_connection = news_db .create_connection (news_db .DB_FILE )
6877 while True :
69- if db_connection :
78+ if check_api_available () :
7079 time .sleep (1 )
7180 current_time = datetime .now ().strftime ("%H:%M" )
7281 if TIME_TO_SEND_START < current_time < TIME_TO_SEND_END :
7382 logging .info ("Time to send news has come !" )
74- data_from_db = news_db . send_all_news ( db_connection )
83+ data_from_db = requests . get ( NEWS_DB_API_URL ). json ( )
7584 if len (data_from_db ) == 0 :
7685 logging .warning ("Database is empty !" )
7786 else :
@@ -83,4 +92,4 @@ def send_news_to_telegram(message):
8392 else :
8493 logging .info ("Still waiting to send." )
8594 else :
86- logging .error ("Connection to db is not exist !" )
95+ logging .error ("API is not available !" )
0 commit comments