L’Applescript du support technique [Oldies but Goodies]

Dans la série « ça trainait sur mon disque dur », un prototype d’Applescript rigolo que j’avais pondu pour la première version de Gete.Net, il y a 18 ans… La vache, ça ne nous rajeunit pas.

——-——-——-——-——-——-——-——-——-——-——-——-——-——-——-——-——-——-

–Ce script sert à décrire exactement comment les techniciens des centres de support technique sont entrainés à répondre au téléphone–
— Optimisation des couches basses du script par Guillaume Gete® —
— Toute ressemblance avec des individus ou des faits existant ou ayant existé est complètement fortuite… Enfin, on l’espère :-) —

Set 
LeTelephone to “Dring Dring”
Set LeClient to LeNomDuClientGonflantQuiAppelle
Set 
NumeroClient to LeNumeroConfidentielDuClientGonflantQuiAppelle

when hearing LeTéléphone
tell application “Prend Telephone”
activate

–Les lignes suivantes servent à se présenter une fois le téléphone décroché–
     set NomTechnicien to MonNom
          if HumeurDuMoment = « Bonne »
set 
TonParole to “VoixChaleureuse”
               set TechVolume to 3
speak « 
Apple Assistance bonjour » & NomTechnicien & « à l’appareil. », with volume = TechVolume and voice = TonParole
          else
set 
TonParole to « VoixAgressive »
               set TechVolume to 5
speak « 
Allo, quel est le problème ? », with volume = TechVolume and voice = TonParole
          end if

–Les lignes suivantes servent à faire donner le nom du client une fois le téléphone décroché–

     speak « Puis-je avoir votre numéro client ? » with volume = TechVolume and voice = TonParole

if LeClient answers “Désolé, je n’ai pas de numéro de client » and HumeurDuMoment = « Bonne »
               speak « Désolé, il m’est impossible de vous aider car vous n’êtes point référencé auprès d’Apple Assistance. Je vous transmets au standard afin que nous procédions à votre enregistrement. »
               redirect LeTelephone to LeStandard
          else
                 set TonParole to « Kill Kill Destroy »
speak « Mais comment vous avez pu appeler alors ? Votre problème, je m’en tape, vous avez qu’à contacter votre revendeur » with volume = 7 and voice = TonParole
                    set LeTelephone to RaccrocheViolemment
          end if
end tell

–Si le client donne son numéro de client, il faut l’entrer dans la base Clients. Les lignes suivantes déterminent le comportement à avoir si le numéro de client ne ressort pas–

     try
search 
NumeroClient in BaseClients
     on error
set 
TonParole to « PassablementEnervé »
          set TechVolume to 1
speak « 
Putain de base à la con ! » with volume = TechVolume and voice = TonParole
     end try

— Il va falloir désormais répondre à la question. La séquence suivante enclenche le processus de recherche automatique de solutions aux problèmes du client– 

tell application « Répondre à la question »
activate
     set TonParole to « QuestionSansAucuneAttention »
     speak « Bien, quel est le problème ? » with volume = current and voice = TonParole
     hear LeClient without listening
     set TonParole to « Compréhensif »
     speak « Oui… D’accord… Hmmm… Ok, très bien. » with volume 2 and voice = TonParole but without attention

set LeProblèmeDuClient to LeClientLuiMême
set 
BlahBlahBlah to CeQueLeClientEssaied’Expliquer

when BlahBlahBlah = 0
     set TonParole to « Ayons l’air d’y comprendre quelque chose »
     set TechVolume to 3
speak « 
Je vais essayer de trouver une solution. » with volume = TechVolume and voice = TonParole

wait 
idle with timer=120
     set TonParole to « Victorieux »
     set TechVolume to 3
speak « 
J’ai peut-être trouvé ! » with volume = TechVolume and voice = TonParole

— Il n’est plus possible de reculer maintenant, il faut trouver une réponse. —
— Les lignes suivantes servent à guider le « troubleshooting »–

set LaRéponseBateau to « Reconstruire le Bureau »
     set TonParole to « Conseil amical »
     speak « Il va falloir essayer de » & LaRéponseBateau with volume = current and voice = TonParole
     set

wait RéponseClient
     if RéponseClient = « Ca marche ! »
          set TonParole to « Super content »
          set TechVolume to 5
