¿Se puede ampliar la ventana emergente de descarga de Safari?

3

¿Cómo puede el máximo. El ancho (ancho fijo de 425) de la ventana emergente de descarga de Safari se puede ampliar?

¿Hay alguna forma de obtener la "descarga de la ventana emergente" de Safari de alguna manera, por lo que su tamaño máximo es superior a 425 px y los nombres de archivo más largos ya no se abrevian?
Tal vez a través de AppleScriptObjC?

[[Respuestas: Hasta ahora (sin el uso de AS-objC) solo han aparecido tres "soluciones" ...

  • Solución original # 1 ... una mezcla de (hacer) shellScript (cat / sed), AS, Html y Automator
  • La solución # 1 ... usa solo módulos de Automator pero también contiene el script de shell anterior
  • Solución # 2 ... con acceso AS directo en el archivo plist de Safari, un diálogo & un "botón" en Safari

WA # 2 es mi favorito; Las "ventanas" de los demás son más flexibles. Ambos utilizan atajos de Automator. ]]

    
pregunta clemsam lang 21.11.2015 - 23:58

3 respuestas

0

Solución # 2

Mi solución preferida utiliza applecript para acceder directamente a "Downloads.plist" (sin scripts de shell) y coloca un enlace en la barra de favoritos de Safari para su conveniencia.
Primero guarde estos scripts en la carpeta "~ / Library / Scripts / Folder action scripts /", luego adjúntelos (menú contextual: configurar acciones de carpeta) a una nueva "Carpeta1" en algún lugar en el fondo de tu Mac.
Para activarlos, direccionará un "Folder2" ficticio (sin sentido) dentro de "Folder1" a través de este marcador:

file:///Path/to/first/Folder1/Folder2   [place link in your favorites bar!]

Ahora, lo que está pasando:
- El enlace de la barra de herramientas sobre el que se hace clic abrirá "Folder1" porque la "Folder2" llamada está dentro.
- Por lo tanto, se lanzan AMBOS scripts adjuntos, # -1 cerrando la ventana marcada "Folder2" ... - ... siguiente ordenando "Eventos del sistema" para obtener todos los elementos de "DownloadEntryPath" de Safari.
- Estas rutas se acortan al nombre más la carpeta principal y se recopilan en una "alerta de diálogo".
- (Esperando la "ventana de diálogo" :) La secuencia de comandos # -2 inmediatamente en la ventana emergente lo mueve hacia la parte superior derecha.

on opening folder this_folder
    tell application "Finder" to close front window
    tell application "System Events"
        set the plist_path to "~/Library/Safari/Downloads.plist"
        set the plist_file to property list file plist_path
        set downloadItems to property list items of property list item ¬
            "DownloadHistory" of plist_file
        set DL_display to ""
        set AppleScript's text item delimiters to {"/"}

        repeat with i from 1 to number of items in downloadItems
            set DL_item to (get text items -2 thru -1 of ((value of ¬
                property list item "DownloadEntryPath" of property ¬
                list item i of property list item 1 of plist_file) as string))
            set DL_display to DL_display & return & "[" & ¬
                text item 1 of DL_item & ":]" & return & text item 2 of ¬
                DL_item & return
        end repeat

        tell application "Finder" to display dialog DL_display as string ¬
            buttons {"Close"} default button 1 -- NEW: tell appl. "Finder" to
    end tell
end opening folder

Si adjunta este segundo "script de acción de carpeta", moverá el "cuadro de diálogo" a la derecha / arriba de su pantalla:

on opening folder this_folder
    tell application "Finder"
        set screenRgt to bounds of the window of desktop
        set rightEdge to (item 3 of screenRgt) - 425
    end tell
    tell application "System Events" to tell process "Finder"
        repeat while not (exists window "Recent downloads")
        end repeat
        delay 0.1   -- wait (and make sure...) for "dialog window" !
        set position of window "Recent downloads" to {rightEdge, 61}
    end tell
end opening folder

El único inconveniente de esta solución IMO es que, por un momento, cada una de las carpetas abiertas y la alerta "parpadean" en su pantalla ...

    
respondido por el clemsam lang 06.12.2015 - 01:43
3

Solución # 1 original:

El primero aquí tiene la ventaja de usar solo una acción de Automator y permite configuraciones bastante precisas de la ventana de propiedad de Safari resultante. Sus resultados finales son un "servicio" en los menús de Safari más un método abreviado de teclado.
Estos componentes están involucrados:

  • " Download.plist " de Safari (en: Biblioteca / Safari)
  • Un script de shell ejecutando cat & sed, filtrando la entrada del archivo plist en "Downloads1.html"
  • Un archivo Html "Downloads2.html" que contiene etiquetas Html de su elección (sin etiquetas de acabado: < / ...)
  • Un AppleScript que contiene un comando "do shell script", que le dice a "Safari que abra un
  • ... Archivo HTML "Downloads.html", generado por el script de shell, para finalmente obtener ...
  • Automator para colocar un flujo de trabajo en el menú " Servicios " de Safari.

Este código se ejecuta como un Servicio de Automatización (sin los comandos "ejecutar" es AppleScript simple):

on run {input, parameters} 
 -- [Only if needed, place: "LANG=C; LC_CTYPE=C; LC_ALL=C;" in front of "cd"]

    do shell script "cd ˜/Users/[myName]/Library/Safari/;
             rm Downloads.html;
             cat Downloads.plist | sed -n ' { s/.*Downloads/<p>D'load => /; ¬
                     s/.*Trash/<p>Trashed => / ; s/.*Movies/<p>Movies => /; ¬
                     s/mp4.*/mp4<p>/ p; }' > Downloads1.html';
             cat Downloads2.html Downloads1.html > Downloads.html;"

    tell application "Safari"
        make new document at end of documents with properties ¬
            {URL:"file:///Users/[myName]/Library/Safari/Downloads.html"} 
        set bounds of window 1 to {700, 62, 1280, 450} 
    end tell 
    return input 
end run

(El script de shell y "crear un nuevo documento ..." están diseñados para ser una línea cada uno.)

Hay dos "filtros" integrados a la parte sed (. * Movies &. * Trash) para que la ventana de mi navegador tenga este aspecto (puedes editar estos filtros o agregar Extensiones a tus necesidades):

+----------------------- Toolbar -------------------------+
|                                                         |
|  D'load => /Some_sinster_TV_series_S02E01_15.11.21_00-  |
|  40_BBC3_93_TVOON_DE.mpg.HQ.avi.otrkey                  |
|                                                         |
|  Movies => DS9.4.07_Little_green_men.mp4                |
|                                                         |
|  Trashed => /DS9.3.09_Defiant.mp4                       |
|                                                         |
|  Trashed => /DS9.3.07_Civil_Defense.mp4                 |
|                                                         |
+---------------------------------------------------------+

(Esas puntas chupan, pero son difíciles de filtrar.)

  • La segunda línea comentada puede ser necesaria, o no ...
  • Reemplaza [miNombre] con tu propio nombre de usuario.
  • Para usar este código como "servicio" en Safari, debes pegarlo dentro del campo "Ejecutar AppleScript" en automator. Guárdelo como "flujo de trabajo".
  • Luego puede crear un acceso directo (por ejemplo, opt-cmd-d) que lo ejecutará instantáneamente (Preferencias del sistema / Teclado / Accesos directos / Servicios).
  • Mi solución no es realmente sofisticada, pero aprendí (vislumbré) mucho sobre sed, awk, cat y AppleScript / Automator.
respondido por el clemsam lang 01.12.2015 - 19:58
0

Solución # 1

Hasta ahora, ninguna respuesta explica cómo influir en la ventana emergente de Safari mediante programación:

Utilizando solo Automator

Esta es una manera de mostrar una lista de "Descargas recientes", que utiliza solo Automator .

  • No necesitas usar AppleScript aquí en absoluto. En su lugar, se necesitan 4 de los módulos de Automator para ejecutarse.
  • Aparecerá una ventana del navegador muy bien enmarcada (estilo Automator).
    (Deberá colocar un archivo "Downloads2.html", que contiene sus etiquetas html sin etiquetas finales, dentro de / Usuarios / [miNombre] / Biblioteca / Safari, sin embargo.)
  1. Después de abrir Archivo > Nuevo > Servicio en Automator , haga doble clic en

    Automator ... Haga un script de shell

    A continuación, pegue el siguiente código en la ventana del lado derecho:

    # only if needed, place as 1st line: LANG=C; LC_CTYPE=C; LC_ALL=C;
    
    cd /Users/[myName]/Library/Safari;
    cat -su Downloads.plist | sed -n  '{ s/.*Downloads/<p>D'load => / ; ¬
          s/otrkey.*/otrkey/ p; s/.*Trash/<p>Trashed => / ; ¬
          s/.*Movies/<p>Movies =>  /;  s/mp4.*/mp4<p>/ p; }' > Downloads1.html;
    rm Downloads.html;
    cat Downloads2.html Downloads1.html > Downloads.html;
    
  2. Haz doble clic en Pausa en la lista de acciones de Automator

    Elegí 0.1 / Segundos pero tuve que marcar el botón Ignorar la entrada de esta acción ( Opciones ). Descubrí que en mi computadora, Safari mostraría una ventana vacía si no concedía una pausa a la siguiente acción ...

  3. Agregue Obtener URL especificadas de la lista de acciones de Safari . Elimine cualquier URL dada y elija el botón [AGREGAR] . Luego escribe:

    file:///Users/[myName]/Library/Safari/Downloads.html
    
  4. Finalmente, el último paso es hacer doble clic en Sitio web emergente en Safari's . Mis parámetros:

    • Tamaño del sitio: Personalizado
    • Valores: 600 x 300
    • Posición: Centrado

    (El enfoque de Safari permanecerá en la ventana frontal, por lo que no puedes presionar "ESC" para cerrar la ventana emergente.)

  5. Puede agregar: Preferencias del sistema → Teclado → Atajos → Servicios; (por ejemplo, opt-cmd-d).

(Eche un vistazo a la ventana resultante en "Original Workaround # 1" más adelante, ¡ya que ambos ejemplos utilizan archivos Html idénticos para su apariencia!)

    
respondido por el clemsam lang 05.12.2015 - 15:08

Lea otras preguntas en las etiquetas