1 votos

¿Cómo cambiar automáticamente los iconos de todos los nuevos archivos .webloc por el favicon de la página web?

Me encantaría que todos los archivos de URL de sitios web en el escritorio tomaran el favicon de la página web correspondiente, en lugar del icono de Safari.

Esto imitaría la función de añadir una página a la pantalla de inicio de iOS.

¿Cómo puedo configurar algo, quizás en Automator, para que, cuando arrastre una nueva URL desde Chrome al escritorio, se busque el favicon de la página y se aplique como imagen del icono?

1voto

user3439894 Puntos 5883

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

Automator Folder Action


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.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X