Viewing 2 reply threads
  • Author
    Posts
    • #9596
      lecagnois
      Participant

      L hiver approche nous allons reprendre l’écriture de script PYTHON

      L’idée notre robot nous annonce notre planning du jour et J + 1.
      Pour cela nous allons lire un fichier EXCEL .Nous aurions pu utiliser la bibliothèque xrld (special excel pour python) mais malheureusement elle n’est pas implémenté dans mrl .

      Nous allons donc utiliser les bibliothèques time et csv qui sont déjà implémenté .

      Nous devrons donc sauvegarder notre planning EXCEL au format csv (déja utilisé avec aiml)
      CI joint photo a quoi ressemble le fichier excel

      Voici le script python

      def planning():
      	fname = "d:/planning.csv"
      	file = open(fname, "r")
      	dataJ=[]
      	dataJ2=[]
      	try :
      		# Création du lecteur CSV.
      		reader = csv.reader(file,delimiter=";")
      		# Boucle lecture lignes une par une.
      		for row in reader:
      			#print(row)
      			# extraire dans tableau dataJ les donnees du jour J
      			if (row[0]) ==  time.strftime('%d/%m/%Y') and (row[0]) != "" :
      				dataJ.append(row)
      			# extraire dans tableau dataJ2 les donnees du jour + 1    
      			if (row[0]) ==  time.strftime( str(int(time.strftime('%d'))+1)+'/%m/%Y') and (row[0]) != "" :
      				dataJ2.append(row)
          
      		if len(dataJ) > 0 :
      			talkBlocking("planning du" + time.strftime('%d %m %Y'))
      			sleep(1)
      			for rdv in dataJ:
      				talkBlocking (rdv[2]+" "+rdv[3]+" "+rdv[4])
      				sleep(1)
      		else :
      			talkBlocking ("rien de prévu ce jour")
      			sleep(1)
      
      		if len(dataJ2) > 0 :
      			talkBlocking("demain")
      			sleep(1)
      			for rdv in dataJ2:
      				talkBlocking (rdv[2]+" "+rdv[3]+" "+rdv[4])
      				sleep(1)
      		else :
      			talkBlocking ("demain pas de rendez vous")
                
      	finally:
      		# Fermeture du fichier source
      		file.close()
      

      dans la variable fname mettre le chemin d’accès de votre fichier planning.csv
      le reste du code est commenté , cela reste un petit script
      on pourrait utiliser des taches de google mais c est un peu plus compliqué …..

      Maintenant le fichier AIML

      <category><pattern>PLANNING</pattern>
      <template><oob>
      				<mrl>
      				   <service>python</service>
      				   <method>exec</method>
      				   <param>planning()</param>
      				 </mrl>
      			</oob></template>
      </category>
      <category><pattern>DONNE MOI MON PLANNING</pattern>
      <template><oob>
      				<mrl>
      				   <service>python</service>
      				   <method>exec</method>
      				   <param>planning()</param>
      				 </mrl>
      			</oob></template>
      </category> 

      Script testé avec version MRL 2590 voix française MicrosoftLocalTTS voix de Julie

      [TTS]
      MyLanguage=fr
      ; en,fr,es,de,nl,ru
      
      MyvoiceTTS=MicrosoftLocalTTS
      ; you can use MarySpeech,Polly,VoiceRss,MicrosoftLocalTTS,MicrosoftSpeech,IndianTts
      
      MyvoiceType=3
      ;MyvoiceType=cmu-bdl-hsmm
      ; Voices are automatic donwloaded
      ; MaryTTS voices - take HSMM ones - http://myrobotlab.org/content/marytts-multi-language-support
      ; MicrosoftLocalTTS : use local windows voices ( 0 hortense,1 Paul, 2 ZIRA anglais ,3 Julie etc ) print mount.getVoices()
      
      ; amazon polly : 

      J ai ajouté des sleep(1) (pause) car MRL a tendance à répondre pendant que talkBlocking lit la phrase

      Donc vous dite le mot PLANNING ou DONNE MOI MON PLANNING et InMOOV vous lira votre planning EXCEL.
      Bonne programmation

      EN PIECES JOINTE PHOTO DU CODE car l’éditeur du site a des problèmes de format

      • This topic was modified 5 years, 1 month ago by lecagnois.
      Attachments:
      You must be logged in to view attached files.
    • #9603
      BIGIARINI Vincent
      Participant

      Ah c’est sympas çà ! Mais l’ideal serait de récupérer le calendrier Outlook ! C’est possible ?

      Surement !

      https://support.microsoft.com/fr-fr/help/469597

    • #9609
      lecagnois
      Participant

      @ Vincent
      Il suffit de modifier le fichier python en rapport a ton fichier excel
      Ici on extrais la date dans la première colonne (row[0])(oui ça commence a zéro)

      # extraire dans tableau dataJ les donnees du jour J
      if (row[0]) == time.strftime(‘%d/%m/%Y’) and (row[0]) != “” :

      il suffit de modifier les valeurs en conséquence de ton exportation calendar ici dans l’exemple la date est dans le champs 1
      cela devient :
      if (row[1]) == time.strftime(‘%d/%m/%Y’) and (row[0]) != “” :

      IDEM pour extraire les informations de dataJ et dataJ2
      talkBlocking (rdv[2]+” “+rdv[3]+” “+rdv[4])
      tu mets le numéro de champs que tu veux récupérer

      ci joint exemple avec logiciel python (avant de saisir dans mrl , je teste les scripts avec python)

      J espère que ce n’est pas trop confus

      Attachments:
      You must be logged in to view attached files.
Viewing 2 reply threads
  • You must be logged in to reply to this topic.