Forum des Objets Communicants et Solutions pour les Libérer...


 
AccueilAccueil  GalerieGalerie  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  

Partagez
 

 Applescript

Aller en bas 
AuteurMessage
mtt
Lapin nain
Lapin nain


Localisation : Paris
Nbr de messages : 4
Carottes : 4729

Applescript Empty
MessageSujet: Applescript   Applescript Icon_minitimeVen 29 Déc 2006 - 22:06

Bonjour,

Je viens de rejoindre la communauté du Lapin/pin.

Afin d'éviter à toute ma famille de s'inscrire sur le site my.nabaztag.com pour m'envoyer des messages parlés, j'ai créé une adresse @laposte.net pour mon lapin.
Sur MacOS, grâce à l'application Mail et à des scripts Applescript, je fais lire au lapin les sujets des messages envoyés sur son adresse @laposte.net (le mac mini toujours allumé qui me sert de télé/jukebox relève le mail toutes les minutes).

Voici le code de l'application Applescript "MonLapin" qui tourne en tâche de fond :

Code:
property base_url : "http://api.nabaztag.com/vl/FR/api.jsp?sn=SERIAL&token=TOKEN&"

to talk given tts:tts, ttlive:ttlive, voice:voice
   callUrl("tts=" & tts & "&voice=" & voice & "&ttlive=" & ttlive)
end talk

to callUrl(parameters)
   set urlToGet to base_url & parameters
   set theFile to (path to temporary items folder as text) & "api_nabaztag.xml"
   set donnees to "ERROR"
   
   tell application "URL Access Scripting"
      try
         set fileGot to download urlToGet to theFile replacing yes
         set fileGotOpened to open for access theFile
         set donnees to read fileGotOpened
         close access fileGotOpened
      end try
   end tell
   return donnees
end callUrl

Et voici le code de la règle Mail :

Code:
using terms from application "Mail"
   on perform mail action with messages selectedMsgs for rule theRule
      repeat with msg in selectedMsgs
         set logString to "Message pour " & (name of theRule) & " de la part de " & (extract name from sender of msg) & " : " & (subject of msg) & "."
         tell application "MonLapin"
            talk given tts:logString, voice:"julie22k", ttlive:"86400"
         end tell
      end repeat
   end perform mail action with messages
end using terms from

Dans Mail, j'ai créé un compte POP avec les paramètres suivants :
- ne pas conserver les messages supprimés
- règle (appelée "le lapin") appliquée à tous les messages : supprimer le message + exécuter le script.

J'ai profité d'une fenêtre temporelle pendant laquelle l'API fonctionnait pour tester, et ça marche.

Si vous avez plusieurs lapins, il suffit de créer autant d'application "MonLapin" que de lapins (par exemple en donnant le nom du lapin à l'application).

Ca devrait être facile aussi de créer un script-alarme pour iCal pour faire dire au lapin certaines choses à certains moments.
Et aussi faire la même chose vers un nabcast au lieu d'un lapin.
Revenir en haut Aller en bas
chipo
Gold Nabz
Gold Nabz
chipo

Age : 56
Localisation : Orléans
Nabaztag : Chipo V2
Nbr de messages : 706
Carottes : 4793

Applescript Empty
MessageSujet: Re: Applescript   Applescript Icon_minitimeSam 30 Déc 2006 - 0:41

ha c est génial merci pour l'idée mais j'ai pas de mac et l'api est hs
yellownabzsad
Revenir en haut Aller en bas
Lost
Lapin nain
Lapin nain
Lost

Localisation : M41, Orion
Nabaztag : Lilapin
Nbr de messages : 23
Carottes : 4728

Applescript Empty
MessageSujet: Re: Applescript   Applescript Icon_minitimeSam 30 Déc 2006 - 1:41

oh moi j en ai 8 yellownabzhappy (mais l api est tjrs hs ) yellownabzhappy et oh, intéressant ton script mtt yellownabzsmile
Revenir en haut Aller en bas
mtt
Lapin nain
Lapin nain


Localisation : Paris
Nbr de messages : 4
Carottes : 4729

Applescript Empty
MessageSujet: Re: Applescript   Applescript Icon_minitimeSam 30 Déc 2006 - 18:53

Pour iCal, je n'ai pas encore testé, mais je vais faire comme ceci :
- ajouter dans ma propre fiche du carnet d'adresse l'adresse du lapin,
- créer un événement dans iCal (par exemple "Aujourd'hui, c'est l'anniversaire de tata Lucie") et associer une alarme-mail vers l'adresse du lapin
- créer un nouvelle règle dans Mail pour les messages venant de moi-même dont l'objet commence par "Alarme -" qui exécute le script suivant :

Code:
using terms from application "Mail"
   on perform mail action with messages selectedMsgs
      repeat with msg in selectedMsgs
         set logString to do shell script "echo '" & (subject of msg) & "' | sed 's/Alarme - //'"
         tell application "MonLapin"
            talk given tts:logString, voice:"julie22k", ttlive:"86400"
         end tell
      end repeat
   end perform mail action with messages
end using terms from

