@@ -15,14 +15,15 @@ def import_to_raw_json(data:dict[str, Any], category: str, key_word: str, page:
1515 timestamp = datetime .now ().strftime ("%Y-%m-%d_%H-%M-%S" )
1616 create_data = f"{ timestamp } _{ category } _{ key_word } _page_{ page } .json"
1717 file_path = raw_dir / create_data
18+
1819 with open (file_path , "w" , encoding = "utf-8" ) as f :
1920 json .dump (data , f , ensure_ascii = False , indent = 2 )
2021
2122 return create_data
2223
2324
2425
25- def make_extract (category : str , key_word : str , page : int = 1 , page_size : int = 100 ) -> str :
26+ def make_extract (category : str , key_word : str , page : int = 1 , page_size : int = 100 ) -> tuple [ str , int ] :
2627 params = {
2728 "apiKey" : settings .KEY_API ,
2829 "country" :settings .COUNTRY ,
@@ -33,18 +34,18 @@ def make_extract(category: str, key_word: str, page: int = 1, page_size: int = 1
3334 }
3435 try :
3536 data = r .get (settings .NEWS_URL , params = params , timeout = 15 )
36- data .raise_for_status ()
3737 payload = data .json ()
3838 logger .info (f"raise of status: { data .raise_for_status ()} " )
3939 payload ["fetched_at" ] = datetime .now ().isoformat ()
4040 payload ["country" ] = settings .COUNTRY
4141 payload ["category" ] = category
4242 payload ["key_word" ] = key_word
43- if payload .get ("totalResults" , 0 ) == 0 :
44- logger .info ("There no more articles" )
43+ articles_count = len (payload .get ("articles" , []))
44+ if articles_count == 0 :
45+ logger .info ("There are no more articles" )
4546
4647 new_file_name = import_to_raw_json (payload , category , key_word , page )
47- return new_file_name
48+ return new_file_name , articles_count
4849
4950 except r .exceptions .Timeout :
5051 logger .error ("Error: NewsAPI reauest time out" )
0 commit comments