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)
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
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")
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")}')
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"])