X-Git-Url: https://wagner.pp.ru/gitweb/?a=blobdiff_plain;ds=sidebyside;f=ljdump.py;h=591a8386c696fc7c4b5748fbdaf502e0357b2727;hb=331938fd77940c746fbbef6adbcb18bb2cbe4a47;hp=7ec77f2689b3781d239d81c681d53a94f36374fe;hpb=f780b9810d06ddd539df4e91b3a4a8a8a2a0784c;p=oss%2Fljdump.git diff --git a/ljdump.py b/ljdump.py index 7ec77f2..591a838 100755 --- a/ljdump.py +++ b/ljdump.py @@ -2,7 +2,7 @@ # # ljdump.py - livejournal archiver # Greg Hewgill http://hewgill.com -# Version 1.5 +# Version 1.5.1 # # LICENSE # @@ -22,9 +22,9 @@ # misrepresented as being the original software. # 3. This notice may not be removed or altered from any source distribution. # -# Copyright (c) 2005-2009 Greg Hewgill +# Copyright (c) 2005-2010 Greg Hewgill and contributors -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, { @@ -237,8 +244,9 @@ def ljdump(Server, Username, Password, Journal): try: r = urllib2.urlopen(urllib2.Request(Server+"/export_comments.bml?get=comment_meta&startid=%d%s" % (maxid+1, authas), headers = {'Cookie': "ljsession="+ljsession})) meta = xml.dom.minidom.parse(r) - except: + except Exception, x: print "*** Error fetching comment meta, possibly not community maintainer?" + print "***", x break finally: try: @@ -273,8 +281,9 @@ def ljdump(Server, Username, Password, Journal): try: r = urllib2.urlopen(urllib2.Request(Server+"/export_comments.bml?get=comment_body&startid=%d%s" % (maxid+1, authas), headers = {'Cookie': "ljsession="+ljsession})) meta = xml.dom.minidom.parse(r) - except: + except Exception, x: print "*** Error fetching comment body, possibly not community maintainer?" + print "***", x break finally: r.close()