X-Git-Url: https://wagner.pp.ru/gitweb/?a=blobdiff_plain;f=ljdump.py;h=f6820afa84c88fd6bc483e789b07bbe5175630c3;hb=d45d3ae7e90b1e0f3f2d2f93fde04b0312027058;hp=b48b404fdc40bf25b31cfb3ff26fe527382d9fa5;hpb=99bf8bc6a8efd8f54f68db57c4ca2c73d30b9886;p=oss%2Fljdump.git diff --git a/ljdump.py b/ljdump.py index b48b404..f6820af 100755 --- a/ljdump.py +++ b/ljdump.py @@ -2,7 +2,7 @@ # # ljdump.py - livejournal archiver # Greg Hewgill http://hewgill.com -# Version 1.3.3 +# Version 1.5 # # LICENSE # @@ -24,7 +24,7 @@ # # Copyright (c) 2005-2009 Greg Hewgill -import codecs, md5, os, pickle, pprint, re, shutil, sys, urllib2, xml.dom.minidom, xmlrpclib +import codecs, os, pickle, pprint, re, shutil, sys, urllib2, xml.dom.minidom, xmlrpclib from xml.sax import saxutils MimeExtensions = { @@ -33,8 +33,14 @@ MimeExtensions = { "image/png": ".png", } +try: + from hashlib import md5 +except ImportError: + import md5 as _md5 + md5 = _md5.new + def calcchallenge(challenge, password): - return md5.new(challenge+md5.new(password).hexdigest()).hexdigest() + return md5(challenge+md5(password).hexdigest()).hexdigest() def flatresponse(response): r = {} @@ -157,7 +163,8 @@ def ljdump(Server, Username, Password, Journal): 'getpickwurls': 1, }, Password)) userpics = dict(zip(map(str, r['pickws']), r['pickwurls'])) - userpics['*'] = r['defaultpicurl'] + if r['defaultpicurl']: + userpics['*'] = r['defaultpicurl'] while True: r = server.LJ.XMLRPC.syncitems(dochallenge(server, { @@ -241,7 +248,10 @@ def ljdump(Server, Username, Password, Journal): print "*** Error fetching comment meta, possibly not community maintainer?" break finally: - r.close() + try: + r.close() + except AttributeError: # r is sometimes a dict for unknown reasons + pass for c in meta.getElementsByTagName("comment"): id = int(c.getAttribute("id")) metacache[id] = { @@ -376,3 +386,4 @@ if __name__ == "__main__": ljdump(server, username, password, journal) else: ljdump(server, username, password, username) +# vim:ts=4 et: