def setTime(client,message,query): result = 0 temp = [] while("s" in query or "m" in query or "h" in query or "gg" in query): try: if "gg" in query: temp = query.split("gg") result += int(temp[0]) * time_dict["gg"] query = temp[1] if "h" in query: temp = query.split("h") result += int(temp[0]) * time_dict["h"] query = temp[1] if "m" in query: temp = query.split("m") result += int(temp[0]) * time_dict["m"] query = temp[1] if "s" in query: temp = query.split("s") result += int(temp[0]) * time_dict["s"] query = temp[1] except: return ugc.sendMessage(client,message,"__formato non valido__") if(checktime(result) or result == 0): return ugc.sendMessage(client,message,"__Range tempo promemoria non valido__") return result
def help(query, client, message): help_file = ugc.get_config_file("help.json") if query in help_array: help_request = help_file[query][0:] help_request = str(help_request).replace("(", "").replace( ")", "").replace('"', '').replace(",", "").replace(r'\n', '\n') return ugc.sendMessage(client, message, help_request) else: help_request = help_file["default"] return ugc.sendMessage(client, message, help_request)
def urban_search(query,client,message): result = "" defs = ud.define(query) if len(defs) == 0: return sendMessage(client,message,"__Error 404: not found__") for item in defs: result += "**" + item.word + "**" result += "\n**Definition:**\n" + item.definition + "\n" result += "**Example:** __" + item.example + "__\n\n" result += "++++++++++++++++++++++++++++++++\n" return sendMessage(client,message,result)
def set_reminder(query,client,message): split = query.split(";") countdown = setTime(client,message,split[0]) if(countdown is None): return try: msg = split[1] except: return ugc.sendMessage(client,message,"__formato non valido__") ugc.sendMessage(client,message,"Te lo ricorderò!") time.sleep(countdown) return ugc.sendMessage(client,message,msg)
def execute_lyrics(query,client,message): parametri = query.split(",") if len(parametri) > 1: result = get_lyrics_formated(parametri[0],parametri[1]) else: result = search_songs(parametri[0]) return sendMessage(client,message,result)
def vaccinepoints(client,message,split_query): if(len(split_query) == 1): return ugc.sendMessage(client,message,"__Errore formato.\n/helprob vaccine per più dettagli sul comando.__") data_points = vaccine_format_json('https://raw.githubusercontent.com/italia/covid19-opendata-vaccini/master/dati/punti-somministrazione-latest.json') if(check_repo(data_points)): return ugc.sendMessage(client,message,"__Errore repository sorgente__") result = "__**Punti di somministrazione trovati nella provincia di " + split_query[1].title() + "__**\n" str_points = "" provincia = split_query[1] for item in data_points: if(provincia[0:6].title() in item["provincia"].title()): str_points += "**Punto:** __" + str(item["presidio_ospedaliero"]).title() + "__ **(" + str(item["comune"]).title() + ")**\n" if(str_points == ""): result = "__**Nessun punto di somministrazione trovato**__" else: result += str_points return ugc.sendMessage(client,message,result)
def play_lotto(query, client, message): numbers = [] while len(numbers) < 6: n = random.randint(1, 90) if n not in numbers: numbers.append(n) result = '<code> ' result += ' '.join(str(n) for n in numbers) result += ' </code>' return ugc.sendMessage(client, message, result)
def vaccine(query,client,message): data_total = pd.read_csv('https://raw.githubusercontent.com/italia/covid19-opendata-vaccini/master/dati/vaccini-summary-latest.csv') data_consegne_fornitori = pd.read_csv('https://raw.githubusercontent.com/italia/covid19-opendata-vaccini/master/dati/consegne-vaccini-latest.csv') data_somministrazioni = pd.read_csv('https://raw.githubusercontent.com/italia/covid19-opendata-vaccini/master/dati/somministrazioni-vaccini-latest.csv') total_consegne = 0 total_somm = 0 if(query == "/vaccine"): total_consegne = sum(data_total["dosi_consegnate"]) total_somm = sum(data_total["dosi_somministrate"]) regione = "Italia" else: for i in data_total['nome_area'].unique(): if query.title() in i: regione = i total_consegne = sum(data_total[data_total['nome_area'] == regione]["dosi_consegnate"]) total_somm = sum(data_total[data_total['nome_area'] == regione]["dosi_somministrate"]) if(total_consegne == 0): return ugc.sendMessage(client,message,"__Errore formato.\n/helprob vaccine per più dettagli sul comando.__") perc = str(round(((total_somm * 100) / total_consegne),2)) giorno = str(data_total["ultimo_aggiornamento"].unique()[0]) fornitori = data_consegne_fornitori['fornitore'].unique() fornitori_somma = [] forn_str = "" prima_dose = seconda_dose = dose_booster = 0 if(query == "/vaccine"): for i in fornitori: fornitori_somma.append(sum(data_consegne_fornitori[data_consegne_fornitori['fornitore'] == i]['numero_dosi'])) prima_dose = sum(data_somministrazioni["prima_dose"]) seconda_dose = sum(data_somministrazioni["seconda_dose"]) dose_booster = sum(data_somministrazioni["dose_addizionale_booster"]) else: for i in fornitori: fornitori_somma.append(sum(data_consegne_fornitori[(data_consegne_fornitori['fornitore'] == i) & (data_consegne_fornitori['nome_area'] == regione)]['numero_dosi'])) prima_dose = sum(data_somministrazioni[data_somministrazioni['nome_area'] == regione]["prima_dose"]) seconda_dose = sum(data_somministrazioni[data_somministrazioni['nome_area'] == regione]["seconda_dose"]) dose_booster = sum(data_somministrazioni[data_somministrazioni['nome_area'] == regione]["dose_addizionale_booster"]) for i in range(len(fornitori)): forn_str += "**" + fornitori[i] + ":** __" + format_values(fornitori_somma[i]) + "__\n" result = "Dati complessivi sui vaccini in __**" + regione + "**__ :\n**__Ultimo aggiornamento: " + giorno + "__**\n\n**Dosi consegnate:** __" + format_values(total_consegne) + "__\n**Dosi somministrate:** __" + format_values(total_somm) + "__\n\n**Percentuale dosi somministrate:** __" + str(perc) + "__\n**Totale prime dosi:** __" + format_values(prima_dose) + "__\n**Totale seconde dosi:** __" + format_values(seconda_dose) + "__\n**Totale dosi booster:** __" + format_values(dose_booster) + "__\n\nTra le dosi consegnate vi sono:\n" + forn_str return ugc.sendMessage(client,message,result)
def covid_cases(query,client,message): regioni = covid_format_json('https://raw.githubusercontent.com/pcm-dpc/COVID-19/master/dati-json/dpc-covid19-ita-regioni-latest.json') italia = covid_format_json('https://raw.githubusercontent.com/pcm-dpc/COVID-19/master/dati-json/dpc-covid19-ita-andamento-nazionale-latest.json') trovata = False if(check_repo(regioni) or check_repo(italia)): return ugc.sendMessage(client,message,"__Errore repository sorgente__") for item in regioni: if(query.title()[0:5] in item["denominazione_regione"]): regione = item["denominazione_regione"] nuovi_positivi = str(item["nuovi_positivi"]) var_positivi = str(item["variazione_totale_positivi"]) ricoverati = str(item["ricoverati_con_sintomi"]) terapia_intensiva = str(item["terapia_intensiva"]) ingressi_ti = str(item["ingressi_terapia_intensiva"]) isolamento = str(item["isolamento_domiciliare"]) deceduti = str(item["deceduti"]) giorno = str(item["data"])[0:10] trovata = True break elif(query == "/covid"): for item in italia: regione = "Italia" nuovi_positivi = str(item["nuovi_positivi"]) var_positivi = str(item["variazione_totale_positivi"]) ricoverati = str(item["ricoverati_con_sintomi"]) terapia_intensiva = str(item["terapia_intensiva"]) ingressi_ti = str(item["ingressi_terapia_intensiva"]) isolamento = str(item["isolamento_domiciliare"]) deceduti = str(item["deceduti"]) giorno = str(item["data"])[0:10] trovata = True break if(trovata): result = "I nuovi positivi in data **" + giorno +"** in __**" + regione + "**__ sono: **" + format_values(nuovi_positivi) + "**\nAttualmente vi sono:\n\n __pazienti ricoverati con sintomi:__ **" +format_values(ricoverati) +"**\n __pazienti in terapia intensiva:__ **" + format_values(terapia_intensiva) + "**\n __pazienti in isolamento domiciliare:__ **" + format_values(isolamento) + "**\n __pazienti deceduti:__ **" + format_values(deceduti) + "**\n\n" + "__ingressi t.i. :__ **" + format_values(ingressi_ti) + "**\n__variazione positivi:__ **" + format_values(var_positivi) + "**" return ugc.sendMessage(client,message,result) else: return ugc.sendMessage(client,message,"__Regione non trovata__")
def execute_lyrics(query,client,message): parametri = query.split(",") result = get_lyrics_formated(parametri[0],parametri[1]) return sendMessage(client,message,result)
def ping(query, client, message): return ugc.sendMessage(client, message, "pong " + query.replace("/pingrob", ""))