Пример #1
0
def whatWeather(question):
    """
    Permet d'effectuer une requete API afin de récupérer et annoncer les détails de la météo
    :param question: la demande de météo de l'utilisateur
    """
    # On récupère la ville dans laquelle effectuer la requete API
    city = getCity(question)
    # On effectue une premiere requete dans la ville pour avoir les infos meteo actuel
    r = requests.get(f'http://api.openweathermap.org/data/2.5/weather?q={city}&lang=fr&units=metric&APPID=36a7954299258aa25bd9ba8ceb3ab077')
    # pprint(r.json())
    # On stock les resultats de la requete
    reponse = json.loads(r.text)
    # On stock les coordoonées GPS de la ville pour avoir beaucoup + d'informations meteo
    lat = reponse["coord"]["lat"]
    long = reponse["coord"]["lon"]
    # On conatene si la ville est en plusieurs mots
    if "+" in city:
        city = city.replace("+", " ")
    # On effectue la 2eme requete pour recuperer les details precis de la meteo sur la journee complete
    r = requests.get(f'https://api.openweathermap.org/data/2.5/onecall?lat={lat}&lon={long}&lang=fr&units=metric&exclude=hourly,minutely,alerts&APPID=36a7954299258aa25bd9ba8ceb3ab077')
    # pprint(r.json())
    reponse = json.loads(r.text)
    # On stock les differentes informations necessaires à annoncer par l'assistant
    description = reponse["current"]["weather"][0]["description"]
    tempCurrent = int (reponse["current"]["temp"])
    tempMin = int (reponse["daily"][0]["temp"]["min"])
    tempMax = int (reponse["daily"][0]["temp"]["max"])

    speak(f"Le temps est actuellement {description} avec une température de {tempCurrent} degré à {city}. Il fera {tempMin} degré au minimum et {tempMax} degré au maximum.")
Пример #2
0
def check_memo():
    """
    fonction va regarder dans un fichier texte et qui parcour tous les
    dictionnaires et compare la date du mémo ave la date actuelle pour voir si il doit speak le mémo
    :return:
    """
    fr_month = ("janvier", "février", "mars", "avril", "mai", "juin",
                "juillet", "août", "septembre", "octobre", "novembre",
                "décembre")
    date = datetime.datetime.now()
    mois = fr_month[date.month - 1]

    actualDate = f'{date.day} {mois} à {date.hour}h'

    file = open('memo_output/memo.txt', "r")
    lines = file.readlines()
    file.close()

    new_file = open("memo_output/memo.txt", "w")
    for line in lines:
        dictionary = ast.literal_eval(line)
        if actualDate in dictionary['date']:
            speak(
                f'Vous avez un rappel pour {dictionary["date"]}, pour {dictionary["memo"]} '
            )
            print(
                f'Vous avez un rappel pour {dictionary["date"]}, pour {dictionary["memo"]} '
            )
        else:
            new_file.write(line)

    new_file.close()
Пример #3
0
def addShoppingList(question):
    """
    Ajoute un élément à la liste de course
    :param question: la demande de l'utilisateur
    """
    if not os.path.exists(f'memo_output/shoppingList.txt'):
        open(f'memo_output/shoppingList.txt', 'w')

    # L'élément à ajouter dans la liste de course
    toAdd = question.split("ajoute à la liste de courses ")[1]
    print(toAdd)

    with open("memo_output/shoppingList.txt", "r") as f:
        lines = f.readlines()

    exist = False

    for line in lines:
        if line.replace("\n", "") in toAdd:
            speak(f'{toAdd} existe déjà dans votre liste de courses')
            exist = True
            break

    if exist is False:
        with open("memo_output/shoppingList.txt", "a") as f:
            f.write(toAdd + "\n")
        speak(f'{toAdd} a bien été ajouté à votre liste de course')
Пример #4
0
def deleteItemShoppingList(question):
    """
    Supprimer un élément de la liste de course
    :param question: la demande de l'utilisateur
    """
    # L'élément à supprimer de la liste de course
    toDelete = question.split("supprime de la liste de courses ")[1]
    found = False

    # On vérifie si l'item existe dans la liste de course et on le supprime s'il est trouvé
    with open("memo_output/shoppingList.txt", "r") as f:
        lines = f.readlines()
    for line in lines:
        if toDelete in line:
            found = True
            with open("memo_output/shoppingList.txt", "w") as f:
                for line in lines:
                    if line.replace("\n", "") in toDelete:
                        continue
                    else:
                        f.write(line)
            speak(f'{toDelete} a bien été supprimé de la liste de course')

    if found is False:
        speak(f"{toDelete} n'existe pas dans votre liste de course")
