The Omni Group Forums

The Omni Group Forums (http://forums.omnigroup.com/index.php)
-   OmniFocus Extras (http://forums.omnigroup.com/forumdisplay.php?f=44)
-   -   Things to OF importer (http://forums.omnigroup.com/showthread.php?t=14846)

A to the B 2009-12-23 08:22 AM

Things to OF importer
 
Hi All,
1st post here. And 1st apple script late last night... It would be awesome if someone said "Hey, your reinventing the wheel here. Just follow this link."

I was able to get my data out of Things and into a tab delimited txt file. I then used the trial version of oo3 to convert the txt to an OmniOutliner file. The resulting txt file looks like this:
"projectName" \t "nextAction" \t "@Context" \t "duration eg. 5min or 1h" \t "priority eg. High, Low" \t "hugeChunkOfNotesWith\n'sRemovedToKeepOOHappy" \n (or \r I forget which) repeat...

Here are the issues I am working through:
-The resulting OmniOutliner file looks like the txt file (of course) but with many columns (and no outlining?). Is there a preferred way to format a txt file so that OO opens it and sees an outline and not just a 2d string array?

-OF brings everything in flat and doesn't recognize the project attribute (also flat-ish in OO hmmm, pg. 50 in the OO manual talks about out-denting... is there something here I am missing?)

-My durations go straight to metadata instead of the duration field (this could be my naming convention: 5min, 15min, 30min, 1h, 2h, 1d. What naming conventions are supported/recognized?)

-The notes show up but with a "Metadata: " string prepended to them. Any way to write directly to the notes object?

-I guess "Metadata: Priority: High" is fine. What do you use to set H M L priorities in your OF setup?

I know there is a lot here. Thanks for taking time to read it all. My script code is (will be) pasted below. It began life here: [url]http://culturedcode.com/things/wiki/index.php/Log_Today_List_(AppleScript)[/url]. BTW they have one that does OF to Things [url]http://culturedcode.com/things/wiki/index.php/Omni_To_Things[/url]. I'll check that out for ideas.

---On a silly XP machine at work, I'll post the script code later---

whpalmer4 2009-12-23 12:51 PM

[QUOTE=A to the B;70996]Hi All,
1st post here. And 1st apple script late last night... It would be awesome if someone said "Hey, your reinventing the wheel here. Just follow this link."
[/quote]
Welcome! Now why would you want someone else's script when you could have the satisfaction of building your own? :)
[quote]

Here are the issues I am working through:
-The resulting OmniOutliner file looks like the txt file (of course) but with many columns (and no outlining?). Is there a preferred way to format a txt file so that OO opens it and sees an outline and not just a 2d string array?
[/quote]
I don't know how you could structure a text file to tell OmniOutliner to build an indented outline from it. I would probably just convert the Applescript you're using to make the text file to build the structure in OmniOutliner directly. When you have a chance to post your code, I'll have a look at it and see what I can suggest. Others with more substantial Applescript chops may chime in as well.

[quote]
-OF brings everything in flat and doesn't recognize the project attribute (also flat-ish in OO hmmm, pg. 50 in the OO manual talks about out-denting... is there something here I am missing?)
[/quote]
Yeah, you can select a row (or rows) in OO and indent it with cmd-] or the Reorganize->Indent command. That will establish an outline structure, and OF will honor that structure during import.

[quote]
-My durations go straight to metadata instead of the duration field (this could be my naming convention: 5min, 15min, 30min, 1h, 2h, 1d. What naming conventions are supported/recognized?)
[/quote]
The underlying problem seems to be that the importer is broken -- I'm not able to get it to understand start/due dates or durations. I've filed a report.
[quote]
-The notes show up but with a "Metadata: " string prepended to them. Any way to write directly to the notes object?
[/quote]
Yes, if you use an Applescript to do it. Given that the importer seems to have some troubles with dates and durations, if you were already going to the trouble of making an script that wrote an OmniOutliner file to be imported and cared about dates and durations, one might as well just tell OmniFocus to build the rows directly. Too busy trying to convert this to a previously solved problem to take a step back and think of that before!
[quote]
-I guess "Metadata: Priority: High" is fine. What do you use to set H M L priorities in your OF setup?
[/quote]
I don't. I'm not a believer in putting on priority labels. I'll flag things and use start and due dates to manage the list as needed. One thing I've suggested in the past for people who want such a thing is repurposing the Duration field as a priority field. Make 1-5m your highest priority group, 6-15m your next priority group, etc. following the steps in the duration filter. Set the duration filter to 5 min and you'll only see your highest priority items. Set it to 15 minutes and you see the top two groups. Also sort by duration and you can have various shadings in each group.

A to the B 2009-12-23 08:23 PM

[QUOTE=A to the B;70996]
---On a silly XP machine at work, I'll post the script code later---[/QUOTE]

Later...

[CODE]on ReplaceText(find, replace, subject)
set prevTIDs to text item delimiters of AppleScript
set text item delimiters of AppleScript to find
set subject to text items of subject

set text item delimiters of AppleScript to replace
set subject to "" & subject
set text item delimiters of AppleScript to prevTIDs

return subject
end ReplaceText

--get replaceText("Windows", "the Mac OS", "I love Windows and I will always love Windows and I have always loved Windows.")


tell application "Things"
-- Include date in the filename.
-- Filename will be ThingsToday.2009June5.txt
set {year:y, month:m, day:d} to (current date)
set fileName to "ThingsNext." & y & m & d & ".txt"

-- Set the path. You should replace 'username' with your actual
-- username, and change the path as you please
set pathName to "Macintosh HD:Users:Alan:Desktop:" & fileName

set fullReport to ""

-- To number the lines in the output
set itemCount to 0

repeat with aToDo in to dos of list "Next"
set itemCount to itemCount + 1

-- Create an empty list for tags and notes and well everything...
set allTags to {}

-- Get project name
if (project of aToDo) is not missing value then
set todoDataRow to (name of project of aToDo) & ": " & (name of aToDo) & tab
else
set todoDataRow to "no project" & ": " & (name of aToDo) & tab
end if

-- Get item name
--set todoDataRow to todoDataRow & (name of aToDo) & tab

-- Get all tags on the todo item
set todoTags to tags of aToDo
repeat with aTag in todoTags
copy (name of aTag) to the end of allTags
end repeat

-- Get all tags on the project, if there is one
if (project of aToDo) is not missing value then
set projTags to tags of (project of aToDo)
repeat with aTag in projTags
copy (name of aTag) to the end of allTags
end repeat
end if

-- Get all tags on the area, if there is one --not needed for my application but you may need this
-- if (area of aToDo) is not missing value then
-- set areaTags to tags of (area of aToDo)
-- repeat with aTag in areaTags
-- copy (name of aTag) to the end of allTags
-- end repeat
-- end if

-- Get all notes on the todo, if there is one
if (notes of aToDo) is not missing value then
repeat with x from ((count allTags) + 1) to 4
copy "" to the end of allTags
end repeat

-- Replace line feeds
set aString to ""
copy (notes of aToDo) to aString
copy my ReplaceText("\n", "--- CR GUID ---", aString) to aString
copy aString to the end of allTags
end if

-- Combine the tags (and notes) into a tab-delimited list
if allTags is not missing value then
set AppleScript's text item delimiters to {"\t"}
set todoDataRow to todoDataRow & ¬
(allTags as text)
end if

set fullReport to fullReport & (todoDataRow & return as string)
end repeat

-- Get the count of inbox items
set inboxItems to count of (to dos of list "Inbox")

-- Compile the contexts and notes of the output for this run
-- Include full date and time, and counts of items in Today and Inbox
(* set fullReport to (((the current date) as string) & ¬
(tab as string) & ¬
(tab as string) & ¬
(itemCount as string) & " items in Today, " & ¬
(inboxItems as string) & " items in Inbox" & ¬
return as string) & fullReport & return as string
*)
-- Open and write to the ouput file
set outputFile to open for access (pathName as string) with write permission
write (fullReport & return as string) to outputFile starting at eof
close access outputFile
end tell
[/CODE]

It is pretty much a hack of some otherwise nice code written by someone else. I plan to clean up the mess I made :D and alter it to write straight to OF. I am still ramping up on apple script and the syntax...

Script question: Performance wise which is better?

A)
Tell app things to give me a big struct, all at once;
Then tell app OF to parse it and create OF rows all at once;

or B)
For (thisItem in allThingsItems)
{
Tell Things to copy anItem to thisItem;
Tell OF to set thisItem to someNewItem;
}

