2 votos

Abrir una lista de URLs en el portapapeles como nuevas pestañas en Safari

Quiero abrir una lista de pestañas en Safari que tengo actualmente abiertas en Chrome.

En Chrome utilizo el botón Copiar todas las URLs que me permite copiar todas las URLs de las pestañas abiertas en el portapapeles. La misma extensión me permite también abrir una nueva pestaña para una lista de URLs en el portapapeles.

He encontrado Pestañas a enlaces que me permite copiar todas las pestañas abiertas de Safari como URL. Pero nada para abrir las pestañas de una lista determinada de URLs.

¿Me he perdido algo? ¿Alguien tiene alguna sugerencia de cómo resolver esto? Gracias de antemano.

3voto

user3439894 Puntos 5883

¿En qué formato está el Copiar todas las URLs extensiones en Google Chrome colocando el URLs en el portapapeles ?

Si son sólo líneas de texto con una URL en cada línea, entonces lo siguiente ejemplo AppleScript código abrirá un nuevo ventana en Safari y abrir cada URL en un nuevo ficha :

set theURLs to paragraphs of (the clipboard)

tell application "Safari"
    make new document with properties {URL:first item of theURLs}
    activate
    tell front window
        repeat with i from 2 to the length of theURLs
            set current tab to (make new tab with properties {URL:item i of theURLs})
        end repeat
        set current tab to first tab
    end tell
end tell

Si quiere que el objetivo no sea Safari ventana permanezca en más adelante mientras se abre cada URL en un nuevo ficha Entonces, aquí hay una manera de que eso ocurra:

Ejemplo AppleScript código :

set theURLs to paragraphs of (the clipboard)

set windowName to random number from 1000000 to 9999999
set tmpFileName to "/private/tmp/" & windowName & ".html"
set tmpFileContent to "<html><head><title>" & windowName & "</title></head></html>"

if not my writeToFile(tmpFileContent, tmpFileName, true) then return

tell application "Safari"

    make new document with properties {URL:"file://" & tmpFileName}
    set i to 0
    repeat while not (exists (windows whose name is windowName))
        delay 0.1
        set i to i + 1
        if i = 30 then return
    end repeat
    set winID to (id of windows whose name is windowName) as number

    make new tab at end of tabs of window id winID with properties {URL:item 1 of myURLs}
    delete first tab of window id winID
    repeat with i from 2 to (length of myURLs)
        make new tab at end of tabs of window id winID with properties {URL:item i of myURLs}
        delay 1
    end repeat

end tell

tell application "System Events" to delete file tmpFileName

--  # Handler #

on writeToFile(theData, theFile, overwriteExistingContent)
    try
        set theFile to theFile as string
        if theFile contains "/" then
            set theOpenedFile to open for access theFile with write permission
        else
            set theOpenedFile to open for access file theFile with write permission
        end if
        if overwriteExistingContent is true then set eof of theOpenedFile to 0
        write theData to theOpenedFile starting at eof
        close access theOpenedFile
        return true
    on error
        try
            close access file theFile
        end try
        return false
    end try
end writeToFile

El ejemplo AppleScript código puede utilizarse en un Automatizador Servicio/Acción Rápida con un Ejecutar AppleScript acción utilizando el ejemplo AppleScript código en lugar de la opción por defecto código .

Abierto: Automatizador -- Archivo > Nuevo     N

Elija un tipo de documento: Acción rápida

Establecer El flujo de trabajo recibe [ninguna entrada] en [Safari]

Añade un Ejecutar AppleScript acción de: Acciones > Biblioteca > Servicios públicos

Sustituir el valor por defecto código con el ejemplo AppleScript código .

Salvar el Automatizador Servicio/Acción Rápida .

Asignar el nuevo Servicio/Acción Rápida a atajo de teclado en: Preferencias del sistema > Teclado > Atajos > Servicios .

A continuación, está disponible en el Servicios menú en Safari y como atajo de teclado .

El ejemplo AppleScript código también puede utilizarse en cualquier aplicación de terceros que tiene la capacidad de activar AppleScript código y o asignarle un atajo de teclado . Personalmente uso FastScripts y no estoy asociado con su desarrollador, sólo soy un usuario satisfecho del producto.


Notas:

  • Este segundo ejemplo AppleScript código incluye algunos tratamiento de errores en el sentido de que si el archivo tmp (valor del tmpFileName variable ) no se crea el script aborta sin ningún mensaje. Esto se puede cambiar convirtiendo el if not my writeToFile ... declaración a un completo if bloque e incluya un display alert , display dialog o display notification comando como se desee, seguido por el return comando .

  • El repeat bucle tal y como está codificado está escrito para esperar hasta 3 segundos para el HTML archivo para cargar y debería ser tiempo más que suficiente. Ajústelo si es necesario.

  • Tal y como está codificado, asume el portapapeles contiene sólo líneas de texto con una URL en cada línea.


Nota: El <em>ejemplo </em><strong>AppleScript </strong><em>código </em>es sólo eso y sin ningún tipo de inclusión <em>tratamiento de errores </em>no contiene ningún otro <em>tratamiento de errores </em>según corresponda. Corresponde al usuario añadir cualquier <em>tratamiento de errores </em>como sea apropiado, necesario o deseado. Eche un vistazo a la <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_control_statements.html#//apple_ref/doc/uid/TP40000983-CH6g-129232" rel="nofollow noreferrer"><strong>pruebe con </strong></a><em>declaración </em>y <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_control_statements.html#//apple_ref/doc/uid/TP40000983-CH6g-129657" rel="nofollow noreferrer"><strong>error </strong></a><em>declaración </em>en el <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html" rel="nofollow noreferrer"><strong>Guía del lenguaje AppleScript </strong></a>. Véase también, <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_error_xmpls.html#//apple_ref/doc/uid/TP40000983-CH221-SW1" rel="nofollow noreferrer"><strong>Trabajar con errores </strong></a>. Además, el uso de la <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_cmds.html#//apple_ref/doc/uid/TP40000983-CH216-SW10" rel="nofollow noreferrer"><strong>retraso </strong></a><em>comando </em>puede ser necesario entre eventos cuando sea apropiado, por ejemplo <code>delay 0.5</code> con el <em>valor </em>de la <em>retraso </em>ajustado apropiadamente.

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