Пример #5
0
def speak_translate(phrase):
    """
    Permet à l'assistant vocal d'annoncerla traduction oralement'
    :param phrase: phrase donné par l'utilisateur
    """
    result = translate(phrase)
    speak(
        f'La traduction de {result["language"][0]} en {result["language"][1]} donne {result["traduction"]}'
    )
Пример #6
0
def whatDayToday():
    """
    Permet d'annoncer la date actuelle
    """
    fr_month = ("Janvier", "Février", "Mars", "Avril", "Mai", "Juin",
                "Juillet", "Août", "Septembre", "Octobre", "Novembre",
                "Décembre")
    date = datetime.datetime.now()
    mois = fr_month[date.month - 1]
    speak(f'Nous sommes le {date.day} {mois} {date.year}')
Пример #7
0
def covcases(question):
    """
    Permet d'annoncer les statistiques du covid dans un pays
    :param question: demande de l'utilisateur
    """
    covid = Covid()
    country = getCountry(question)
    countryConvert = getCountryConvert(country)

    result = covid.get_status_by_country_name(countryConvert)
    speak(
        f'Il y a {result["confirmed"]} cas, et {result["deaths"]} morts dû au covide en {country}'
    )
Пример #8
0
def getNearPlace(question):
    answer = question.split(" le")
    pos = gmaps.find_place(
        answer[1],
        "textquery",
        fields=["business_status", "geometry/location", "place_id"],
        language="fr-FR"
    )  # Fonction pour trouver la "place" la plus proche en fonction du mot clé, du format de demande, de la langue et de quelques champs
    near_place = gmaps.reverse_geocode(
        pos["candidates"][0]["geometry"]
        ["location"])  # Alterner entre Longitude/Latitude et Adresse
    found_address = near_place[2]["formatted_address"]
    print(found_address)
    speak(f'Le {answer[1]} le plus proche se trouve au {found_address}'
          )  # Adresse approximative trouvée la plus proche
Пример #9
0
def removeShoppingList():
    """
    Supprimer toute la liste de course
    :param question: la demande de l'utilisateur
    """
    speak("êtes-vous sur de vouloir vider la liste de course ?")
    reponse = ecouter()
    if reponse.lower() == "oui":
        with open("memo_output/shoppingList.txt", "w") as f:
            f.write("")
        speak("La liste de course a bien été vidé")
    else:
        speak("La liste de course n'a pas été vidé")
Пример #10
0
def getTravelTime(question):
    places = question.split(" au")

    SRC = getUserPosition()
    DEST = places[1]

    if "voiture" in question:
        result = getTime("driving", SRC, DEST)
        time = result[0]
        adress = result[1]
        time = replaceTime(time)
        speak(f'Pour aller au {DEST} il vous faudra {time} et faire {adress}')
    elif "à pied" in question:
        result = getTime("walking", SRC, DEST)
        time = result[0]
        adress = result[1]
        time = replaceTime(time)
        speak(f'Pour aller au {DEST} il vous faudra {time} et faire {adress}')
    elif " vélo" in question:
        result = getTime("bicycling", SRC, DEST)
        time = result[0]
        adress = result[1]
        time = replaceTime(time)
        speak(f'Pour aller au {DEST} il vous faudra {time} et faire {adress}')
    if " transport" in question:
        result = getTime("transit", SRC, DEST)
        time = result[0]
        # adress = result[1]
        departure_and_arrival = get_departure_and_arrival(SRC, DEST)
        departure = departure_and_arrival[0]
        arrival = departure_and_arrival[1]

        time = replaceTime(time)
        speak(
            f'Pour aller au {DEST} il vous faudra {time}, partir à {departure} pour arriver à {arrival}'
        )
Пример #11
0
def whatTimeIsIt():
    """
    Permet d'annoncer l'heure actuelle
    """
    date = datetime.datetime.now()
    speak(f'Il est : {date.hour} heure et {date.minute} minutes')