#!/usr/bin/python

import sys
import gdbm
import posix
import string

from Config import *
import Utils
import Users
import Actions

def getline():
	return string.strip(sys.stdin.readline())

print 'Please enter the output directory to use: ',
outputdir = getline()

Utils.set_static_mode(1)

def redirect_output(filename, thunk):
	oldout = sys.stdout
	sys.stdout = open(filename, 'w')
	thunk()
	sys.stdout.close()
	sys.stdout = oldout

for page in Utils.db.keys():
	if Utils.dbpageexists(page):	# check for 'users' pseudopage
		print page, '...';
		redirect_output(outputdir + '/' + page + '.html', lambda: Actions.readpage(page))
		redirect_output(outputdir + '/' + page + '_backlinks.html', \
			lambda: Actions.backlinks(page))

		for (name,att) in Utils.dbget(page, 'attachments', {}).items():
			fname = outputdir + '/' + page + '_getattach_' + name + \
				Utils.mimetype_extension(att.mimetype)
			redirect_output(fname, lambda: sys.stdout.write(att.get_content()))
