def send_request(API_URI, method="GET"): spinner = Halo(text='\t Hold on a second ....', spinner='dots') spinner.start() try: response = requests.get(API_URI, timeout=5) resp_json = response.json() spinner.stop() return resp_json except Exception: logger.log_error( "Request Exception Occured! Please check network connection") spinner.stop()
def fetch_cases(args, VERSION): if args.emergency: # SOS emergency is set fetcher.fetch_sos_details() else: # Show world details as default if args.country: if args.country.lower() == "india": COUNTRY_DETAILS = fetcher.fetch_india_status() if not COUNTRY_DETAILS: log_error( "During fetching India status! Please try again!") return parser.global_parser(COUNTRY_DETAILS) if args.state: STATE_DETAILS = fetcher.fetch_india_status(args.state) if not STATE_DETAILS: log_error("State not found or something else!") return # run a different parser if all states are requested if args.state.lower() == "all": parser.global_parser_multiple(STATE_DETAILS) else: parser.global_parser(STATE_DETAILS) elif args.country.lower() == "world": WORLD_DETAILS = fetcher.fetch_world_details() if not WORLD_DETAILS: log_error("Error Occured while fetching world details.") parser.global_parser(WORLD_DETAILS) else: COUNTRY_DETAILS = fetcher.fetch_country_details(args.country) if not COUNTRY_DETAILS: log_error("Error Occured whie fetching country details") else: parser.global_parser(COUNTRY_DETAILS)
def global_parser_multiple(MULTIPLE_DETAILS, title="State"): try: x = PrettyTable() rangebi = printer.Rangebi() x.field_names = [ rangebi.get_in_info(title), rangebi.get_in_info(" Confirmed "), rangebi.get_in_warning(" Active "), rangebi.get_in_success(" Recovered "), rangebi.get_in_danger(" Deceased "), rangebi.get_in_danger(" Last Update On "), ] x.align = "c" x.align[rangebi.get_in_info(title)] = "l" state_name = "" # not used last_udpated_on_obj ? last_updated_on = "" # parsing country details for DETAILS in MULTIPLE_DETAILS: # parsing country details if title == "State": last_updated_on_obj = datetime.strptime( DETAILS['lastupdatedtime'], "%d/%m/%Y %H:%M:%S" ) last_updated_on = last_updated_on_obj.strftime( "%H:%M, on %b %d" ) state_name = DETAILS['state'] if state_name.lower() == 'total': state_name = 'India' if len(state_name) > 15: state_name_split = state_name.split() state_name = state_name_split[0] for i in state_name_split[1:]: state_name += " " + i[0] + "." total_confirmed_cases = helpers.formate_num( int(DETAILS['confirmed']) ) total_active_cases = helpers.formate_num( int(DETAILS['active']) ) total_recovered_cases = helpers.formate_num( int(DETAILS['recovered']) ) total_deceased_cases = helpers.formate_num(int(DETAILS['deaths'])) delta_confirmed_cases = helpers.formate_num( int(DETAILS['deltaconfirmed']) ) delta_active_cases = 0 delta_recovered_cases = helpers.formate_num( int(DETAILS['deltarecovered']) ) delta_deceased_cases = helpers.formate_num( int(DETAILS['deltadeaths']) ) if ('delta' in DETAILS): delta_confirmed_cases = helpers.formate_num( int(DETAILS['delta']['confirmed']) ) delta_active_cases = helpers.formate_num( int(DETAILS['delta']['active']) ) delta_recovered_cases = helpers.formate_num( int(DETAILS['delta']['recovered']) ) delta_deceased_cases = helpers.formate_num( int(DETAILS['delta']['deaths']) ) x.add_row([ str(state_name), str(total_confirmed_cases) + rangebi.get_in_danger( " (+" + str(delta_confirmed_cases) + ")" ), str(total_active_cases) + rangebi.get_in_warning( " (+" + str(delta_active_cases) + ")" ), str(total_recovered_cases) + rangebi.get_in_success( " (+" + str(delta_recovered_cases) + ")" ), str(total_deceased_cases) + rangebi.get_in_danger( " (+" + str(delta_deceased_cases) + ")" ), str(last_updated_on) ]) printer.new_lines() printer.get_tab() print( rangebi.get_in_bold( rangebi.get_in_warning( "# {} Status \t" ).format(title) ), "Stay Home Stay Safe" ) print(x) printer.new_lines(1) except Exception as e: print(e) logger.log_error("Excpetion occured while parsing")
def global_parser(DETAILS): try: x = PrettyTable(padding_width=3) rangebi = printer.Rangebi() # parsing country details last_updated_on = DETAILS['lastupdatedtime'] details_for = DETAILS['state'] if details_for.lower() == 'total': details_for = 'India' total_confirmed_cases = helpers.formate_num(int(DETAILS['confirmed'])) total_active_cases = helpers.formate_num(int(DETAILS['active'])) total_recovered_cases = helpers.formate_num(int(DETAILS['recovered'])) total_deceased_cases = helpers.formate_num(int(DETAILS['deaths'])) delta_confirmed_cases = helpers.formate_num( int(DETAILS['deltaconfirmed']) ) delta_active_cases = 0 delta_recovered_cases = helpers.formate_num( int(DETAILS['deltarecovered']) ) delta_deceased_cases = helpers.formate_num( int(DETAILS['deltadeaths']) ) if ('delta' in DETAILS): delta_confirmed_cases = helpers.formate_num( int(DETAILS['delta']['confirmed']) ) delta_active_cases = helpers.formate_num( int(DETAILS['delta']['active']) ) delta_recovered_cases = helpers.formate_num( int(DETAILS['delta']['recovered']) ) delta_deceased_cases = helpers.formate_num( int(DETAILS['delta']['deaths']) ) x.field_names = [ rangebi.get_in_info(" Confirmed "), rangebi.get_in_warning(" Active "), rangebi.get_in_success(" Recovered "), rangebi.get_in_danger(" Deceased "), ] x.add_row([ str(total_confirmed_cases) + rangebi.get_in_danger(" (+" + str(delta_confirmed_cases) + ")"), str(total_active_cases) + rangebi.get_in_warning(" (+" + str(delta_active_cases) + ")"), str(total_recovered_cases) + rangebi.get_in_success(" (+" + str(delta_recovered_cases) + ")"), str(total_deceased_cases) + rangebi.get_in_danger(" (+" + str(delta_deceased_cases) + ")") ]) printer.new_lines() printer.get_tab() print( rangebi.get_in_bold( rangebi.get_in_warning("# {} Status \t").format(details_for) ), "last update on :", rangebi.get_in_info(last_updated_on) ) print(x) printer.new_lines(1) if details_for.lower() == "world": print( rangebi.get_in_danger( "Total Countries Affected: " ), rangebi.get_in_bold( DETAILS['affectedCountries'] ) ) printer.new_lines(1) except Exception as e: logger.log_error("Excpetion occured while parsing")