Beispiel #1
0
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)
Beispiel #3
0
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")
Beispiel #4
0
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")