Viewing 1 reply thread
  • Author
    Posts
    • #8217
      lecagnois
      Participant

      Aller avant les vacances un petit tuto avec utilisation d’une API (Application Programming Interface)

      L’API ne fonctionne que pour les villes française. elle donne la météo sur 7 jours
      dans le TUTO nous allons extraire que la première journée .

      Nous pourrions modifier le code pour choisir un jour de la semaine ,mais j’ai fais simple .
      voici le code

      def meteo(ville) :
      	try:
      		page=urllib2.urlopen('http://api.meteorologic.net/forecarss?p='+ville) 
      		html = page.read()
      		# suppresion des balises
      		Chaine = html.replace("<strong>"," ").replace("</strong>"," ").replace("<br />"," ").replace("°C "," ")[925:2290].decode("utf-8")
      		chaine2 = Chaine.split(":")
      		if len(chaine2) > 1 :
      			talkBlocking("voici les previsions météo de "+ville)
      			talkBlocking ("le Matin : "+chaine2[1][:len(chaine2[1])-5])
      			talkBlocking ("a Midi : "+chaine2[2][:len(chaine2[2])-12])
      			talkBlocking ("Apres midi : "+chaine2[3][:len(chaine2[3])-5])
      			talkBlocking ("le Soir : "+chaine2[4][:len(chaine2[4])-20])
      		else :
      			talkBlocking("je ne connais que les Ville francaise")
      	except IOError:
      		talkBlocking("oups il y a une erreur")
      	except OSError:
      		talkBlocking("oups il y a une erreur")
      	except ValueError:
      		talkBlocking("oups il y a une erreur")
      	except:
      		print(sys.exc_info()[0])
      		raise

      Voici un bon exercice pour jouer sur les chaines de caractères en python :

      html = page.read()
      Lecture de la page HTLM

      Chaine = html.replace(““,” “).replace(““,” “).replace(“<br />”,” “).replace(“°C “,” “)[925:2290].decode(“utf-8”)
      Mise en forme avec suppression de balises HTML

      chaine2 = Chaine.split(“:”)
      Ici nous mettons le résultat dans un tableau

      talkBlocking (“le Matin : “+chaine2[1][:len(chaine2[1])-5])
      Ensuite on extrait les données du tableau .

      Pour appeler la fonction il faudra dire meteo à (votre ville) ou temps à (votre ville)
      Voici le fichier AIML :

      	<category>
            <pattern>météo à *</pattern>
            <template>
      			<oob>
      				<mrl>
      				   <service>python</service>
      				   <method>exec</method>
      				   <param>meteo("<star index="1"/>")</param>
      				 </mrl>
      			</oob>
      	</template>
          </category>
      	<category>
            <pattern>temps à *</pattern>
            <template>
      			<oob>
      				<mrl>
      				   <service>python</service>
      				   <method>exec</method>
      				   <param>meteo("<star index="1"/>")</param>
      				 </mrl>
      			</oob>
      	</template>
          </category>	
      • This topic was modified 7 years, 8 months ago by lecagnois.
      Attachments:
      You must be logged in to view attached files.
    • #8220
      lecagnois
      Participant

      ERRATUM :

      Avec la voix de MaryTTS il n’arrive pas a lire les chiffres correctement
      cela fonctionne avec les autres voix

Viewing 1 reply thread
  • You must be logged in to reply to this topic.