Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

SignAuPif 1.0.2

31 réponses
Avatar
Benoͮt L.
Bonjour,

Un poil de progrès.
Au premier lancement il vous demandera d’ouvrir un fichier txt qui
contient des signatures.
Il enregistre ça dans un fichier préférence et c’est parti.

https://www.cjoint.com/data/LBoonKEkbUp_SignAuPif-1.0.2.app.zip
https://www.cjoint.com/data/LBoovxt5hnp_SignAuPif-1.0.2.scpt.zip

Prochaine étape ? Gestion des signatures (ajout, suppression,
modification) ?

Aucune idée, je vais dormir dessus et, avant tout, corriger les erreurs
que je n’ai pas trouvées et ajouter des commentaires dans le code.

--
Vie : n. f. Maladie mortelle sexuellement transmissible
benoit chez leraillez.com

10 réponses

1 2 3 4
Avatar
Benoͮt L.
Après mÍ»re réflexion, le 15 février 2022 Í  16:10, Joseph-B eu l'idée
d'écrire :
Joseph-B wrote:
#> set the clipboard to (text 5 thru -1 of (controlsResults's item 1 as text as text))
il y a un "as text" redondant, qui ne crée pas de souci d'ailleurs, Í  enlever
set the clipboard to (text 5 thru -1 of (controlsResults's item 1 as text))

Le «Â as text » et le «Â as «class utf8»Â » m’énervent comme ce n’est pas
possible. De temps en temps j’ai des caractères >128 qui sont pourris,
mais pas au lancement suivant.
J’aimerai comprendre. En attendant j’appelle deux fois la string et plus
de problème. Donc il est réglé, d’un certain point de vue.
Pour le set clipboard je préfère commencer par un fichier de signatures
sans délimiteurs, genre :
set searchString to "-- " & linefeed
set replaceString to ""
Ou du genre :
repeat with i from 1 to count paragraphs of myText
if paragraph i is "-- " then set paragraph i to ""
set i to i+1
end repeat
Je peux faire de même sur la liste si le premier caractère de la
signature se trouve être un ou des linefeed.
P.S. Je ne sais pas comment tu as géré une variable avec des retours
charriots, quand j’en mets il me dit qu’il y a un problème :
set toto to "Benoͮt
Leraillez
Téléphone
Adresse"
Il y a un problème, d’o͹ mon utilisation des linefeed plutÍ´t que des
return qui ne fonctionnent pas. Avec linefeed je sais que ça marche :)
--
Vie : n. f. Maladie mortelle sexuellement transmissible
benoit chez leraillez.com
Avatar
Benoͮt L.
Le 15 février 2022 Í  19:35, Joseph-B d'un élan de joie s'exprima ainsi :
"Benoͮt L." wrote:
Par contre j'ai ajouté ça :
if buttonName is "Quitter" then exit repeat

Si ça peut te fare plaisir, mais ça ne sert strictement Í rien :
Í  la microseconde o͹ le /Cancel button/ est activé, la suite du script
n'est même pas lu, un message d'interruption est envoyé avec ordre
d'arrêter l'exécution du code qui l'a émis.
Et lÍ  on quitte proprement, pas avec le cancel proposé par défaut.

L'erreur Système -128 (Cancel de l'utilisateur) est gérée très
proprement par le système, ce n'est pas une sortie en force, c'est une
interruption.

Pour moi c’est comme de demander de faire un
keystroke cmd-alt-esc down
delay 0.2
return
Pour preuve, fais le test suivant : au lieu du "exit repeat " mets ceci
if buttonName is "Quitter" then beep
jamais tu n'entendras le Beep d'alerte Système parce que l'ordre
d'interruption sera passé avant que la commande Beep soit envoyée, et
dans tous les cas tu liras dans le débogueur