speak « 
Et bien voilà une bonne chose de faite ! » with volume = TechVolume and voice = TonParole
     else

          — Il faut envisager la situation où la solution nª1 ne fonctionne pas —

think « Et merde… » with stay silent
          set TonParole to « Songeur »
          set TechVolume to 4
speak « 
Bon, on va essayer autre chose… » with volume = TechVolume and voice = TonParole
          set LaRéponseBateau to « redémarrer sans extensions »
          set TonParole to « Conseil péremptoire »
          speak « Essayez maintenant de » & LaRéponseBateau with volume = current and voice = TonParole
               
if 
RéponseClient = « Enfin, ça marche !!! »
               think « Pfiou, je l’ai échappé belle » with stay silent
               set TonParole to « Paternel »
               set TechVolume to 5
speak « 
Vous avez apparament un conflit d’extensions. je ne peux malheureusement rester trop longtemps avec vous pour rechercher quelle est l’extension fautive, mais je ne saurais trop vous conseiller de vous procurer Conflict Catcher qui sait très bien gérer ce genre de problèmes. » with volume = TechVolume and voice = TonParole
               think « Demander une commission sur les ventes à Casady & Greene » with stay silent
          else

 Et si la solution nª2 est inefficace, on peut tenter la numéro 3 —
               think « il est vraiment trop blaireau lui… » with stay silent
               set LaRéponseBateau to « Réinstaller le Système »
               set TonParole to « Conseil péremptoire »
               speak « Il va falloir essayer de » & LaRéponseBateau with volume = current and voice = TonParole
wait 
RéponseClient
               if RéponseClient = « Enfin, ça marche ! »
                    think « Pfiou, je l’ai échappé belle » with stay silent
          set TonParole to « Joyeux »
                    set TechVolume to 5
speak « 
Vous voyez, on a réussi !!! » with volume = TechVolume and voice = TonParole
               else

 Dans le cas (probable) où la réponse nª3 ne donne aucun résultat, il faudra alors tenter la solution ultime —
think « 
Mais pourquoi j’ai pris ce boulot moi ? Je voulais tellement travailler chez MicroSoft… » with stay silent
          set HumeurDuMoment = « Massacrante »

          — Il arrive parfois que le technicien soit un peu énervé. Cette routine tente de —
          — voir si il y a maîtrise de soi de la part du technicien ou non. Dans le cas où il —
          — n’y a plus de contrôle, une routine externe prend le dessus Merci à PM pour sa–
          — contribution essentielle à la création de cette routine —
                    try
                              set MaitriseDeSoi to « Contrôle total de la situation »
                    on error
throw 
CasqueAudio on EcranMac
                    speak « Fais chier bordel !!! »
                    end try

set LaRéponseBateau to « Formater le disque dur à bas niveau à bas niveau avec données à zero et réinstaller la dernière version du logiciel Système »
                    set TonParole to « Décision douloureuse »
                    speak « Je pense malheureusement qu’il n’y a pas d’autre choix que de » & LaRéponseBateau with volume = current and voice = TonParole
                    wait RéponseClient
          if RéponseClient = « Ca marche ! Enfin ! Quel bordel ça a été ! »
                         think « Pourvu qu’il ne rappelle pas… » with stay silent
                         set TonParole to « Complètement hypocrite »
                         set TechVolume to 5
speak « 
Oui, mais vous avez avez été talentueux aussi ! » with volume = TechVolume and voice = TonParole
                    else
set 
TonParole to « Regrets eternels éhontés »
speak « 
Je crains malheureusement que notre support n’est pas apte à vous dépanner, le problème vient surement d’un produit MicroSoft. Appelez-les et expliquez-leur le problème, ils ont surement une solution. » with volume = 3 and voice = TonParole
end if
               end if
          end if
end if
end tell

tell application « Remerciements »
activate
set TonParole to « Remerciements hypocrites »
speak « Notre centre de support vous remercie d’avoir appelé et vous souhaite une excellente journée ! » with volume = current and voice = TonParole
set LeTelephone to “Raccroché”
end tell

tell application GameBoy
activate
play « 
Super Mario Land »
end tell

(Euhhhhhhh… No comment.)