Skip to content

Instantly share code, notes, and snippets.

@stiletto
Created April 5, 2014 17:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save stiletto/9995350 to your computer and use it in GitHub Desktop.
Save stiletto/9995350 to your computer and use it in GitHub Desktop.
#!/usr/bin/env python2
import json, urllib, argparse, datetime, sys
def convertdate(date):
return datetime.datetime.utcfromtimestamp(date).strftime('%d.%m.%Y %H:%M:%S')
def main():
import argparse
parser = argparse.ArgumentParser(description='Download BnW user blog.')
parser.add_argument('user', metavar='USER', nargs=1,
help='user name (without @)')
args = parser.parse_args()
before = ''
pages = []
while True:
url = 'http://bnw.im/api/show?user=%s%s' % (args.user[0], before)
result = json.load(urllib.urlopen(url))
if result['ok']:
messages = result['messages']
if len(messages)==0:
break
pages.append(messages)
before = '&before=' + messages[0]['id']
print >>sys.stderr, 'Retreiving messages before', convertdate(messages[0]['date'])
else:
print result
break
print >>sys.stderr, 'Retreived %d pages. Preparing to print.' % len(pages)
pages.reverse()
for page in pages:
for msg in page:
msg['tags'] = ', '.join(msg['tags'])
msg['clubs'] = ', '.join(msg['clubs'])
msg['date'] = convertdate(msg['date'])
out = '''+++ [%(date)s] %(user)s:
Clubs: %(clubs)s
Tags: %(tags)s
%(text)s
--- %(id)s (0) http://bnw.im/p/%(id)s''' % msg
print out.encode('utf-8', 'replace')
if __name__=="__main__":
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment