The first thing I looked for after signing up for SmugMug was a WHS Add-In since there is one for Flikr. Lo and behold, there isn’t one.
So last night I started writing an application architecture post when it occurred to me that the best way of explaining it was to write a program from scratch.
Enter the SmugMug Add-In idea. So I’ll be doing that in a short series of posts.
First things first, I haven’t decided whether to use Visual Studio 2005 or Express 2008.
Second, the WHS SDK is already in your servers’ Program Files\Windows Home Server folder, so don’t bother looking online for it. You’ll need these two files added as references in Visual Studio ( or Express):
Third, the Smugmug API can be downloaded from SmugMug.com. And it looks to be rather straight forward to write code against it (Note – I always say that looking at an API for the first time, then regret it later). And you’ll need an API key from SmugMug. And you’ll need to add the API in as a reference in Visual Studio or Express.
For a quick look at it, Evan Leventhal’s .NET wrapper SmugMug.NET, is a good start.
Fourth there the way the program will work is pretty straight forward :
- The folder name can be the name of the gallery OR an XML file in the folder will identify which gallery it corresponds to (that is the SmugMug Gallery ID) ala SyncToy.
- Since I keep far more photos than I post in \\Server\Photos, it would be a good idea to create a separate folder containing all the gallery folders for syncing.
- As far as checking the folders themselves, the .Net 2.0 has a FileWatcher object ( or something to that effect).
- A settings tab will have a list of folders in the gallery folder that will be synced by default unless you uncheck it.
- As far as a console tab goes, I have no idea – stats, gallery browser, etc.
- And scheduling of some sort, could do somthing ala SyncToy (and no, I’m not french).
I’m writing this primarily for myself as I’m fed up with having to Remote in and use the Send To SmugMug shell app but it will be packaged neatly and on Codeplex once its finished, I imagine.