or C)
is this stuff doable/easier in xcode?

Thanks,
Ab

A to the B 2009-12-23 08:29 PM

Thanks for the response! Hopefully I'll have some time over the break to roll up my sleeves and dive into the OF API. I agree writting straight to OF and skipping the txt is ideal.

darrenburgess 2009-12-27 04:48 AM

there seems to be a syntax error in this line:

-- To number the lines in the output
set itemCount to 0

repeat with aToDo in [B]to[/B] dos of list "Next"
set itemCount to itemCount + 1


Error is "Expected expression but found "to"

A to the B 2009-12-31 08:30 AM

Done.
 
Below is code to export tasks from Things into OmniFocus. The importer grabs everything in "Next" and moves it over. It does NOT get items in "Someday" or "Scheduled" (it would be an easy change for you to make if you need it). It preserves projects and contexts (tags that look like "@_____").

This is my first real script. I hope you find it helpful.

Enjoy.
Ab

[CODE]
--------------------------------------------------
--------------------------------------------------
-- Import tasks from Things to OmniFocus
--------------------------------------------------
--------------------------------------------------
tell application "Things"

-- Loop through ToDos in Things
repeat with aToDo in to dos of list "Next"

-- Get title and notes of Things task
set theTitle to name of aToDo
set theNote to notes of aToDo

