# HG changeset patch # User k0s # Date 1257986367 18000 # Node ID 0e7f56709c90728b5033eef74dd0b64158c3ce4b # Parent 8b9aa9f40fa525b00c1859f79b82de0d573a8f89 cleanup of blogme, not yet finished diff -r 8b9aa9f40fa5 -r 0e7f56709c90 bitsyblog/blogme.py --- a/bitsyblog/blogme.py Wed Nov 11 19:25:21 2009 -0500 +++ b/bitsyblog/blogme.py Wed Nov 11 19:39:27 2009 -0500 @@ -1,5 +1,9 @@ #!/usr/bin/env python +""" +command line blogger +""" + import optparse import os import subprocess @@ -7,8 +11,10 @@ import tempfile import urllib2 +from ConfigParser import ConfigParser + # global variable -dotfile='.blogme' +CONFIG = '.blogme' def tmpbuffer(editor=None): """open an editor and retreive the resulting editted buffer""" @@ -24,14 +30,14 @@ def main(args=sys.argv[1:]): - # create the option parser + # parse command line options parser = optparse.OptionParser() - parser.add_option('-s', '--server') + parser.add_option('-c', '--config') + parser.add_option('-H', '--host') parser.add_option('-u', '--user') parser.add_option('-p', '--password') parser.add_option('--private', action='store_true', default=False) parser.add_option('--secret', action='store_true', default=False) - options, args = parser.parse_args() # sanity check @@ -39,18 +45,13 @@ print "post can't be secret and private!" sys.exit(1) - # parse dotfile - home = os.environ.get('HOME') - if home: - dotfile = os.path.join(home, dotfile) - if os.path.exists(dotfile): - prefs = file(dotfile).read().split('\n') - prefs = [ i for i in prefs if i.strip() ] - prefs = [ [ j.strip() for j in i.split(':', 1) ] for i in prefs - if ':' in i] # probably not necessary - prefs = dict(prefs) - else: - prefs = {} + # parse dotfile config + config = ConfigParser() + if not options.config: + home = os.environ['HOME'] + options.config = os.path.join(home, CONFIG) + if os.path.exists(options.config): + config.read(options.config) # determine user name and password fields = [ 'user', 'password' ] @@ -68,12 +69,12 @@ assert password is not None # write the dotfile if it doesn't exist - if not os.path.exists(dotfile): - preffile = file(dotfile, 'w') - print >> preffile, 'user: %s' % user - print >> preffile, 'password: %s' % password - preffile.close() - os.chmod(dotfile, 0600) +# if not os.path.exists(dotfile): +# preffile = file(dotfile, 'w') +# print >> preffile, 'user: %s' % user +# print >> preffile, 'password: %s' % password +# preffile.close() +# os.chmod(dotfile, 0600) # get the blog @@ -83,7 +84,7 @@ msg = tmpbuffer() # open the url - url = '/'.join((options.server, user)) + url = options.host url += '?auth=digest' # specify authentication method if options.private: url += '&privacy=private' @@ -93,12 +94,11 @@ authhandler.add_password('bitsyblog', url, user, password) opener = urllib2.build_opener(authhandler) urllib2.install_opener(opener) - try: url = urllib2.urlopen(url, data=msg) print url.url # print the blog post's url - except urllib2.HTTPError: - pass + except urllib2.HTTPError, e: + print e if __name__ == '__main__': main() diff -r 8b9aa9f40fa5 -r 0e7f56709c90 setup.py --- a/setup.py Wed Nov 11 19:25:21 2009 -0500 +++ b/setup.py Wed Nov 11 19:39:27 2009 -0500 @@ -43,6 +43,9 @@ ], entry_points=""" # -*- Entry points: -*- + [console_scripts] + blog = bitsyblog.blogme:main + [paste.app_factory] main = bitsyblog.factory:factory """,