save_style() and get_theme() don't access any instance variables.
Add retries and better error handling.
This fixes the problem that back-dated posts were not saved by the incremental backup mode. When a post is back-dated, its ID is higher than the currently most recent post (IDs always increase), but it is not the first one in the XML (the XML is ordered by descending time). Sorting the posts by ID descending solves this.
This gets rid of self.avatar.
This gets rid of a number of "if options.blosxom"s all over the place. Polymorphism is a good thing!
-x on the same command line has the same effect.
This means to replace getopt with the more modern (but already deprecated) optparse. The reason why I don't use the current argparse is that it was only added to Python's standard library in release 2.7. Anyway, optparse is relatively close to argparse API-wise, so most of the work can be reused.
By reading the existing files in posts/ and using their mtime, the index can be rebuilt after each backup operation. This means that archive/current.html goes away.
The archive pages show the link to the single post page; The single post page shows the link to the original Tumblr post. This allows to use the same HTML source for archive and post pages, which will become important in the next commit.