Moi je l’entends. Tu as gardé un bout de code dans
set {theButtons, minWidth}* to create buttons…
Résultat :
error "Annulé par l'utilisateur." number -128 from «script "Dialog
Toolkit Plus"» to item

Non, parce que tu as conservé «Â cancel button "Quitter" » dans create
buttons. Moi pas.
Toutefois il est possible d'intercepter le Cancel et empêcher d'arrêter
pour faire autre chose, mais ce n'est vraiment pas utile ici.

Je ne sais pas aujourd’hui pourquoi intercepter le Cancel button. Je me
simplifie la vie en le supprimant.
Bien sͻr si on nomme un bouton quelconque "Quitter" qui n'est pas un
vrai /Cancel button/ dans une boucle repeat, ton ajout sera
indispensable.

C’est ce que j’ai fait. Cela permet surtout de faire des choses avant de
quitter l’appli, comme enregistrer la nouvelle version de la liste suite
Í  modification, suppression ou ajout. Ils sont effectués sur la liste en
mémoire et pas dans le fichier dans les préférences. Je n’écris sur le
disque qu’Í  la fin ou alors je mets une variable qui appelle une routine
qui fait le travail. Pour plus tard : K.I.S.S pour le moment.
* J’ai beaucoup de mal avec les «Â set "liste" »Â : je sais que ça marche
tant que ce n’est pas moi qui l’ai écrit.
--
Vie : n. f. Maladie mortelle sexuellement transmissible
benoit chez leraillez.com
Avatar
josephb
"Benoͮt L." wrote:
Pour moi c'est comme de demander de faire un
keystroke cmd-alt-esc down
delay 0.2
return

Crois ce que tu veux mais tu te trompes et ce n'est pas grave du moment
que ça marche pour toi ;-)
Bien sͻr si on nomme un bouton quelconque "Quitter" qui n'est pas un
vrai /Cancel button/ dans une boucle repeat, ton ajout sera
indispensable.
C'est ce que j'ai fait.

Bien sÍ»r que non puisque tu as nommément désigné le bouton "Quitter"
comme un "vrai" bouton Cancel dans ton code, que je cite :
## set {theButtons, minWidth} to create buttons {"Quitter", "Nouveau
tirage", "Copier"} default button "Copier" cancel button "Quitter" ##
Mais rien ne t'y oblige ;-)
Entre nous, si tu te mets Í  Swiftt tu vas être très déçu que ces idiots
de développeurs chez Apple promeuvent l'usage du bouton "Cancel" alors
que selon toi ce serait une abomination. (en fait tu cofonds avec la cmd
killall du Shell)
Que tu ne me crois pas, je m'en fous, mais va bien falloir que tu fasses
confiance aux "vrais programmeurs" de Cupertino (ou même Redmond…)
P.S. Je ne sais pas comment tu as géré une variable avec des retours
charriots, quand j'en mets il me dit qu'il y a un problème :
set toto to "Benoͮt
Leraillez
Téléphone
Adresse"
Il y a un problème, d'o͹ mon utilisation des linefeed plutÍ´t que des
return qui ne fonctionnent pas. Avec linefeed je sais que ça marche :)

Je ne vois pas de quoi tu parles ???
Dans la récupération du texte de base des citations, pour en créer la
liste j'utilise llinefeed qui s'écrit aussi "n" comme TID
(je cite)
## set text item delimiters to "nn" ##
le retour chariot c'est "r" ou return et il n'y en pas une seule fois
dans le code que j'ai envoyé par cjoint.
Mais lÍ  aussi je dois me tromper ?
Mon propos n'est pas de polémiquer avec toi, j'ai proposé une piste qui
m'a semblé plus lègère ; tu en prends, tu en laisses, tu accomodes Í  ta
convenance ou tu rejettes tout en bloc, ça me convient tout pareil,
c'est toi le maÍ®tre d'œuvre de ton projet.
--
J. B.
Avatar
gd2512
"Benoͮt L." wrote:
Certes, mais tu me donnes des idées, des pistes et surtout des leçons.
Tu es d'ailleurs le seul ici.

