Descargo de responsabilidad : Esta respuesta se presenta estrictamente como una prueba de concepto en el sentido de que se ha sometido a pruebas limitadas, shell script contiene un número limitado de tratamiento de errores y requiere el uso de un tercero shell script para aplicar el favicon a la .webloc archivo(s) .
Tenga en cuenta que los terceros shell script está haciendo uso de los nativos MacOS por lo que debería ser intrínsecamente seguro su uso. He revisado el código dentro de la tercera parte shell script y me sentí cómodo usándolo ya que no vi nada siniestro en su interior.
Terceras partes shell script : fileicon -- He utilizado las instrucciones de instalación manual de la página web enlazada.
Dicho esto, tendría que asignar un Carpeta Acción al destino carpeta a la que el URL arrastrado desde el navegador, o archivo se arrastra y se suelta.
El Carpeta Acción activaría entonces, por ejemplo, un shell script que extraiga el nombre de dominio de la URL dentro del .webloc archivo para luego descargar un .png archivo del sitio web favicon y luego establecerlo como el icono del .webloc archivo .
Recuperación de la favicon se realiza mediante curl
y un URL de Google diseñado para ello.
Puede utilizar Automatizador para crear un Carpeta Acción flujo de trabajo utilizando un Ejecutar Shell script acción con la configuración que se muestra en la imagen más abajo.
Sustituir el valor por defecto código en el Ejecutar Shell script acción con lo siguiente ejemplo shell script código :
for f in "$@"; do
[ -f "${f}" ] || continue
[[ ${f} =~ ^.*\.webloc$ ]] || continue
domain="$(/usr/libexec/PlistBuddy -c "Print :URL" "${f}" | awk -F '/' '{print $3}')"
/usr/bin/curl "https://www.google.com/s2/favicons?sz=64&domain_url=${domain}" -o "/tmp/favicon.png"
/usr/local/bin/fileicon set "${f}" "/tmp/favicon.png"
[ -e "/tmp/favicon.png" ] && rm "/tmp/favicon.png"
done
Notas:
Lo que el shell script código en el Ejecutar Shell script acción está haciendo para cada artículo se ha dejado caer en el objetivo carpeta que tiene el Carpeta Acción conjunto:
- Comprueba el objeto se ha dejado caer es un archivo o continúa con el siguiente artículo si se ha dejado caer más de uno.
- Comprueba el objeto se ha dejado caer con .webloc o continúa con el siguiente artículo si se ha dejado caer más de uno.
- La tercera línea de código dentro del
for
bucle establece el valor de la domain
variable a lo que está entre //
y lo siguiente /
en el URL de la .webloc archivo .
- Descarga el sitio web de destino favicon como .png archivo .
- Establecer la descarga favicon.png archivo como el icono de la .webloc archivo utilizando el sistema de terceros
fileicon
shell script .
- Elimina los datos descargados favicon.png archivo .
Más información sobre el domain
variable :
Utilizando un .webloc archivo creado para esta pregunta, su contenido es, por ejemplo
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>URL</key>
<string>https://apple.stackexchange.com/questions/411944/how-to-auto-change-all-new-webloc-files-icons-to-web-page-favicon</string>
</dict>
</plist>
El PlistBuddy -c "Print :URL" "${f}"
parte, de la comando compuesto regresa:
https://apple.stackexchange.com/questions/411944/how-to-auto-change-all-new-webloc-files-icons-to-web-page-favicon
Que es canalizado a awk
y devuelve, por ejemplo apple.stackexchange.com
y a través de sustitución de comandos $(command)
que permite la salida de un comando para reemplazar el comando mismo, lo establece como el valor de la domain
variable para luego ser utilizado en el URL de la posterior curl
comando .
Más información sobre el URL utilizado en el curl
comando :
Google proporciona un método para recuperar un .png archivo de un sitio web favicon y tal como está codificado, recupera un tamaño de 64 píxeles del favicon como se establece en sz=64
segmento de la URL de Google . Esto se puede cambiar, sin embargo todo lo que sea superior al 64
probablemente será demasiado borrosa y no se verá tan bien. Incluso 64
en algunos casos puede ser demasiado borrosa. Si esto se convierte en un problema, ajústelo a 32
aunque por la naturaleza de la típica favicon archivos que son 16x16
píxeles, siempre habrá problemas al aumentar su tamaño.
Eliminación de la aplicación favicon :
Si no le gusta el favicon que se aplicó al .webloc archivo o simplemente quieres eliminarlo, puedes quitarlo de su Obtener información ventana seleccionando el objetivo archivo en Buscador y pulse ⌘I y, a continuación, seleccione el icono y pulse la tecla delete clave .
También puede, en Terminal Utilizar fileicon
para eliminarlo, por ejemplo:
fileicon rm /path/to/filename.webloc
- El comando por encima de asumir
fileicon
está dentro del PATH
que se pasa a la shell Si no es así, utilice, por ejemplo /path/to/fileicon
Trabajar con el Carpeta Acción después:
Si después de haber creado y utilizado inicialmente el Carpeta Acción y quisiera editar/parar/iniciar/eliminar el Carpeta Acción Esto se puede hacer utilizando la función Configuración de la acción de la carpeta utilidad. Pulse ⌘Barra espaciadora para sacar a relucir Spotlight y empezar a escribir Configuración de la acción de la carpeta hasta que aparezca, para lo cual puede pulsar enter o haga clic en la lista para abrirla.
El UI de la Configuración de la acción de la carpeta La utilidad debe ser autoexplicativa y fácil de usar.