-- Get project name
if (project of aToDo) is not missing value then
set theProjectName to (name of project of aToDo)
else
set theProjectName to "NoProjInThings"
end if

-- Get Contexts from tags
-- get all tags from one ToDo item...
set allTagNames to {}
copy (name of tags of aToDo) to allTagNames
-- ...and from the project...
if (project of aToDo) is not missing value then
copy (name of tags of project of aToDo) to the end of allTagNames
end if
-- ...now extract contexts from tags
copy my FindContextName(allTagNames) to theContextName

-- Create a new task in OmniFocus
tell application "OmniFocus"

tell default document

-- Set (or create new) task context
if context theContextName exists then
set theContext to context theContextName
else
set theContext to make new context with properties {name:theContextName}
end if

-- Set (or create new) project
if project theProjectName exists then
set theProject to project theProjectName
else
set theProject to make new project with properties {name:theProjectName}
end if

-- Create new task
tell theProject
set newTask to make new task with properties {name:theTitle, note:theNote, containing project:theProject, context:theContext}
end tell

end tell -- document
end tell -- OF application
end repeat -- Main loop
end tell -- Things application


--------------------------------------------------
--------------------------------------------------
-- Get context from array of Things tags
--------------------------------------------------
--------------------------------------------------
on FindContextName(tagNames)
-- Example usage
--FindContextName("@Mac", "1/2hr", "High") -- FYI, my tags are context, duration and priority

repeat with aTagName in tagNames
if aTagName starts with "@" then
return aTagName
end if
end repeat
return ""

end FindContextName -- End FindContextName


--------------------------------------------------
--------------------------------------------------
-- Remove the CRs from a string,
-- not used in this script,
-- carry over from prior implementation
--------------------------------------------------
--------------------------------------------------
on ReplaceText(find, replace, subject)
-- Example usage
-- ReplaceText("Windows", "the Mac OS", "I love Windows and I will always love Windows and I have always loved Windows.")

set prevTIDs to text item delimiters of AppleScript
set text item delimiters of AppleScript to find
set subject to text items of subject

set text item delimiters of AppleScript to replace
set subject to "" & subject
set text item delimiters of AppleScript to prevTIDs

return subject

end ReplaceText -- End replaceText()
[/CODE]

darrenburgess 2010-01-01 04:34 AM

Where do the actions go once the get into OF? Inbox?

Does it import the projects as well?

Darren

A to the B 2010-01-01 09:44 AM

[QUOTE=darrenburgess;71155]Where do the actions go once the get into OF? Inbox?

Does it import the projects as well?

Darren[/QUOTE]

Projects are imported. Nonproject actions go to the inbox.

robclaisse 2010-01-14 10:05 PM

Thanks A to the B for the script. I've made a small change so that Areas get import and changed into normal projects rather than all areas getting put into a single project.

[CODE]
--------------------------------------------------
--------------------------------------------------
-- Import tasks from Things to OmniFocus
--------------------------------------------------
--------------------------------------------------
tell application "Things"

-- Loop through ToDos in Things
repeat with aToDo in to dos of list "Next"

-- Get title and notes of Things task
set theTitle to name of aToDo
set theNote to notes of aToDo

