bleatId = bleatId.decode("utf8").strip() if not bleatId: continue if not bleatId in bleats: print "User {0} has unknown bleat: {1}".format(username, bleatId) continue if bleats[bleatId]["username"] != username: print "Bleat {0} has inconsistent username: {1} != {2}".format(bleatId, bleats[bleatId]["username"], username) bleats[bleatId]["user"] = user.id del bleats[bleatId]["username"] # Now all users have been created, the listens can be added for user in users.values(): if getattr(user, "listeningTo", ""): user.listeningTo = map(lambda username: users[username].id, user.listeningTo.split()) user.save() # Import all the bleats in chronological order for bleatId in sorted(bleats.keys(), key = lambda bleat: bleats[bleat]["timestamp"]): if not "user" in bleats[bleatId]: print "Bleat {0} is orphaned".format(bleatId) continue if "inReplyTo" in bleats[bleatId]: bleats[bleatId]["inReplyTo"] = bleats[bleats[bleatId]["inReplyTo"]].id bleats[bleatId] = Bleat.create(bleats[bleatId])