Demandez-vous pourquoi en relisant votre 2ème phrase ci-dessus. Ça me
fait très plaisir.
Vu votre façon de répondre, ça coupe vite l'envie de vouloir vous donner
un coup de main.
Avatar
josephb
"Benoͮt L." wrote:
Si tu tapes
set set AppleScript's text item delimiters (return & return)
ça ne marche pas mais
set AppleScript's text item delimiters to (linefeed & linefeed)
oui. Pourquoi ? No idea.

Il y a deux raisons Í  cela
1) la première est que la source, le fichier .text original des GMP, si
tu l'ouvres dans BBEdit, tu verras sur le bandeau en pied ses
caractéristiques
« Text File ; Unicode (UTF-8) ; Unix (LF) » le dernier étant le type de
coupure de ligne, Line Feed et non pas Return comme pour du MacOS Roman
que l'on traine encore comme un boulet que l'on est passé Í  OS X.
2) Parce que je sais par expérience que progressivement AppleScript
(intégré aux couches basses du Système) devient plus strict (je devrais
dire plus cohérent) sur le type d'encodage (UTF-8) et donc de coupure de
ligne, mais que Yosemite, par exemple, aurait accepté sans broncher les
deux, Linefeed ou Return, comme absolument équivalent,
ce qui n'est plus le cas depuis 10.12 (encore que avec M. V. on a pu
trouver des "exceptions déroutantes" avec l'interpréteur AppleScript des
commandes Shell, toujours pas corrigées depuis 22 ans …)
Je vois des "
"
Dans ton script.

C'est encore un nouveau "feature" d'Applescript récent qui a transcrit
lors de la compilation en forme texte (caractère invisible) ce qui
aurait dÍ» rester en symbolique de code "n".
À l'inverse, si sur mon Capitan je tape des retours Í  la ligne dans le
code, Í  la compilation il m'écrit des "r" ce qui est une aberration
héritée de Mac OS pré X !
Bon, j'aurais écrit <linefeed> en toutes lettres au lieu de "n" le
problème ne se srait pas posé.
Ce sont des manques de rigueur comme cela depuis aussi longtemps
qu'Applescript existe qui le font mépriser par les "vrais "
programmeurs. Et ça fait plus de 20 ans que je le dis, pas attendu
l'article que tu cites.
<https://www.economist.com/business/2022/01/29/what-if-all-workers-wrote-software-not-just-the-geek-elite>
--
J. B.
Avatar
M.V.
Le 16 février 2022 Í  10:23, Joseph-B a tenu les propos suivants :
M. V. on a pu
trouver des "exceptions déroutantes" avec l'interpréteur AppleScript des
commandes Shell, toujours pas corrigées depuis 22 ans …)

Tu te souviens sans doute de la routine UnixParagraphs(datas) destinée Í 
remplacer les return par des linefeed que tu avais créée pour pallier
les problèmes récurrents lors de la récupération d'un texte avec la
commande shell cat par exemple.
--
Michel VAUQUOIS - <http://michelvauquois.fr>
Avatar
Benoͮt L.
Le 16 février 2022 Í  10:23, Joseph-B d'un élan de joie s'exprima ainsi :
Ce sont des manques de rigueur comme cela depuis aussi longtemps
qu'Applescript existe qui le font mépriser par les "vrais "
programmeurs. Et ça fait plus de 20 ans que je le dis, pas attendu
l'article que tu cites.
<https://www.economist.com/business/2022/01/29/what-if-all-workers-wrote-software-not-just-the-geek-elite>

