ฉันสามารถใช้ AppleScript เพื่อวางคลิปข้อความเว็บที่ผนวกเข้ากับแหล่งที่มาและการประทับเวลาขณะที่ยังคงลิงก์ที่ฝังไว้ได้หรือไม่


0

สมัครสมาชิกใหม่ให้สมบูรณ์ที่นี่ดังนั้นโปรดแจ้งให้เราทราบหากฉันต้องการชี้แจงหรือปรับปรุงคำถามของฉัน ฉันค้นหาหลายครั้งโดยใช้คำหลักที่แตกต่างกันและไม่สามารถหาวิธีแก้ไขปัญหาของฉันได้หรือทำให้สิ่งที่ฉันหวังว่าจะเป็นทางออกสำหรับฉัน

ฉันต้องการสร้างสคริปต์ AppleScript ที่เมื่อถูกกระตุ้นจะอนุญาตให้ฉันวางคลิปข้อความเว็บที่ผนวกเข้ากับแหล่งที่มาและการประทับเวลาโดยไม่สูญเสียลิงก์ที่ฝังภายในข้อความที่เลือก

นี่คือภาพหน้าจอของสิ่งที่ฉันต้องการบรรลุ:

ภาพหน้าจอ

ฉันไม่สามารถรู้อะไรเกี่ยวกับการเขียนโปรแกรมได้อย่างชาญฉลาดฉันสามารถรวบรวมสคริปต์ AppleScript ต่อไปนี้หลังจากค้นหาเว็บสองสามวัน

-- clear the clipboard
tell application "Finder"
    set the clipboard to " "
    delay 0.1
end tell

-- copy selected text
tell application "Safari"
    activate
    tell application "System Events"
        tell process "Safari"
            keystroke "c" using {command down}
            delay 0.1
        end tell
    end tell
end tell

-- open and paste web clip into specified TextEdit file 
tell application "TextEdit"
    activate
    open "Macintosh HD:Users:Web:Documents:Web Text Clips:Web_Text_Clips.rtf"
    delay 0.2
    tell application "System Events"
        tell process "TextEdit"
            keystroke "v" using {command down}
            delay 0.1
        end tell
    end tell
end tell

-- get, format and copy source info and timestamp 
tell application "Safari"
    activate
    set theLongDate to current date
    set theWindowName to the name of the front window
    set theURL to the URL of the front document
    set writeString to "- - - - - " & return & "From: " & theURL & return & "Page Title: " & theWindowName & return & "Date: " & theLongDate
    set the clipboard to writeString
end tell

-- paste source info and timestamp into predefined position of the specified TextEdit file 
tell application "TextEdit"
    activate
    tell application "System Events"
        tell process "TextEdit"
            keystroke (ASCII character 31) using command down
            keystroke return
            keystroke return
            keystroke "v" using {command down}
            delay 0.1
        end tell
    end tell
end tell

-- copy content of specified TextEdit file 
tell application "TextEdit"
    activate
    tell application "System Events"
        tell process "TextEdit"
            keystroke "a" using {command down}
            keystroke "c" using {command down}
            delay 0.1
        end tell
    end tell
end tell

-- delete content of specified TextEdit file 
tell application "TextEdit"
    activate
    tell application "System Events"
        tell process "TextEdit"
            keystroke "a" using {command down}
            keystroke "x" using {command down}
            delay 0.1
        end tell
    end tell
end tell

-- save specified TextEdit file and quit TextEdit
tell application "TextEdit"
    save "Macintosh HD:Users:Web:Documents:Web Text Clips:Web_Text_Clips.rtf"
    quit
end tell

ฉันถูกบังคับให้ใช้วิธีแก้ปัญหานี้เพราะเมื่อฉันใช้setคำสั่งลิงก์ที่ฝังตัวจะถูกลบออกจากข้อความเว็บที่เลือก

ในขณะที่สคริปต์นี้ใช้งานได้ค่อนข้างยุ่งยากและช้า ฉันได้ลองทำสิ่งที่แตกต่างหลากหลายรวมถึงคำสั่งเชลล์สคริปต์บางคำ แต่จนถึงตอนนี้ก็ไม่มีอะไรได้ผล

ทุกคนสามารถช่วยฉันในการสร้างสคริปต์ที่หรูหราและเร็วขึ้นซึ่งยังคงลิงก์ที่ฝังไว้ในข้อความเว็บที่เลือกได้หรือไม่

ฉันใช้ macOS Sierra 10.12.6


@ user3439894 ฉันขอขอบคุณการแก้ไขการสะกดคำและไวยากรณ์ที่ผิดพลาด คุณสามารถขยายความกรุณาของคุณไปสู่ด้านเทคนิคเพิ่มเติมของคำถามของฉันได้หรือไม่? คือวิธีการวางคลิปข้อความบนเว็บพร้อมกันข้อมูลต้นฉบับและบันทึกเวลา?
เว็บสมิ ธ

คำตอบ:


-1