-- Get project name
if (project of aToDo) is not missing value then
set theProjectName to (name of project of aToDo)
else if (area of aToDo) is not missing value then
set theProjectName to (name of area of aToDo)
else
set theProjectName to "NoProjInThings"
end if

-- Get Contexts from tags
-- get all tags from one ToDo item...
set allTagNames to {}
copy (name of tags of aToDo) to allTagNames
-- ...and from the project...
if (project of aToDo) is not missing value then
copy (name of tags of project of aToDo) to the end of allTagNames
end if
-- ...now extract contexts from tags
copy my FindContextName(allTagNames) to theContextName

-- Create a new task in OmniFocus
tell application "OmniFocus"

tell default document

-- Set (or create new) task context
if context theContextName exists then
set theContext to context theContextName
else
set theContext to make new context with properties {name:theContextName}
end if

-- Set (or create new) project
if project theProjectName exists then
set theProject to project theProjectName
else
set theProject to make new project with properties {name:theProjectName}
end if

-- Create new task
tell theProject
set newTask to make new task with properties {name:theTitle, note:theNote, containing project:theProject, context:theContext}
end tell

end tell -- document
end tell -- OF application
end repeat -- Main loop
end tell -- Things application


--------------------------------------------------
--------------------------------------------------
-- Get context from array of Things tags
--------------------------------------------------
--------------------------------------------------
on FindContextName(tagNames)
-- Example usage
--FindContextName("@Mac", "1/2hr", "High") -- FYI, my tags are context, duration and priority

repeat with aTagName in tagNames
if aTagName starts with "@" then
return aTagName
end if
end repeat
return ""

end FindContextName -- End FindContextName


--------------------------------------------------
--------------------------------------------------
-- Remove the CRs from a string,
-- not used in this script,
-- carry over from prior implementation
--------------------------------------------------
--------------------------------------------------
on ReplaceText(find, replace, subject)
-- Example usage
-- ReplaceText("Windows", "the Mac OS", "I love Windows and I will always love Windows and I have always loved Windows.")

set prevTIDs to text item delimiters of AppleScript
set text item delimiters of AppleScript to find
set subject to text items of subject

set text item delimiters of AppleScript to replace
set subject to "" & subject
set text item delimiters of AppleScript to prevTIDs

return subject

end ReplaceText -- End replaceText()

[/CODE]

kimomni 2010-02-03 11:11 AM

Help using scripts
 
I am ready to come back to Omni Focus from Things.

Please tell me how to use this script.
I don't have a clue.

Thank you in advance for any instructions you can provide.

Kim

A to the B 2010-02-03 01:52 PM

Script Usage
 
Sure!

1 - Back up your things database and back up your OF database
2 - Open both applications
3 - In OF revert back to the default database (so you can see exactly what my script imports)
4 - Run the script and see what happens (there are some great tutorals on the web for learning how to run and edit an apple script if you need help in that area)

My script imports your projects across. It moves tasks inside of areas without projects, to an OF project named after the Area (thanks Kimomni). It does not put the projects inside an area folder (this would be nice). It looks for tags with an @ in front like @Home and @Mac and assigns a context in OF. In all it should do most of the work for you.

Once you have a good feel from steps 1-4 above restore your old OF database and run the script again to add your Things data to any existing OF data you have.

Hope this helps. Let me know how it goes.
Ab

whpalmer4 2010-02-07 03:32 PM

[QUOTE=whpalmer4;71000]
The underlying problem seems to be that the importer is broken -- I'm not able to get it to understand start/due dates or durations. I've filed a report.
[/QUOTE]

It turns out that if you set the column type in OmniOutliner to date, the dates will be successfully imported, otherwise they will be inserted into the notes field as metadata. Why that is necessary when OmniFocus has been told that a certain column is a date, I can't say. I retract my previous claim that the importer is broken with respect to dates, and wish to substitute an assertion that someone needs to either document this shortcoming or remove it :) Durations, however, are still broken. Either nothing comes across (for example, if you have a fractional hour), or the units are wrong (1h in the OO doc becomes 1m in the OF doc).

This has very little to do with the Things->OF importer script as it currently stands, but is provided for completeness if someone finds this thread while searching for information on importing into OF...

RobTrew 2010-02-07 11:21 PM

It might be worth taking a look at this post:

