Esempio n. 1
0
def check_today_cases(countryname):
    if countryname == 'all':
        stats = GlobalStats.get().todayCases
    else:
        stats = CountryStats.select().where(CountryStats.country.contains(countryname)).get().todayCases

    return int(stats)
Esempio n. 2
0
def did_you_mean(text):
    from difflib import get_close_matches
    all_countries = []
    query = CountryStats.select(CountryStats.country)
    for country in query:
        all_countries.append(country.country)
    close_match = get_close_matches(text, all_countries, n=1)
    if close_match:
        return close_match[0]
    else:
        return None
Esempio n. 3
0
def top_deaths(message):
    LOGGER.info(
        f"{message.chat.id}-{message.chat.username}-command:{message.text}")
    language = language_check(message.chat.id)
    top_stats_message = config.TRANSLATIONS[language]["topdeaths"] + '\n\n'
    update_user_checktime(message.chat.id)
    stats = CountryStats.select().order_by(
        CountryStats.deaths.desc()).limit(10)
    for country in stats:
        top_stats_message += config.TRANSLATIONS["bycountry"].format(country)
    BOT.send_message(message.chat.id, top_stats_message, parse_mode="Markdown")
Esempio n. 4
0
def all_countries():
    response = requests.get(
        "https://disease.sh/v3/covid-19/countries?sort=cases")
    data = response.json()
    CountryStats.delete().execute()
    for country in data:
        if "'" in country["country"]:
            country["country"] = country["country"].replace("'", "''")
        CountryStats.create(country=country["country"],
                            cases=country["cases"],
                            todayCases=country["todayCases"],
                            deaths=country["deaths"],
                            todayDeaths=country["todayDeaths"],
                            recovered=country["recovered"],
                            todayRecovered=country["todayRecovered"],
                            critical=country["critical"],
                            active=country["active"],
                            casesPerOneMillion=country["casesPerOneMillion"],
                            deathsPerOneMillion=country["deathsPerOneMillion"],
                            tests=country["tests"],
                            updated=convert_updated(country["updated"]))
    now = datetime.datetime.now()
    print(f'Data for countries updated: {now.strftime("%Y-%m-%d %H:%M:%S")}')
Esempio n. 5
0
def check_country(message, text=None):
    """
    Check country in the database.
    """
    language = language_check(message.chat.id)
    try:
        if text:
            countrystats = CountryStats.select().where(
                CountryStats.country.contains(text)).order_by(
                    CountryStats.cases.desc()).get()
        else:
            countrystats = CountryStats.select().where(
                CountryStats.country.contains(message.text)).order_by(
                    CountryStats.cases.desc()).get()

        if not countrystats:
            country_guess = did_you_mean(message.text)
            if country_guess:
                BOT.send_message(message.chat.id,
                                 f"Sorry! Did you mean *{country_guess}*?",
                                 parse_mode="Markdown")
            else:
                BOT.send_message(
                    message.chat.id,
                    config.TRANSLATIONS[language]["wrong-country"])
            return None
        return countrystats
    except:
        country_guess = did_you_mean(message.text)
        if country_guess:
            BOT.send_message(message.chat.id,
                             f"Sorry! Did you mean *{country_guess}*?",
                             parse_mode="Markdown")
        else:
            BOT.send_message(message.chat.id,
                             config.TRANSLATIONS[language]["wrong-country"])