David Nunez

David Nunez lives, wonders, tinkers and builds in Boston.

Posts Tagged ‘netnewswire’

Applescript to import articles into devonthink pro and del.icio.us from incoming NetNewsWire RSS streams

August 1, 2007  |  Uncategorized  |  , , ,  |  2 Comments  | 

The applescript in this post will take the currently selected headline or tabbed article in NetNewsWire, prompt the user for tags about the article, and then create an HTML copy of the article in DEVONThink in a sub group.

If the first tag is not the word “private” then the link is also posted, via cocoalicious, to my del.icio.us account.

This was based on my prior script and Ethan’s attempt to deal with info overload.

It attaches the referral URL to the DEVONThink record, so when it creates the archive, it will actually fetch the article from the original source (ex. del.icio.us posts get the original article)

Since DEVONThink doesn’t really do tags, I’ve co-opted the “comments” field for this purpose.

This is attached to a Quicksilver trigger (CMD-CTR-OPTION-/).

Here is the workflow:

  • SCAN: Quickly scan headlines in NetNewsWire and hit return when I see a headline that seems interesting. This opens the page in the background in a tab in NNW
  • READ: Go down list of articles, skim them, do CMD-CTR-OPTION-/ for those I’d like to possibly include in future research to invoke my script. * In the prompt that appears, type a few keywords/tags that describe the content and hit “return”
  • REVIEW: Later on, when doing research or work around a topic, I can use DEVONThink’s smart searching features confidently knowing that it will dig up at least some interesting connections between articles I saved.

Things to do:

  • add a growl notification saying “successful import”
  • write a looping script that will handle the few hundred articles marked as “flagged” in NNW by archiving them. What would the tags be here?

set destination_group_location to "/url/delicious/"

tell application "NetNewsWire" set userInput to text returned of (display dialog "Enter Tag:" default answer "untagged")

set h_tags to userInput

set AppleScript's text item delimiters to space
set h_tags to h_tags's text items
set AppleScript's text item delimiters to {""}--> restore delimiters'

try
    if (index of selected tab is not 0) then
        set tabnum to index of selected tab + 1
        set taburls to URLs of tabs
        set h_URL to (get item tabnum of taburls)
        set tabtitles to titles of tabs
        set h_title to (get item tabnum of tabtitles)
        set h_mdate to get current date
        set h_when to current date

    else if exists selectedHeadline then
        set h_URL to URL of selectedHeadline
        set h_title to title of selectedHeadline
        set h_mdate to get current date
        if exists date published of selectedHeadline then
            set h_when to date published of selectedHeadline
        else
            set h_when to date arrived of this_headline
        end if
    else
        error "No headline is selected."
    end if
on error error_message number error_number
    if the error_number is not -128 then
        try
            display alert "NetNewsWire" message error_message as warning
        on error number error_number
            if error_number is -1708 then display dialog error_message buttons {"OK"} default button 1
        end try
    end if
end try

tell application "DEVONthink Pro"
    if item 1 of h_tags is "private" then
        set destination_group_location to destination_group_location & item 2 of h_tags
    else
        set destination_group_location to destination_group_location & item 1 of h_tags
    end if

    if not (exists record at destination_group_location) then
        set destination_group to create location destination_group_location
    else
        set destination_group to get record at destination_group_location in current database
    end if

    set archive to create record with {name:h_title, type:html, creation date:h_when, modification date:h_mdate, URL:h_URL, comment:userInput} in destination_group
    set source of archive to download markup from h_URL

end tell

tell application "Cocoalicious"
    if item 1 of h_tags is not "private" then
        make new post with properties {description:h_title, url:h_URL, tag string:userInput}
    end if
end tell

end tell

Technorati Tags: , ,

Applescript that archives NetNewsWire post to DEVONThink Pro

March 24, 2007  |  Uncategorized  |  , , , ,  |  Comments Off  | 

As a refinement to an earlier script I posted, I made some modifications to my suggested news reading workflow.

The applescript in this post will take the currently selected article in NetNewsWire, prompt the user for tags about the article, and then create a web archive of the article in DEVONThink.

It attaches the referral URL to the DEVONThink record, so when it creates the archive, it will actually fetch the article from the original source (ex. del.icio.us posts get the original article)

Since DEVONThink doesn’t really do tags, I’ve co-opted the “comments” field for this purpose.

I’ve attached this script to a hotkey using Red Sweater’s FastScripts (cmd-ctr-option-/) Of course, a more hipster way to do this might be to consider quicksilver triggers.