ฉันสับสนสคริปต์ของคุณดูเหมือนว่าจะคัดลอกและวางและลบและบันทึกดังนั้นหากฉันเข้าใจผิดว่าคุณตั้งใจจะใช้งานฉันขอโทษ ดูเหมือนว่าฉันต้องการให้คุณบันทึกไฟล์ในโฟลเดอร์ Web Clips ที่มีสิ่งที่คุณเลือกใน Safari พร้อมกับลิงค์ชื่อเรื่องและวันที่ ฉันจะเขียนสิ่งนี้เป็นไฟล์ HTM แทนที่จะเป็นไฟล์ข้อความและนี่คือรหัสที่ฉันใช้กับความคิดเห็นแบบอินไลน์

set myFolder to ((path to users folder) as text) & "Web:Documents:Web Text Clips:"
set myFile to myFolder & "Web_Text_Clips.htm"

tell application "Safari"
set theLongDate to current date
set theWindowName to the name of the front window
set selectedText to (do JavaScript "(''+getSelection())" in document 1) --use javascript to get what part of the page is selected
set theURL to the URL of the front document
end tell

set myFolder to POSIX path of (myFolder as alias) --convert to posix path for use in the command line
set myFile to quoted form of (myFolder & myFile) --append the file name to the end of the file path
do shell script "touch " & myFile --create the htm file

--Add content to the HTM document
newHTM(myFile) --Add the HTM doctype and opening tags.
addElement("p", "--------", myFile) --"p" is the htm tag for a paragraph, and we want this to be it's own paragraph. 
addElement("p", "From: <a href=" & theURL & ">" & theURL & "</a>", myFile) --a bit more complex, adding a paragraph with a link (<a> is the link tag)
addElement("p", "Page Title: " & theWindowName, myFile) --Adding a paragraph for the Page Title
addElement("p", "Date: " & theLongDate, myFile) --Adding a paragraph for the Date line.
closeHTM(myFile) --Add the closing HTML tags.

------------HANDLERS------------
on newHTM(filePath)
    do shell script "printf '<!doctype html>\n<html lang=\"en\">\n<head>\n\t<title>Web Clips</title>\n\n</head>\n\n<body>\n\t' > " & filePath
end newHTM

on closeHTM(filePath)
    do shell script "printf '\n\t</body>\n</html>' >> " & filePath
end closeHTM

on addElement(elem, htm, filePath)
    set htm to "\t\t<" & elem & ">" & htm & "</" & elem & ">\n"
    do shell script "printf '" & htm & "' >> " & filePath
end addElement

สคริปต์นี้เก็บรักษาลิงก์โดยใช้ HTML เพื่อ "ฝัง" ลิงก์ มันจะเปิดในเบราว์เซอร์เริ่มต้นของคุณ ฉันเห็นว่าจากสคริปต์ของคุณไฟล์นี้มีการตัดต่อเว็บล่าสุดเท่านั้นดังนั้นฉันจึงเขียนมันขึ้นมา อย่างไรก็ตามหากคุณต้องการให้ไฟล์นี้มีรายการของคลิปบนเว็บสคริปต์จะต้องได้รับการแก้ไข ฉันหวังว่านี่จะเป็นการเริ่มต้นที่ดีสำหรับคุณ เพื่อความสะดวกในการอ่านฉันใส่การเพิ่มรหัส html ลงในตัวจัดการด้านล่างเนื้อความของรหัส


ใครก็ตามที่ลดคำตอบของฉันโปรดอธิบายว่าทำไม สคริปต์ทำตามที่ OP ต้องการ
Hurston

ฉันขอขอบคุณสำหรับความช่วยเหลือของคุณและขออภัยสำหรับคำถามที่สับสนและเป้าหมายที่ไม่ชัดเจน ผลลัพธ์สุดท้ายที่ฉันต้องการคือมีคลิปข้อความบนเว็บที่ฉันเลือก (มีลิงค์ใด ๆ ที่สามารถฝังได้) ข้อมูลต้นฉบับและการประทับเวลาบนคลิปบอร์ดพร้อมที่จะวางเป็นรายการเดียวในแอพโน้ตที่ต้องการ ฉันเคยถามคำถามของฉันเกี่ยวกับสแต็คล้นก่อนที่จะคิดว่านี่อาจเป็นสถานที่ที่ดีกว่าสำหรับคำถามที่เป็นศูนย์กลางของ Apple ผู้ใช้ jackjr300 ใจดีพอที่จะมอบสคริปต์ที่ยอดเยี่ยมซึ่งแก้ไขปัญหาของฉันได้ คุณสามารถตรวจสอบได้ที่นี่: tinyurl.com/y7mp43zw
Web Smith

อ่าขอบคุณสำหรับความกระจ่าง ฉันไม่รู้ว่าคุณต้องการมันในคลิปบอร์ดของคุณ ตอนนี้ฉันเข้าใจแล้วว่าทำไมสิ่งที่ฉันเขียนไม่ใช่สิ่งที่คุณมองหา
Hurston
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.