Question

I am currently using this ( http://lifehacker.com/193778/download-of-the-day--auto+applescript-tickler-file ) for a tickler file system and have it setup in my Dropbox (so it works across systems). There are just a couple of things from making it perfect. If anyone can help me out that would be superb.

What I'm after is a script or workflow that will take the folders contents for the previous day (they change each day and are numbered) and move them to the current day. So then I can set it in as an alarm to perform in the morning every day.

Thanks very much.

Was it helpful?

Solution

If I understand your requirements correctly, then this script should do what you want. Make sure to change the username on the first line to your username.

set username to "lizzan"

set cy to (year of (current date)) as integer
set cm to (month of (current date)) as integer
set cd to (day of (current date)) as integer

set yd to yesterday(cy, cm, cd)

set yy to item 1 of yd
set ym to item 2 of yd
set yd to item 3 of yd


set yFolder to "Macintosh HD:Users:" & username & ":Documents:To Do:" & yy & ":" & ym & ":" & yd
set cFolder to "Macintosh HD:Users:" & username & ":Documents:To Do:" & cy & ":" & cm & ":" & cd

tell application "Finder"
    move every file of folder yFolder to cFolder
end tell

on yesterday(y, m, d)
    set d to d - 1

    if d ≤ 0 then
        set m to m - 1
        if m ≤ 0 then
            set y to y - 1
            set m to 12
        end if
        set thirtyones to {1, 3, 5, 7, 8, 10, 12}
        set thirties to {4, 6, 9, 11}
        if m is in thirtyones then
            set d to 31
        else if m is in thirties then
            set d to 30
        else if leapyear(y) then
            set d to 29
        else
            set d to 28
        end if

    end if

    set yd to {y, m, d}
    return yd

end yesterday

on leapyear(y)
    if y mod 4 is 0 then
        if y mod 100 is 0 then
            if y mod 400 is 0 then
                return true
            end if
            return false
        end if
        return true
    end if

    return false

end leapyear

Caveat: The script will fail (and have moved possibly only some of your files) if there is already a file with the same name in the folder it is moving to. If you want to replace the files in that case, and avoid failing, add with replacing at the end of line 18 (move every ... to cFolder with replacing).

Edit to add: Oh, just saw that you had it set up in your Dropbox instead of in the Documents folder. Just change the paths on lines 14 and 15 to reflect the path you're using, and it should be fine.

OTHER TIPS

A very simple solution is an Automator Application (workflow that runs independently). Took about 15 seconds (literally) to set this workflow up: alt text

Licensed under: CC-BY-SA with attribution
Not affiliated with apple.stackexchange
scroll top