def dologsbackup(wikidb, outfile, wikiconf, start, end, dryrun): ''' do a logs xml dump one piece at a time, writing into uncompressed temporary files and shovelling those into gzip's stdin for the concatenated compressed output ''' outfiles = {'logs': {'name': outfile}} for filetype in outfiles: outfiles[filetype]['temp'] = os.path.join( wikiconf.temp_dir, os.path.basename(outfiles[filetype]['name']) + "_tmp") if dryrun: outfiles[filetype]['compr'] = None else: outfiles[filetype]['compr'] = gzippit(outfiles[filetype]['name']) script_command = MultiVersion.mw_script_as_array(wikiconf, "dumpBackup.php") command = [wikiconf.php] + script_command command.extend(["--wiki=%s" % wikidb, "--logs", "--report=1000", "--output=file:%s" % outfiles['logs']['temp'] ]) do_xml_stream(wikidb, outfiles, command, wikiconf, start, end, dryrun, 'log_id', 'logging', 50000, 100000, '</logitem>\n')
def dostubsbackup(wikidb, history_file, current_file, articles_file, wikiconf, start, end, dryrun): ''' do a stubs xml dump one piece at a time, writing into uncompressed temporary files and shovelling those into gzip's stdin for the concatenated compressed output ''' outfiles = {'history': {'name': history_file}, 'current': {'name': current_file}, 'articles': {'name': articles_file}} for filetype in outfiles: outfiles[filetype]['temp'] = os.path.join( wikiconf.temp_dir, os.path.basename(outfiles[filetype]['name']) + "_tmp") if dryrun: outfiles[filetype]['compr'] = None else: outfiles[filetype]['compr'] = gzippit(outfiles[filetype]['name']) script_command = MultiVersion.mw_script_as_array(wikiconf, "dumpBackup.php") command = [wikiconf.php] + script_command command.extend(["--wiki=%s" % wikidb, "--full", "--stub", "--report=1000", "--output=file:%s" % outfiles['history']['temp'], "--output=file:%s" % outfiles['current']['temp'], "--filter=latest", "--output=file:%s" % outfiles['articles']['temp'], "--filter=latest", "--filter=notalk", "--filter=namespace:!NS_USER"]) if wikiconf.stubs_orderrevs: command.append("--orderrevs") callback = get_page_interval else: callback = None do_xml_stream(wikidb, outfiles, command, wikiconf, start, end, dryrun, 'page_id', 'page', 5000, 100000, '</page>\n', callback)