coffee

antennapedia

Antennapedia

Books, swords, and tweed.

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 Mood: cynical
  • Current Music: Polar Bear : Ride : Nowhere
Tags: , ,
Trial and Error: The Remix
Let's try that again. Here is the error message I got:

Fetching journal entries for: daiseechain
Created subdirectory: daiseechain
Traceback (most recent call last):
File "./ljmigrate.py", line 833, in ?
main(retryMigrate)
File "./ljmigrate.py", line 497, in main
gSourceAccount.makeSession()
File "./ljmigrate.py", line 97, in makeSession
response = self.handleFlatResponse(r)
File "./ljmigrate.py", line 107, in handleFlatResponse
while True:
NameError: global name 'True' is not defined


Hopefully there will be actual line breaks this time...
Re: Trial and Error: The Remix
I know exactly what this problem is: you're running an older version of Python. Which means you're on a very dusty version of OS X as well. You can run "python -V" in the shell and find out exactly which version. (It's before 2.3, I know that. I've tested my tool with 2.3, 2.4, and 2.5.)

I'll see what I can do about making the tool compatible with older Pythons. *think*
Re: Trial and Error: The Remix
Ah. And yes, you're right. I am running a version covered in cobwebs. Unfortunately my old machine won't support anything much newer, and I can't afford to invest in a new one.

Um... V2.2. Darn.

You are viewing antennapedia