Here is the workflow:

  1. Quickly scan headlines in NetNewsWire and do CMD-CTR-OPTION-/ when I see a headline I’d like to possibly include in future research
  2. In the prompt that appears, type a few keywords/tags that describe the content and hit “return”
  3. Later on, when doing research or work around a topic, I can use DEVONThink confidently knowing that it will dig up at least some interesting connections between articles I saved.

Note: if the article is something that I think I would want to read immediately, I can either tag it with “@read” or hit return in NNW to pop it up in a browser window. In the latter case, it’s critical that I seperate the *scanning* mode from the *reading* mode. I accomplish this by setting a timer (say 15 minutes per day) where I’m just scanning headlines for read-immediates or archivable articles and another timer for my reading stuff. From my browser, I can go on to create archives if I determine it’s worth saving.

Things to do

  • add a growl notification saying “successful import”
  • in DEVONThink, use the @read tag somehow to generate a reading list or printable digest of articles
  • write a looping script that will handle the few hundred articles marked as “flagged” in NNW by archiving them. What would the tags be here?

tell application "NetNewsWire"
    try
        if exists selectedHeadline then
            set h_comment to text returned of (display dialog "Enter Tags:" default answer "")
            set this_headline to selectedHeadline
            set h_mdate to get current date
            set h_title to title of this_headline
            set h_note to description of this_headline
            if exists date published of this_headline then
                set h_when to date published of this_headline
            else
                set h_when to date arrived of this_headline
            end if
            set h_URL to URL of this_headline
            set h_note to "<html><body>

<

p>

Applescript to import NNW smart folder into Yojimbo

March 20, 2007  |  Uncategorized  |  , , ,  |  Comments Off  | 

Today I modified this script which facilitates Yojimbo importing from NetNewsWire

I’ve set up a smart folder in NetNewsWire that grabs the latest 50 flagged headlines from any feed.

I needed this script because I had a technorati watch feed for dorkbot and I wanted to collect blog mentions to send around. I was just flagging articles that mentioned dorkbot-austin and wanted to export a list of bookmarks.

With this, the workflow is now:

  1. Quickly scan headlines in NetNewsWire and do CMD-Shift-L to flag interesting content.
  2. Run this script on the smart folder (this creates a web archive in Yojimbo of each of these articles and removes the flag on the headline in NetNewsWire)
  3. Over time, spend a few minutes working down the list of archived articles in Yojimbo and tag/delete them further as necessary.

Potential problem: This makes it really easy to procrastinate making decisions on what to read and what to do with what I read. Following this strategy will lead to a large pile of unsorted links which I’ll very likely will never find the time to sort through.

I think DEVONThink does a better job of scanning and grouping incoming pieces of text.

I should probably rewrite this to send flagged content directly to DEVONThink. Then, instead of queueing up a long list of articles to read, I’ll let DEVONThink suggest articles for me to read as I do research. Anything that I think I’d want to read immediately I could tag with “@Read” or something similar.

    tell application "NetNewsWire"
        try
            set userInput to text returned of (display dialog "Enter Tag:" default answer "untagged")
            set oldDelims to AppleScript's text item delimiters
            set AppleScript's text item delimiters to {", ", ","}
            set h_tags to text items of userInput
            set AppleScript's text item delimiters to oldDelims
            if (index of selected tab is not 0) then
                set tabnum to index of selected tab + 1
                set taburls to URLs of tabs
                set h_URL to (get item tabnum of taburls)
                set tabtitles to titles of tabs
                set newItemTitle to (get item tabnum of tabtitles)
                tell application "Yojimbo"
                    --set newItem to make new bookmark item with properties {name:newItemTitle, location:h_URL}
                    set newItem to make new web archive item with contents h_URL
                    add tags h_tags to newItem
                    set flagged of newItem to true
                    set isFlagged of h to false
                end tell
            else if exists selectedSubscription then
                repeat with h in headlines of selectedSubscription
                    set h_URL to URL of h
                    set h_title to title of h
                    set isFlagged of h to false
                    tell application "Yojimbo"
                        --set newItem to make new bookmark item with properties {name:h_title, location:h_URL}
                        set newItem to make new web archive item with contents h_URL
                        add tags h_tags to newItem
                        set flagged of newItem to true
                    end tell
                end repeat
            else
                error "No headline is selected."
            end if
        on error error_message number error_number
            if the error_number is not -128 then
                try
                    display alert "NetNewsWire" message error_message as warning
                on error number error_number
                    if error_number is -1708 then display dialog error_message buttons {"OK"} default button 1
                end try
            end if
        end try
    end tell