Delphi Inspiration

Components and Applications

User Tools

Site Tools


wiki:wikitaxi:wikitaxi_import_script

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

wiki:wikitaxi:wikitaxi_import_script [2016/01/22 15:09] (current)
Line 1: Line 1:
 +====== WikiTaxi: Batch Import ======
  
 +{{page>:​products:​wikitaxi:​header}}
 +{{page>:​wiki-header}}
 +
 +Some people routinely use WikiTaxi as an offline backup for their personal Wiki and need to convert their uncompressed MediaWiki XML dumps to a WikiTaxi *.taxi file on a regular basis. The following script provides a solution to simplify this process. ​
 +
 +[[https://​www.autoitscript.com/​site/​autoit/​|AutoIt]] is required to compile the script, and [[http://​www.7-zip.org/​|7-Zip]] must be installed. Once compiled the script must be placed into the WikiTaxi directory. Then it allows to drag and drop (or select in standalone mode) a MediaWiki *.xml dump file for processing:
 +
 +  * Run 7-Zip to compress the *.xml file to *.xml.bz2
 +  * Launch ''​WikiTaxi_Importer.exe'',​ type in the appropriate file names, and import.
 +  * Invoke ''​WikiTaxi.exe''​ and navigate to the main page.
 +
 +<​code>​
 +; Automated MediaWiki XML to WikiTaxi converter. Compile with AutoIt. ​
 +; Requires WikiTaxi in same directory as compiled .exe, also requires 7-Zip installed on PC.
 +
 +; Match partial Window titles to support different versions of WikiTaxi
 +Opt("​WinTitleMatchMode",​ 2)
 +
 +; This will load the Main Page after importing, change to your preference.
 +$startpage = "Main Page"
 +
 +; 7-Zip is required
 +If Not FileExists(@ProgramFilesDir & "​\7-zip\7z.exe"​) Then 
 + MsgBox(16, "​Required",​ "7-Zip required! Please install and try again."​)
 + Exit
 +EndIf
 +
 +; Drag and drop enabled
 +If $CmdLine[0] <> 0 Then 
 + ; Assume cmdline input is file location
 + $wiki_xml = $CmdLine[1]
 +Else
 + ; Let user browse to .xml file to choose
 + $wiki_xml = FileOpenDialog("​Choose XML to convert to WikiTaxi",​ _
 + @WorkingDir,​ "XML Files (*.xml)"​)
 + If $wiki_xml = ""​ Then
 + ; Exit if canceled
 + Exit
 + EndIf
 +EndIf
 +
 +; To make formatting code better for .taxi file
 +$wiki_taxi = StringTrimRight($wiki_xml,​ 3) & "​taxi" ​
 +
 +; I'd rather not overwrite a Wiki, personal preference
 +If FileExists($wiki_taxi) Then 
 + MsgBox(16, "​Error",​ "Wiki already created under this name." & _
 + @CRLF & "​Rename " & $wiki_xml & @CRLF & "or delete " & $wiki_taxi)
 + Exit
 +EndIf
 +
 +; Compress the .xml to bzip so that the importer will take it
 +Run('"'​ & @ProgramFilesDir & '​\7-zip\7z.exe"​ -tbzip2 a "'​ & _
 + $wiki_xml & '​.bz2"​ "'​ & $wiki_xml & '"'​)
 +ProcessWaitClose("​7z.exe"​)
 +
 +; Launch Importer
 +Run("​WikiTaxi_Importer.exe"​)
 +
 +; Make sure WikiTaxi is focus and activate it
 +WinActivate("​WikiTaxi Importer"​)
 +WinWaitActive("​WikiTaxi Importer"​)
 +
 +; Type in newly compressed xml
 +ControlSetText("​WikiTaxi Importer",​ "",​ _
 + "​[CLASS:​TTntEdit.UnicodeClass;​ INSTANCE:​1]",​ $wiki_xml & "​.bz2"​)
 +
 +; Type in .taxi
 +ControlSetText("​WikiTaxi Importer",​ "",​ _
 + "​[CLASS:​TTntEdit.UnicodeClass;​ INSTANCE:​2]",​ $wiki_taxi)
 +
 +; Click Import
 +ControlClick("​WikiTaxi Importer",​ "",​ _
 + "​[CLASS:​TTntButton.UnicodeClass;​ INSTANCE:​2]"​)
 +
 +; --- If you have issues after importing, adjust or remove lines below ---
 +
 +; Adjust to your needs. I use a small wiki, not the Wikipedia, ​
 +; so the timing is right for my situation.
 +Sleep(1000)
 +
 +; AutoIt can't see this text otherwise we'd wait for it.
 +; To pause script, uncomment line below for larger wikis:
 +;​MsgBox(0,"​Wait...",'​Wait for "​Import finished successfully!"'​)
 +
 +; Start WikiTaxi and navigate to specified start page
 +Run('​WikiTaxi "'​ & $wiki_taxi & '"​ "'​ & $startpage & '"'​)
 +
 +; Again, adjust below for larger wiki.
 +Sleep(2000)
 +
 +; Timing may be off and close Importer too early for larger wiki.
 +ProcessClose("​WikiTaxi_Importer.exe"​)
 +
 +; Remove temporary file. You could also remove .xml, 
 +; but I keep it since WikiTaxi strips out history.
 +FileDelete($wiki_xml & "​.bz2"​)
 +</​code>​
wiki/wikitaxi/wikitaxi_import_script.txt · Last modified: 2016/01/22 15:09 (external edit)