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 } " )
36+ return requests .get (NEWS_DB_API_URL ).ok
37+ except (ConnectionError , ConnectionRefusedError ) as con_err :
38+ logging .error (con_err )
39+
3140
3241def send_news_to_telegram (message ):
3342 """
@@ -40,15 +49,15 @@ def send_news_to_telegram(message):
4049 API_URL ,
4150 json = {
4251 "chat_id" : CHAT_ID ,
43- "text" : f"Author: { message [0 ]} \n "
52+ "text" : f"Author: { message ['author' ]} \n "
4453 f"\n "
45- f"Title: { message [1 ]} \n "
54+ f"Title: { message ['title' ]} \n "
4655 f"\n "
47- f"{ message [2 ]} \n "
56+ f"{ message ['description' ]} \n "
4857 f"\n "
49- f"URL: { message [3 ]} \n "
58+ f"URL: { message ['url' ]} \n "
5059 f"\n "
51- f"Date published: { message [4 ]} \n " ,
60+ f"Date published: { message ['pub_date' ]} \n " ,
5261 },
5362 )
5463 if response .status_code == 200 :
@@ -64,14 +73,13 @@ def send_news_to_telegram(message):
6473
6574
6675if __name__ == "__main__" :
67- db_connection = news_db .create_connection (news_db .DB_FILE )
6876 while True :
69- if db_connection :
77+ if check_api_available () :
7078 time .sleep (1 )
7179 current_time = datetime .now ().strftime ("%H:%M" )
7280 if TIME_TO_SEND_START < current_time < TIME_TO_SEND_END :
7381 logging .info ("Time to send news has come !" )
74- data_from_db = news_db . send_all_news ( db_connection )
82+ data_from_db = requests . get ( NEWS_DB_API_URL ). json ( )
7583 if len (data_from_db ) == 0 :
7684 logging .warning ("Database is empty !" )
7785 else :
@@ -83,4 +91,4 @@ def send_news_to_telegram(message):
8391 else :
8492 logging .info ("Still waiting to send." )
8593 else :
86- logging .error ("Connection to db is not exist !" )
94+ logging .error ("API is not available !" )
0 commit comments