#!/usr/bin/python
#
# This script is provided AS IS, without any warranty!
# Copyright lio@lunesu.com, placed in the public domain
# Updated by Cojocar Lucian <cojocar .aT. gmail .d0t. com>
# Works with mediawiki-1.9.3 (at least).
import os
import _mysql
sql = "SELECT rev_id, page_id, page_title, old_text \
FROM mw_revision \
INNER JOIN mw_page ON rev_page = page_id \
INNER JOIN mw_text ON rev_id = old_id \
WHERE rev_id = ( ( \
	 \
	SELECT max( rev_id ) \
	FROM mw_revision \
	WHERE rev_page = page_id ) \
	)\
AND ( \
		page_namespace < 3 \
		) AND ( \
				page_is_redirect = 0 \
				);"
db = _mysql.connect("localhost","wikiuser","insert_password","wikidb")
db.query(sql)
rs = db.use_result()
while 1:
    row = rs.fetch_row()
    if row == ():
        break
    filename = row[0][2]
    wiki = row[0][3]
    # convert mediawiki to tracwiki
    wiki = wiki.replace("\n***","\n   *")
    wiki = wiki.replace("\n**", "\n  *")
    wiki = wiki.replace("\n*",  "\n *")
    wiki = wiki.replace("[[","wiki:")
    wiki = wiki.replace("]]","")
    wiki = wiki.replace("<br>","[[BR]]")
    wiki = wiki.replace("\n:","\n ")
    # todo: change titles?
    # fixme: could use piping to import (no temp files)
    #os.system("trac-admin /tracroot/iv wiki remote" & filename)
    # write to file
    f = open( filename, "w")
    f.write( wiki )
    f.close
# import all wiki pages, manually!
# os.system("trac-admin /var/trac/cspay wiki load .")
# todo: remove files
db.close()