Oui, ça fait bientÍ´t 30 ans et il y avait la version française. :)
Et merci pour tes explications.
P.S. Je suis passé Í  Monterey pour avoir un Swift Í  jour par rapport aux
vidéos et documents dispos sur le site.
--
Vie : n. f. Maladie mortelle sexuellement transmissible
benoit chez leraillez.com
Avatar
Benoͮt L.
Nonobstant quelques doutes, le 16 février 2022 Í  10:13, G.Deville se
permit de dire :
"Benoͮt L." wrote:
Vu votre façon de répondre, ça coupe vite l'envie de vouloir vous donner
un coup de main.

Tu n’as pas aimé ma remarque sur le nombre de boÍ®tes dialogues. J’ai mis
du code de cÍ´té pour plus tard, s’il n’y a pas de raccourcis clavier :
tell application "Finder"
tell application "System Events"
tell menu item "Afficher le presse-papiers" of ¬
menu "Édition" of menu bar item "Édition" of ¬
menu bar 1 of application process "Finder"
click
end tell
end tell
comment voulez-vous que le script sache que vous
êtes ou non satisfait de la signature s'il ne le vous demande pas ?

Si tu peux la lire dans la boͮte de dialogue et que tu as un bouton
«Â Copier », que faut-il de plus ?
Pour le délimiteur «Â --  »
J’ai eu l’idée d’une case Í  cocher au départ, mais G.B. propose une
solution beaucoup plus simple : 2 boutons «Â Copier ».
Voici la liste des boutons prévus Í  date : Quitter, Supprimer, Ajouter,
Modifier, Copier sans "-- ", Copier avec "-- ".
J’essayerai, un jour, d’ajouter une case Í  cocher (le fichier
Préférences existe maintenant et je peux donc y stocker ce genre de
choix de l’utilisateur).
Ces 2 boÍ®tes de dialogue sont indispensables pour répondre Í  vos désirs.

Bin non, une seule suffit. J’ai trouvé comment grÍ¢ce Í  G.B. et
l’extension Dialog Toolkit Plus.
La prochaine version de «Â l’application » aura ce bout de code dans son
dossier Ressources et tu pourras tester.
--
Vie : n. f. Maladie mortelle sexuellement transmissible
benoit chez leraillez.com
Avatar
josephb
M.V. apporta la précision :
Tu te souviens sans doute de la routine UnixParagraphs(datas) destinée Í 
remplacer les return par des linefeed que tu avais créée pour pallier
les problèmes récurrents lors de la récupération d'un texte avec la
commande shell cat par exemple.

En effet, je pensais Í  cela et il y a encore d'autres gamelles que
traine AppleScript et c'est dommage pour sa crédibilité,
on pourrait aussi y ajouter comment l'idée ambitieuse de Automator est
devenue un cul de sac… Í  cause des mêmes causes structurelles et
politiques de développement autour de ce genre d'outils pourtant
intégrés au Système.
--
J. B.
Avatar
M.V.
Le 16 février 2022 Í  15 h 10, BenoÍ®t L. a tenu les propos suivants :
Ces 2 boÍ®tes de dialogue sont indispensables pour répondre Í  vos désirs.

Bin non, une seule suffit. J’ai trouvé comment grÍ¢ce Í  G.B.

Tu n'as donc pas lu ceci :
«Â À la réflexion, on peut avoir une seule boÍ®te de dialogue qui vous
propose au choix :
- je souhaite une nouvelle signature
- j'accepte la signature (avec délimiteur)
- j'accepte la signature (sans délimiteur)
mais c'est juste pour gagner *une* boÍ®te de dialogue… et pas quantité de
boÍ®tes comme votre précédente réponse le laisse croire. »
C'est dans <news:1pn82el.mslis4agijtnN%
J’ai trouvé comment grÍ¢ce Í  G.B.

G.B. ? Non : c'est Joseph-B donc J-B éventuellement.
J'ai regardé le script de Joseph-B et je retrouve exactement ce que
vous a écrit G.Deville ci-dessus !
--
Michel VAUQUOIS - <http://michelvauquois.fr>
1 2 3 4