August 3rd, 2007

pc/mac

OS X migration tool in progress; check back later

Today's project will be a journal migration tool for Macintosh/OS X users. It'll once again be a command-line thing for rapid development purposes, though I might re-write in Cocoa/Objective C once I've solved the problem once and have some breathing room. (Or I might finally have an excuse to play with PyObjC. Staged rewrite might be fun.)

Spec, in brief:
- Run tool.
- Tool will ask questions about your LJ account and your destination. (cache in config file for second runs)
- Chug. LJ data will be archived locally.
- Chug. LJ data will be mirrored on second site.

Will need testers once I have something to test. I will update when I'm ready. ETA: Look over here! Ready!

I have a number of additional thoughts, about the likelihood of this exact pattern playing out with whatever US-based host fandom decides to descend upon like all-consuming locusts, and some other issues, but I'll save it. synecdochic summarizes the problem.

ETA: I now have a rewrite of ljdump that is saner in several important ways. It saves entries, comments, and userpics. Migration phase next.
ETA: I just successfully migrated all of the posts in my test LJ account to my test IJ account. Now I see how much of the meta-data I can migrate. This problem was fairly straightforward.
ETA: Userpics are not exposed in the LJ api. So, the only task remaining is sync-ing; that is, if an action is an update for an LJ post, we need to update the destination account instead of posting a new entry. But the core use case (run once; repost everything) is working.
ETA: Update case working. Tool ready for early testing.
research

Journal migration tool

I've written a command-line tool for migrating journal entries from any LJ-style server to any other LJ-style server. This tool needs testers. It should run on any system with a recent Python installed. That means OS X out of the box, most Linux distros, and any Windows system where the user has installed python.

Get it
Github: ljmigrate
Tarball: ljmigrate.tar.gz
Zipfile: ljmigrate.zip
Latest version: 1.5 090110a Sat Jan 10 23:51:35 PST 2009
Documentation: README, README for Windows

Features
- Archives entries, comments, and user pics locally.
- Can optionally generate simple html versions of entries with comments and a userpic.
- Can optionally migrate from one LJ-style server to another. E.g., from LiveJournal to InsaneJournal. Post metadata (user pic keywords, mood icon, tags, music, location) is preserved when the destination supports them. Privacy info is preserved: if a post is private or flocked in the source, it will be private or flocked at the destination. Custom filters aren't moved, though.
- Can optionally migrate only posts with particular tags, if you want to move only a portion of a journal to a new service.
- Archives communities. Can also migrate them. Community comments are also archived. See README.
- Cannot migrate comments or memories. These limitations are LJ limitations.

Tutorials
karma_apple's illustrated tutorial for Windows users
alter_writes's illustrated tutorial for Mac users
lumnata's detailed instructions

Instructions for Terminal-comfy Mac users:
Download the tarball: ljmigrate.tar.gz
Safari will warn you that it might contain an application. (Oh noes!) Firefox/Camino won't.
Unpack it. (Double-clicking works.)
Run the Terminal.
Change directories to wherever it was you unpacked the file. E.g., cd ~/Desktop/ljmigrate
Read the README.
Edit the config file ljmigrate.cfg to mention your accounts.
Run the tool in the Terminal: ./ljmigrate.py
Watch. Wait. Report results to me in a comment here.
To use a new version of the tool, just move or copy your account folder into the folder for the newer version.
./ljmigrate.py --help provides usage info.

Instructions for Terminal newbies are in the README.

Thanks to: ldybastet & kannnichtfranz for early testing & bug-reporting.

Known bugs:
1) Migration will fail for posts that use LJ features you don't have permission to use on the destination. For instance, polls: if your LJ post has a poll but you haven't paid for polls on IJ, it'll fail.

Call for Windows help
I'd like to write up detailed instructions for non-technical Windows users who'd like to use this (say, to migrate communities). Could one of you give me a hand with this task? Thanks!
  • Current Music
    Polar Bear : Ride : Nowhere
  • Tags
    , ,