skip to main | skip to sidebar

Tables Latency Benchmark

Being the blog of Pete Hopkins. This pirate kills fascists.

Bling-Bling

www.flickr.com

Saturday, September 9

Downloading the New York Times Crossword with Automator

Wordplay got me into doing crosswords. If Jon Stewart, Bill Clinton, and the Indigo Girls are all into something (not to mention Ken Burns) I’d be crazy not to be all up on that. I bought the yearly online subscription to the New York Times puzzle and have been doing (attempting) it pretty much every day.

I made a workflow with Apple’s Automator to download each day’s puzzle from the Times’ website and print it out. If you’re in a similar position as I (you have the subscription, Across Lite, and Mac OS X 10.4) then give it a try: Print Crossword.workflow.

The overall workflow is pretty straightforward:
  1. Start with the New York Times crossword page URL
  2. Download the page, with proper authentication
  3. Find the URL to today’s puzzle
  4. Download today’s puzzle
  5. Open today’s puzzle
  6. Print today’s puzzle
There were two tricky bits at #3 and #6, which I had to solve using shell scripting and AppleScript, respectively.

While Safari scripting does a fair amount (I was happy it took care of using my NYTimes.com cookie for the authentication), it doesn’t handle #3, which actually surprised me. The task I needed is to get the URL linked to with the words “Today’s Puzzle.” Here’s the script I used:
grep -o "<a href=\"[^\"]*\">Today's Puzzle" $1 | sed -n -e "s|<a href=\"\\([^\"]*\\)\".*|http://select.nytimes.com/premium/xword/\\1|p"
rm -rf $1
Yeah, it’s a bit of a hack but it works. (If anyone has a better line, please leave it in the comments.) The grep is there to cut down on the data going in to sed, since sed will print out the unmatched start of the line (and matching the start with a regexp is too slow).

I was impressed with how simple it was to include a shell script in the workflow, given the typing going on. But “Files/Folders” became a path, and the stdout text became “URLs” for the next step. Neat!

Getting Across Lite to print the puzzle was the second tough bit. Across Lite is a reasonable program, but, as is often the case with ported software has no AppleScript support, so I had to fall back on GUI Scripting instead of the standard “print” command. Here’s the code:

on run {input, parameters}
set xfile to item 1 of input

tell application "Finder"
open xfile
end tell

tell application "Across Lite v2.0"
activate
end tell

tell application "System Events"
tell process "Across Lite v2.0"
click menu item "Print" of menu "File" of menu bar 1
keystroke return
keystroke return
keystroke return
end tell
end tell

tell application "Across Lite v2.0"
delay 10
quit
end tell

tell application "Finder"
delete xfile
end tell

return input
end run
Not too much to say here. Three returns to get through the print choices, Page Setup, and Print dialog boxes, and a ten second delay to prevent a crash.

And there you go! I saved this as an iCal plug-in and scheduled it to go off every day at 7AM. Though, to be truthful, I could probably turn it off for Fridays and Saturdays… But now every day when I wake up I have a crossword puzzle to take with me to do on the shuttle.
Posted by Fin at 7:00 PM

4 comments:

  1. Anonymous9:27 AM

    pete, I don't know about anyone else, but on my computer your blog always has the left sidebar on top of the post. Like a transparent overlay.

    I have to sign in anonymous...I hate that.

    peace...
    annie
    http://bloggeruniversity.blogspot.com/

    ReplyDelete
    Replies
      Reply
  2. akshay10:49 PM

    See, now, I went out and bought a book of NYT crosswords and am currently bumbling my way through this one. If only I knew how to use this whole internet thing...

    ReplyDelete
    Replies
      Reply
  3. Rich9:11 AM

    This was working great until today, Nov 10, on Leopard - ideas?

    ReplyDelete
    Replies
      Reply
  4. ds8:29 PM

    Excellent! Thank you!

    ReplyDelete
    Replies
      Reply
Add comment
Load more...

Newer Post Older Post Home
Subscribe to: Post Comments (Atom)