[URL="http://forums.omnigroup.com/showthread.php?t=7453"]http://forums.omnigroup.com/showthread.php?t=7453[/URL]

castromann 2010-03-30 11:43 PM

Missing Dates and Contexts
 
Hello everybody!

I tried to use the applescripts in this thread to migrate all my projects and task from things to OF. The script works as expected except from 2 things:

- dates are not taken over
- tags are not taken over

what could i be doing wrong? do all the tags have to have @ in front for the script to work? can i change the script so it can work with tags without @s. I do have more than 60 different tags and don´t want to change every tasks tags manually (which would be hundreds of changes)???

all of my tasks and projects do have due dates but the corresponding fileds in OF stay empty after running the script? Is there any setting i have to change in the script?

thanks for your answers and the scripts in advance.

mfessler 2010-05-07 06:44 AM

updated script — preserves dates
 
Hi — thanks to "A to the B" for his Things —> Omnifocus script.

I tweaked it a little bit to preserve creation date, start date, and due date.
Hope this is helpful!

This is the second migration for my 200+ item todo list in the past month!

I finally gave up on The Hit List due to lack of responsiveness from the developer + major duplication bugs syncing with iCal.

I tweaked someone else's script to move everything into Things, which I had bought around version 1.0 but found inflexible and easy to lose things in. My old impression was confirmed once again (though I liked the iPhone app), so I decided to try OmniFocus. We'll see (9 days left on trial) but looking good so far.

Anyhow, here are the script additions. Perhaps someone else can do whatever tag support is needed? I didn't really use them for the short time I was using Things.

Good luck!

[CODE]

--------------------------------------------------
--------------------------------------------------
-- Import tasks from Things to OmniFocus
--------------------------------------------------
--------------------------------------------------

-- Added: creation date, due date, start date functionality

tell application "Things"

-- Loop through ToDos in Things
repeat with aToDo in to dos of list "Next"

-- Get title and notes of Things task
set theTitle to name of aToDo
set theNote to notes of aToDo
set theCreationDate to creation date of aToDo
set theDueDate to due date of aToDo
set theStartDate to activation date of aToDo

-- get dates
if (creation date of aToDo) is not missing value then
set theCreationDate to creation date of aToDo
else
set theCreationDate to today
end if

if (due date of aToDo) is not missing value then
set theDueDate to due date of aToDo
end if

if (activation date of aToDo) is not missing value then
set theStartDate to activation date of aToDo
end if

-- Get project name
if (project of aToDo) is not missing value then
if (area of aToDo) is not missing value then
set theProjectName to (name of project of aToDo)
end if

else if (area of aToDo) is not missing value then
set theProjectName to (name of area of aToDo)
else
set theProjectName to "NoProjInThings"
end if

-- Get Contexts from tags
-- get all tags from one ToDo item...
set allTagNames to {}
copy (name of tags of aToDo) to allTagNames
-- ...and from the project...
if (project of aToDo) is not missing value then
copy (name of tags of project of aToDo) to the end of allTagNames
end if
-- ...now extract contexts from tags
copy my FindContextName(allTagNames) to theContextName

-- Create a new task in OmniFocus
tell application "OmniFocus"

tell default document

-- Set (or create new) task context
if context theContextName exists then
set theContext to context theContextName
else
set theContext to make new context with properties {name:theContextName}
end if

-- Set (or create new) project
if project theProjectName exists then
set theProject to project theProjectName
else
set theProject to make new project with properties {name:theProjectName}
end if

-- Create new task
tell theProject
set newTask to make new task with properties {name:theTitle, note:theNote, containing project:theProject, context:theContext, creation date:theCreationDate}

if (theStartDate is not missing value) then set the start date of newTask to theStartDate

if (theDueDate is not missing value) then set the due date of newTask to theDueDate


end tell

end tell -- document
end tell -- OF application
end repeat -- Main loop
end tell -- Things application


--------------------------------------------------
--------------------------------------------------
-- Get context from array of Things tags
--------------------------------------------------
--------------------------------------------------
on FindContextName(tagNames)
-- Example usage
--FindContextName("@Mac", "1/2hr", "High") -- FYI, my tags are context, duration and priority

repeat with aTagName in tagNames
if aTagName starts with "@" then
return aTagName
end if
end repeat
return ""

end FindContextName -- End FindContextName


