| 1 | #!/usr/bin/python |
|---|
| 2 | # |
|---|
| 3 | # This script is provided AS IS, without any warranty! |
|---|
| 4 | # Copyright lio@lunesu.com, placed in the public domain |
|---|
| 5 | # |
|---|
| 6 | import os |
|---|
| 7 | import _mysql |
|---|
| 8 | # open the mediawiki sql db |
|---|
| 9 | db = _mysql.connect("localhost","wikiuser","twin","wikidb") |
|---|
| 10 | db.query("SELECT cur_title,cur_text from cur where cur_namespace < 3;") |
|---|
| 11 | rs = db.use_result() |
|---|
| 12 | while 1: |
|---|
| 13 | row = rs.fetch_row() |
|---|
| 14 | if row == (): |
|---|
| 15 | break |
|---|
| 16 | filename = row[0][0] |
|---|
| 17 | wiki = row[0][1] |
|---|
| 18 | # convert mediawiki to tracwiki |
|---|
| 19 | wiki = wiki.replace("\n***","\n *") |
|---|
| 20 | wiki = wiki.replace("\n**", "\n *") |
|---|
| 21 | wiki = wiki.replace("\n*", "\n *") |
|---|
| 22 | wiki = wiki.replace("[[","wiki:") |
|---|
| 23 | wiki = wiki.replace("]]","") |
|---|
| 24 | wiki = wiki.replace("<br>","[[BR]]") |
|---|
| 25 | wiki = wiki.replace("\n:","\n ") |
|---|
| 26 | # todo: change titles? |
|---|
| 27 | # fixme: could use piping to import (no temp files) |
|---|
| 28 | #os.system("trac-admin /tracroot/iv wiki remote" & filename) |
|---|
| 29 | # write to file |
|---|
| 30 | f = open( filename, "w") |
|---|
| 31 | f.write( wiki ) |
|---|
| 32 | f.close |
|---|
| 33 | # import all wiki pages |
|---|
| 34 | os.system("trac-admin /tracroot/iv wiki load .") |
|---|
| 35 | # todo: remove files |
|---|
| 36 | db.close() |
|---|