Hyperlien, Webloc

Je ne comprend pas ce que tu veux obtenir !
Que penses-tu obtenir en copiant les webloc. Un webloc est un fichier en faisant un copié tu copie le nom du fichier !

Au final tu veux obtenir quoi?
Un fichier RTF avec les liens (donc comme ton fichier de départ)
ou un fichier texte avec les liens en texte (mais ceux-ci ne seront pas cliquable puisque se seront du simple texte)

Dans tout les cas il ne s'agit pas d'un simple copié du contenu du fichier webloc (tu as vu son contenu dans tes copies d'écran)
Ce que je compte obtenir c'est un fichier texte avec les urls brutes et non les hyperlien avec le titre du site.
Quand je copie un fichier et que je le colle dans TextEdit, j'obtiens le nom du fichier comme text.

Je pensais qu'en copiant les fichiers, puisque leurs nom c'est l'URL, et en fessant une copie dans TextEdit j'obtiendrais mes Urls brutes. J'aurais juste à rajouter le fait de supprimer le ".webloc" à la fin.

En gros j'aurais aimé qu'un nouveau fichier texte soit créé dans le dossier contenant les webloc. (Mais je compte aussi garder mon fichier texte original.)

Je souhaiterais passer de l'image de gauche à celle de droite.
Capture d’écran 2021-10-28 à 16.58.42.png
 
Une première solution pour tester.
1- tu sélectionnes tous les webloc
2- tu fais un copié (cela copiera tous les noms des fichiers)
3- tu ouvres textedit et tu fais un coller

Tu devrais obtenir ce que tu veux à la nuance près que les titres ont été réduit à 200 caractères maximum.

Une autre solution sera de modifier mon script pour créer le fichier texte en même temps qu'il crée les webloc.
 
Bon je regarde pour ajouter ça en nommant ce fichier "liste des liens"
 
  • J’aime
Réactions: Gregoryen
Essai ce script !
Bloc de code:
set monfichier to choose file with prompt "Sélectionnez le fichier contenant les hyperliens"
set Chemin to choose folder with prompt "Sélectionnez le dossier recvant les webloc"
open for access monfichier -- ouvre ce fichier en lecture
set vartoto to read monfichier -- lit le fichier et le met dans la variable vartoto
close access monfichier -- ferme le fichier

set hyp to "HYPERLINK"
set guil to (ASCII character 34)
set occu to hyp & " " & guil

set avant to "<?xml version=" & guil & "1.0" & guil & " encoding=" & guil & "UTF-8" & guil & "?>
<!DOCTYPE plist PUBLIC " & guil & "-//Apple//DTD PLIST 1.0//EN" & guil & " " & guil & "http://www.apple.com/DTDs/PropertyList-1.0.dtd" & guil & ">
<plist version=" & guil & "1.0" & guil & ">
<dict>
    <key>URL</key>
    <string>"

set apres to "</string>
</dict>
</plist>
"
repeat
    set vartoto to vartoto as string
    set aa to offset of occu in vartoto
    if aa = 0 then exit repeat
    set nb to aa + 11
    set lelien to ""
    repeat while character nb of vartoto is not guil
        set lelien to lelien & character nb of vartoto
        if (character nb of vartoto) = "&" then
            set lelien to lelien & "amp;"
        end if
        set nb to nb + 1
    end repeat
    
    set vartoto to characters nb thru -1 of vartoto
    set ccc to vartoto as string
    
    set chemindef to (Chemin & "liste des liens.txt") as text
    set lefichier to open for access chemindef with write permission
    write lelien & return to lefichier starting at eof
    close access lefichier
    
    
    set unlien to avant & lelien & apres
    set nbcaractere to count characters of lelien
    if nbcaractere > 200 then
        set lelien to characters 1 thru 200 of lelien as string
    end if
    set lenom to characters 9 thru -1 of lelien as string
    tell application "TextEdit"
        set lenom to lenom & ".webloc"
        set chemindef to ((Chemin as text) & lenom) as text
        try
            set lefichier to open for access chemindef with write permission
            set eof lefichier to 0 -- pour effacer le fichier existant
            write unlien & return to lefichier starting at eof
            close access lefichier
        on error e
            display dialog "Le fichier «lien X.webloc n'a pu être créé" & return & return & "Verifiez que le repertoire existe et qu'il a des droits en écriture" with icon 0 buttons "Annuler" default button 1
        end try
    end tell
end repeat
tell application "Finder"
    activate
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell
 
Pas de problème !

Le plus difficile est souvent de comprendre ce que la personne veux obtenir ! LOL !
 
Pas de problème !

Le plus difficile est souvent de comprendre ce que la personne veux obtenir ! LOL !
Oui je comprends, quand on parle à l'écris c'est dur de se faire comprendre qu'a l'oral en montrant les choses.
Après j'essaie énormément de faire par moi même avant de poster, mais parfois je me fais des noeuds au cerveau lol.
 
J'ai oublié de préciser, dans le fichier texte, un clic droit sur un lien et choisir ouvrir l'URL permet également d'ouvrir le navigateur...
 
@Gregoryen

Bonjour,
Je viens de me rendre compte que dans le fichier texte j'avais copié les liens modifiés pour les webloc, au lieu de mettre les liens brut.
J'ai fais la modif pour rectifier ça !
Désolé pour ce bug !

Bloc de code:
set monfichier to choose file with prompt "Sélectionnez le fichier contenant les hyperliens"
set Chemin to choose folder with prompt "Sélectionnez le dossier recvant les webloc"
open for access monfichier -- ouvre ce fichier en lecture
set vartoto to read monfichier -- lit le fichier et le met dans la variable vartoto
close access monfichier -- ferme le fichier

set hyp to "HYPERLINK"
set guil to (ASCII character 34)
set occu to hyp & " " & guil

set avant to "<?xml version=" & guil & "1.0" & guil & " encoding=" & guil & "UTF-8" & guil & "?>
<!DOCTYPE plist PUBLIC " & guil & "-//Apple//DTD PLIST 1.0//EN" & guil & " " & guil & "http://www.apple.com/DTDs/PropertyList-1.0.dtd" & guil & ">
<plist version=" & guil & "1.0" & guil & ">
<dict>
    <key>URL</key>
    <string>"

set apres to "</string>
</dict>
</plist>
"
repeat
    set vartoto to vartoto as string
    set aa to offset of occu in vartoto
    if aa = 0 then exit repeat
    set nb to aa + 11
    set lelien to ""
    set lientext to ""
    repeat while character nb of vartoto is not guil
        set lelien to lelien & character nb of vartoto
        set lientext to lientext & character nb of vartoto
        if (character nb of vartoto) = "&" then
            set lelien to lelien & "amp;"
        end if
        set nb to nb + 1
    end repeat
    
    set vartoto to characters nb thru -1 of vartoto
    set ccc to vartoto as string
    
    set chemindef to (Chemin & "liste des liens.txt") as text
    set lefichier to open for access chemindef with write permission
    write lientext & return to lefichier starting at eof
    close access lefichier
    
    
    set unlien to avant & lelien & apres
    set nbcaractere to count characters of lelien
    if nbcaractere > 200 then
        set lelien to characters 1 thru 200 of lelien as string
    end if
    set lenom to characters 9 thru -1 of lelien as string
    tell application "TextEdit"
        set lenom to lenom & ".webloc"
        set chemindef to ((Chemin as text) & lenom) as text
        try
            set lefichier to open for access chemindef with write permission
            set eof lefichier to 0 -- pour effacer le fichier existant
            write unlien & return to lefichier starting at eof
            close access lefichier
        on error e
            display dialog "Le fichier «lien X.webloc n'a pu être créé" & return & return & "Verifiez que le repertoire existe et qu'il a des droits en écriture" with icon 0 buttons "Annuler" default button 1
        end try
    end tell
end repeat
tell application "Finder"
    activate
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell
 
  • J’aime
Réactions: Gregoryen
J'ai donc essayé le dernier script et j'ai ce message d'erreur à la fin :

Screenshot29- 10-2021- à 15h55 s - TextEdit- Ouvrir.png

EDIT: Je viens de trouver, j'ai enlever des liens dans la liste et ça à marché. J'ai juste à augmenter le nombre de caractères ?
 
Dernière édition:
Je suppose qu’il doit y avoir un problème pour le nom, nombre de caractères, il forme le nom en prenant le lien à partir du neuvième caractère du lien ! Quel est le le lien qui pose problème ?

Édit: il peut aussi y avoir un caractère interdit dans les noms style « : » ou autre
 
Dernière édition:
Comme dit dans mon édit, il y a le caractère « : » s’il faut je modifierai le script pour qu’il vérifie s’il y a des caractères interdit.. . Là je n’est pas accès à l’ordi! Je regarde ça à l’occasion !
 
Bonjour,

Le seul caractère qui est interdit dans les noms de fichier sur macOS est ":"
Ce nouveau script remplace les ":" par "." dans le nom du fichier.


Bloc de code:
set monfichier to choose file with prompt "Sélectionnez le fichier contenant les hyperliens"
set Chemin to choose folder with prompt "Sélectionnez le dossier recvant les webloc"
open for access monfichier -- ouvre ce fichier en lecture
set vartoto to read monfichier -- lit le fichier et le met dans la variable vartoto
close access monfichier -- ferme le fichier

set hyp to "HYPERLINK"
set guil to (ASCII character 34)
set occu to hyp & " " & guil

set avant to "<?xml version=" & guil & "1.0" & guil & " encoding=" & guil & "UTF-8" & guil & "?>
<!DOCTYPE plist PUBLIC " & guil & "-//Apple//DTD PLIST 1.0//EN" & guil & " " & guil & "http://www.apple.com/DTDs/PropertyList-1.0.dtd" & guil & ">
<plist version=" & guil & "1.0" & guil & ">
<dict>
    <key>URL</key>
    <string>"

set apres to "</string>
</dict>
</plist>
"
repeat
    set vartoto to vartoto as string
    set aa to offset of occu in vartoto
    if aa = 0 then exit repeat
    set nb to aa + 11
    set lelien to ""
    set lientext to ""
    set lenom to ""
    repeat while character nb of vartoto is not guil
        set lelien to lelien & character nb of vartoto
        set lientext to lientext & character nb of vartoto
        if (character nb of vartoto) = "&" then
            set lelien to lelien & "amp;"
        end if
        if (character nb of vartoto) = ":" then
            set lenom to lenom & "."
        else
            set lenom to lenom & character nb of vartoto
        end if
        set nb to nb + 1
    end repeat
    
    set vartoto to characters nb thru -1 of vartoto
    set ccc to vartoto as string
    
    set chemindef to (Chemin & "liste des liens.txt") as text
    set lefichier to open for access chemindef with write permission
    write lientext & return to lefichier starting at eof
    close access lefichier
    
    set unlien to avant & lelien & apres
    set nbcaractere to count characters of lenom
    if nbcaractere > 200 then
        set lenom to characters 1 thru 200 of lenom as string
    end if
    set lenom to characters 9 thru -1 of lenom as string
    tell application "TextEdit"
        set lenom to lenom & ".webloc"
        set chemindef to ((Chemin as text) & lenom) as text
        try
            set lefichier to open for access chemindef with write permission
            set eof lefichier to 0 -- pour effacer le fichier existant
            write unlien & return to lefichier starting at eof
            close access lefichier
        on error e
            display dialog "Le fichier «lien X.webloc n'a pu être créé" & return & return & "Verifiez que le repertoire existe et qu'il a des droits en écriture" with icon 0 buttons "Annuler" default button 1
        end try
    end tell
end repeat
tell application "Finder"
    activate
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell
 
  • J’aime
Réactions: Gregoryen
Hé ben je crois qu'on est bon la ! J'ai testé avec un gros fichier, beaucoup de liens et des recherches Google, tout fonctionne à merveille ! :cat:

Merci beaucoup du temps passé à mon problème ! Passe un bon week-end !
 
merci content pour toi et bon week-end également !
 
  • J’aime
Réactions: Gregoryen