Followers

Subscribe To

Posts
Atom
Posts
Comments
Atom
Comments

Blog Archive

  • ►  2009 (7)
    • ►  March (5)
    • ►  January (2)
  • ►  2008 (36)
    • ►  December (4)
    • ►  October (1)
    • ►  September (4)
    • ►  August (8)
    • ►  July (4)
    • ►  May (2)
    • ►  April (4)
    • ►  March (4)
    • ►  February (3)
    • ►  January (2)
  • ►  2007 (24)
    • ►  December (1)
    • ►  November (2)
    • ►  October (5)
    • ►  September (1)
    • ►  June (6)
    • ►  May (2)
    • ►  March (3)
    • ►  February (1)
    • ►  January (3)
  • ▼  2006 (32)
    • ►  December (3)
    • ►  November (1)
    • ►  October (5)
    • ▼  September (3)
      • Syncing Podcasts with iPod in iTunes 7
      • Downloading the New York Times Crossword with Auto...
      • Feed Reader Feature Request
    • ►  August (2)
    • ►  May (1)
    • ►  April (2)
    • ►  March (1)
    • ►  February (6)
    • ►  January (8)
  • ►  2005 (53)
    • ►  December (8)
    • ►  November (30)
    • ►  October (5)
    • ►  September (10)

Gamercard

Geekness

Twitter Updates

Twitter Updates

    follow me on Twitter

    About Me

    My Photo
    Fin
    I play board games and video games, and sing sea shanties when I can. I like shiny things and tech things and cat macros. I am aware of all Internet traditions.
    View my complete profile

    Search This Blog

    Friends’ Blogs

    • Mihai Parparita
      Infinite Mac: Snow and A/UX
      4 weeks ago
    • Jason Shellen
      methaphone
      10 months ago
    • Graham Waldon
      Card Game: The Fellowship of the Ring
      1 year ago
    • Michael Greenberg
      I’m looking for students!
      2 years ago
    • Adam Saks
      Mengatasi Ambeien Atau Wasir Kambuh
      6 years ago
    • Abstractioneer
      Things People Have Been Impeached For In the Past
      6 years ago
    • Kellan Elliott-McCrea
      New-ish site
      7 years ago
    • tins ::: Rick Klau's weblog
      Jaguar I-Pace first impressions
      7 years ago
    • Jason Goldman
      Links for 2017-02-22 [del.icio.us]
      9 years ago
    • Greg Stein
      PSA: Redbud Custom Homes
      9 years ago
    • --verbose
      How to Write Hello World in Go (in Go)
      12 years ago
    • Stacy Jenson
      I promise not to mommyblog
      12 years ago
    • Eric Case
      Creepy
      13 years ago
    • Vast Public Indifference
      Pompe Stevens, Enslaved Artisan
      13 years ago
    • watched pots | news
      Dogs are cool.
      14 years ago
    • Rachel Grey
      Six months with Ido Portal: game-changer 2011
      14 years ago
    • Lauren Davis
      Best Thing Today: Opinioncat Lady
      14 years ago
    • massless
      Dreams, discernment, and Google Reader
      14 years ago
    • saladwithsteve
      Building F# on Mac OS X
      16 years ago
    • Farang
      Kaiseki
      17 years ago
    • Marty Lichmann
      Janko Keyboard
      17 years ago
    • Shriram Krishnamurthi
      Project Beansprout Successful
      17 years ago
    • Mobile Vince
      Hawaii wrap-up
      19 years ago
    • Chinese Migrant Worker
      More Real Than Real
      19 years ago
    • Laurence Gonsalves
      Copyright Law and the King
      19 years ago
    • Josh Peterson
      St. Pardi Gras Shirts
      19 years ago
    • Buzz Andersen
    • Tina Huang
    • Evan Williams
    • Andy Yen
    • Biz Stone, Genius
    • Kimmy Richardson
    • tajc | taj campbell
    Show 10 Show All
    Powered By Blogger