--------------------------------------------------
--------------------------------------------------
-- Remove the CRs from a string,
-- not used in this script,
-- carry over from prior implementation
--------------------------------------------------
--------------------------------------------------
on ReplaceText(find, replace, subject)
-- Example usage
-- ReplaceText("Windows", "the Mac OS", "I love Windows and I will always love Windows and I have always loved Windows.")

set prevTIDs to text item delimiters of AppleScript
set text item delimiters of AppleScript to find
set subject to text items of subject

set text item delimiters of AppleScript to replace
set subject to "" & subject
set text item delimiters of AppleScript to prevTIDs

return subject

end ReplaceText -- End replaceText()


[/CODE]

rllewis@mac.com 2010-10-07 03:58 PM

how to export/import logbook info?
 
Hi guys. The script worked like a charm for me...except it didn't transfer the Things "logbook". How do I get all that info into Omnifocus? Thanks.

Forumposter 2010-12-03 05:12 AM

Thanks for the script (right above this post) but it's not working properly.
It won't differentiate between Projects. Everything is imported to the Project "NoProjInThings".
Ok - it's not too bad because I was going to sort it again. But the problem is - that the import stopped after approx. 15 minutes with the following error message:
[quote]error "„OmniFocus“ hat einen Fehler erhalten: missing value kann nicht in Typ rich text umgewandelt werden." number -1700 from missing value to rich text[/quote]

In English: OmniFocus received an error: missing value can't be transformed into the type rich text.

And it stopped :o(

RobTrew 2010-12-11 08:50 AM

FWIW a first draft of [URL="http://bit.ly/THINGS2OF"]a script[/URL] which takes another approach:
[LIST][*]Projects and single actions are imported from THINGS to a date-stamped folder in OmniFocus.[*]The Things tag tree is imported as an OmniFocus context tree,[*]Things delegations are assigned as OmniFocus (people) contexts,[*]Things duration tags (sub-tags of "⨀", of the form [N]m or [N]h) are converted to OmniFocus durations,[*]and other THINGS tags are prefixed by @ and added to names of Projects/Actions in the style of Taskpaper.[*]Items tagged with "High" in Things are flagged in OmniFocus.[/LIST]
[COLOR="White"]--[/COLOR]

auzigog 2011-06-07 01:06 PM

[QUOTE=RobTrew;90294]FWIW a first draft of a script which takes another approach:
[/QUOTE]

I tried this script. Where should I send bug reports? Most the bugs I encountered were in handling special characters that the terminal didn't like (or maybe those problems were just bugs in the output log on the terminal??)

RobTrew 2011-06-07 10:59 PM

Thanks for testing it.
I understand that another user has taken this script up and improved it, and that its descendant may appear on github soon (I'm afraid I never really had much Things data to test it with :-)

shadok 2011-10-16 04:16 AM

Problem with link
 
[QUOTE=RobTrew;90294]FWIW a first draft of a script which takes another approach
[/QUOTE]

I tried to look and see that today, but the link doesn't seem to work. Do you have another link please ?

Thanks

(This is the message i get :

"Looking for something on MobileMe?
We can't find the page you requested. Please make sure the URL is spelled and capitalized correctly, and try again.
MobileMe Login | MobileMe Support | Learn more... ")

RobTrew 2011-10-16 02:36 PM

It's not actively maintained, but FWIW [URL="http://bit.ly/Things2OF"]this link[/URL] should, I think take you to it.

shadok 2011-10-16 02:42 PM

Didn't work
 
Thanks for your answer. Unfortunately it didn't work. After several hours the script just stopped because of some error. I am afraid i am stuck with "Things"...

RobTrew 2011-10-16 08:05 PM

[QUOTE=shadok;102914]Thanks for your answer. Unfortunately it didn't work. After several hours the script just stopped because of some error. I am afraid i am stuck with "Things"...[/QUOTE]

That sounds disappointing - I haven't looked at the script for a long time myself - somebody did briefly offer to take it on, but their life became too busy.

I'll take it off-line.

cinayakoshka 2011-10-22 07:23 AM

I just now used the most recent version of this script in this thread, and it worked all right. I don't think it got everything out of Someday/Maybe, but the rest looked pretty good - better than copying everything over by hand, anyway.

To run the applescript, just open the Applescript editor, paste the script into it, save the file, and hit Run, with both applications open. WFM.


All times are GMT -8. The time now is 09:00 PM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.