|
|
Save selected browser text via AppleScript
For what it's worth here's a script I found out there in internet land that will copy text from both Firefox and Safari windows and add information at the top as to what site it came from:
************************************************** -- 'Create Desktop Text Note From Selected Safari Text' Script (* Safari doesn't appear to support an AppleScript command to Copy selected text to the Clipboard, so this script relies on the user selecting only the desired text, or using 'Select All' (Command-A), and then using 'Copy' (Command-C) before executing this script. Ideally, the user would use Keyboard Maestro, FruitMenu or Youpi Key (free) to tell Safari to 'Copy' the selection and then execute this script.*) global theLongDate, theDay, theMonth, theYear, theTime, theMeridian, theDateStamp, theName (*Remember, you must first make your desired text selection in Safari...*) get the clipboard set theClipboard to the clipboard as text (* See how big the file will be for naming purposes...*) try if the number of characters of theClipboard is less than 31 then set theLimit to the number of characters else if the number of characters of theClipboard is greater than 31 then set theLimit to 31 end if (* Large selections results in a 'stack overflow' error; simple error handler here...*) on error set theLimit to 31 end try (* Use this information to generate a file name...*) set textString to characters 1 thru theLimit of theClipboard as string (* Make sure the file name doesn't have any illegal characters... *) set the textString to replaceCharsName(textString, "/", "-") set the textString to replaceCharsName(textString, ":", ".") on replaceCharsName(thisText, searchString, replacementString) set AppleScript's text item delimiters to the searchString set the itemList to every text item of thisText set AppleScript's text item delimiters to the replacementString set thisText to the itemList as string set AppleScript's text item delimiters to "" set theName to thisText as text end replaceCharsName (* To make sure the filename is unique, so it doesn't generate an error or write appended information to an existing note, we're going to date-stamp the file name... *) set theLongDate to the (current date) set the theYear to theLongDate as text (*begin optional 'yy' format *) set theYear to characters -13 thru -14 of theYear as text (*end optional'yy' format *) (* begin optional 'yyyy' format *) --set theYear to characters -13 thru -16 of theYear as text (* end optional 'yyyy' format *) (* begin optional alpha month string; decomment to enable; be sure to disable numeric option! *) set theMonth to the month of theLongDate as text set theMonth to characters 1 thru 3 of theMonth as text (* end optional month string *) (*begin optional numeric month string: *) (* copy theLongDate to theMonth set the month of theMonth to January set monthNumber to (1 + (theLongDate - theMonth + 1314864) div 2629728) set theMonth to characters -2 thru -1 of ("0" & (monthNumber as string)) as text *) (*end optional numeric month string *) set dayNumber to day of theLongDate as number set theDay to characters -2 thru -1 of ("0" & (dayNumber as string)) as text set theTime to characters -4 thru -12 of (theLongDate as string) as text (* optional -- look for illegal filename characters in the time; change the separator to whatever you like (except ":" and "/") *) set theTime to replaceChars(theTime, ":", ".") on replaceChars(thisText, searchString, replacementString) set AppleScript's text item delimiters to the searchString set the itemList to every text item of thisText set AppleScript's text item delimiters to the replacementString set thisText to the itemList as string set AppleScript's text item delimiters to "" set theTime to thisText as text end replaceChars (* end optional illegal characters *) set theMeridian to characters -1 thru -2 of (theLongDate as string) as text (*change the output order below; add spaces, separators, etc.; remove input as you wish*) set theDateStamp to theYear & theMonth & theDay & theTime & theMeridian (*Now we take the file naming parameters to Safari... *) tell application "Safari" (* Gather some more information to stamp the note internally...*) set theWindowName to the name of the front window set theURL to the URL of the front document (* Name the file here; yes, I know, ugly use of file name limits and formatting; the point was to create file names that gave hints to the content; the unique date was required to prevent duplication and overwrites...*) set theFile to theName & "... " & theDateStamp (* Set the filepath to the Desktop of the current user; some people may wish to modify this path to a specific folder; e.g., "Web Clippings"; alter as desired. *) set pathstring to ((path to desktop) as text) & theFile (*Generate the final content and write the note...*) set writeString to "Source: " & theURL & return & "Page Title: " & theWindowName & return & "Date: " & theLongDate & return & return & (the clipboard) set theNote to open for access file pathstring with write permission write writeString to theNote close access theNote end tell *************************************************** Again I don't remember where I got the script. The site information will be at the top of the document and looks like this: Source: http://www.macosxhints.com/ Page Title: macosxhints.com - OS X tips and tricks! Date: Friday, February 15, 2008 9:38:53 AM I use a QuicKeys shortcut to run the script.
Save selected browser text via AppleScript
That's a nice script by whoever wrote it. |
SearchFrom our Sponsor...Latest Mountain Lion HintsWhat's New:HintsNo new hintsComments last 2 daysLinks last 2 weeksNo recent new linksWhat's New in the Forums?
Hints by TopicNews from Macworld
From Our Sponsors |
|
Copyright © 2014 IDG Consumer & SMB (Privacy Policy) Contact Us All trademarks and copyrights on this page are owned by their respective owners. |
Visit other IDG sites: |
|
|
|
Created this page in 0.09 seconds |
|