(par rapport au script précédent, ceci permet de ne lire que le texte de l'événement iCal)
Revenir en haut Aller en bas
Raoul
Lapin nain
Lapin nain


Localisation : Grenoble
Nbr de messages : 1
Carottes : 4724

Applescript Empty
MessageSujet: Re: Applescript   Applescript Icon_minitimeDim 7 Jan 2007 - 21:48

J'ai mis ça en place, ça marche très bien, j'ai juste rajouté au script la lecture du corps du message, et le transfert du message dans la boîte réservée au lapin.

Le gag c'est que ne voulant pas créer une boîte de plus, et ne voulant pas que le lapin lise tous mes mails, j'ai modifié la règle, pour qu'elle exécute le script seulement lorsque le nom du lapin est dans le sujet. S'en est suivi un joyeux bordel exponentiel, la série des trois messages annoncant l'envoi d'un message, la réception d'un message, et le jeu d'un message redéclenchant le script.

J'ai donc fini par lui créer une boîte Gmail (un essai avec laposte, pas terrible : mode dégradé, et capacité de la boîte 0ko depuis 3 jours, pas moyen de passer un message).
Revenir en haut Aller en bas
mtt
Lapin nain
Lapin nain


Localisation : Paris
Nbr de messages : 4
Carottes : 4729

Applescript Empty
MessageSujet: Re: Applescript   Applescript Icon_minitimeMar 9 Jan 2007 - 21:11

Modification de "MonLapin" pour gérer les accents :
Code:
property base_url : "http://api.nabaztag.com/vl/FR/api.jsp?sn=SERIAL&token=TOKEN&"

to talk given tts:tts, ttlive:ttlive, voice:voice
   callUrl("tts=" & formatText(tts) & "&voice=" & voice & "&ttlive=" & ttlive)
end talk

to callUrl(parameters)
   set urlToGet to base_url & parameters
   set theFile to (path to temporary items folder as text) & "api_nabaztag.xml"
   set fileOpened to open for access theFile with write permission
   set eof of fileOpened to 0
   write "Message non envoyé : erreur d'accès au site" to fileOpened
   close access fileOpened
   
   tell application "URL Access Scripting"
      try
         download urlToGet to theFile replacing yes
      end try
   end tell
   set fileOpened to open for access theFile
   set donnees to read fileOpened
   close access fileOpened
   return donnees
end callUrl

to formatText(theText)
   set prevTids to AppleScript's text item delimiters
   set AppleScript's text item delimiters to "\""
   set liste to theText's text items
   set resultat to first item of liste
   repeat with partie in the rest of liste
      set resultat to resultat & "\\\"" & partie
   end repeat
   set AppleScript's text item delimiters to prevTids
   do shell script "echo \"" & resultat & "\" | sed -e 's/à/%E0/g' -e 's/â/%E2/g' -e 's/ç/%E7/g' -e 's/è/%E8/g' -e 's/é/%E9/g' -e 's/ê/%EA/g' -e 's/ë/%EB/g' -e 's/î/%EE/g' -e 's/ï/%EF/g' -e 's/ô/%F4/g' -e 's/ö/%F6/g' -e 's/û/%FB/g' -e 's/ü/%FC/g'"
end formatText

Et pour la règle Mail, on peut répondre à l'expéditeur de la manière suivante :
Code:
using terms from application "Mail"
   on perform mail action with messages selectedMsgs for rule theRule
      repeat with msg in selectedMsgs
         set logString to "Message pour " & (name of theRule) & " de la part de " & (extract name from sender of msg) & " : " & (subject of msg) & "."
         tell application "MonLapin"
            set reponse to (talk given tts:logString, voice:"julie22k", ttlive:"86400")
            tell application "Mail"
               set myrecipientaddr to (extract address from sender of msg)
               set myrecipientname to (extract name from sender of msg)
               set mymail to (make new outgoing message at the beginning of outgoing messages with properties {subject:("Re: " & subject of msg), html content:reponse})
               tell mymail to make new to recipient at beginning of to recipients with properties {address:myrecipientaddr, name:myrecipientname}
               send mymail
            end tell
         end tell
      end repeat
   end perform mail action with messages
end using terms from
Revenir en haut Aller en bas
MaliciousRabbit
Lapin nain
Lapin nain


Localisation : Paris
Nbr de messages : 1
Carottes : 4709

Applescript Empty
MessageSujet: Re: Applescript   Applescript Icon_minitimeDim 14 Jan 2007 - 12:59

Bonjour,

Je cherche à récupérer les destinataires du mail reçu pour l'orienter vers le ou les bons lapins.
Mais je ne comprends pas comment fonctionne le "to recipients" de l'applescript de mail.

Quelqu'un peut-il m'aider ?
Revenir en haut Aller en bas
Kaeruchan
Lapin nain
Lapin nain


Age : 33
Localisation : Paris
Nabaztag : Bucéphale
Nbr de messages : 10
Carottes : 4717

Applescript Empty
MessageSujet: Re: Applescript   Applescript Icon_minitimeSam 6 Mar 2010 - 10:42

Bonjour, je suis très intéressée pour avoir une application qui ferait lire a mon lapin tous mes rdv d'ical. Seulement j'ai beau vous lire et relire, je ne comprend rien de votre jargon informatique. Existerait il une version simplifié ou quelqu'un pourrait il m'aider en entrant dans les détails pour configurer mon lapin à faire ceux ci?
Revenir en haut Aller en bas
Contenu sponsorisé




Applescript Empty
MessageSujet: Re: Applescript   Applescript Icon_minitime

Revenir en haut Aller en bas
 
Applescript
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum des Objets Communicants et Solutions pour les Libérer... :: II. Nabaztag, Karotz, mir:ror, Dal:Dal (Violet Object Operating System) :: L'univers de Nabaztag :: Archives :: API-
Sauter vers: