Difference between revisions of "Change user in XML export"

From Organic Design wiki
m (Changing ''timestamp'', ''username'' and ''id'': typo)
(Change source-code blocks to standard format)
 
Line 8: Line 8:
  
 
==Changing ''username'' and ''id''==
 
==Changing ''username'' and ''id''==
{{code|<perl>
+
<source lang="perl">
 
perl -ne 'BEGIN{$/=undef} s/(<username>)\w+?(<\/username>\s+?<id>)\d+?(<\/id>)/${1}WikiSysop${2}1${3}/g; ; print' IN.xml > OUT.xml
 
perl -ne 'BEGIN{$/=undef} s/(<username>)\w+?(<\/username>\s+?<id>)\d+?(<\/id>)/${1}WikiSysop${2}1${3}/g; ; print' IN.xml > OUT.xml
</perl>
+
</source>
}}
 
  
 
==Changing ''timestamp'', ''username'' and ''id''==
 
==Changing ''timestamp'', ''username'' and ''id''==
 
The <nowiki><timestamp>2008-12-03T09:01:22Z</timestamp></nowiki> field is also important. If it is at the current time then imports will be recorded in the recent changes.
 
The <nowiki><timestamp>2008-12-03T09:01:22Z</timestamp></nowiki> field is also important. If it is at the current time then imports will be recorded in the recent changes.
{{code|<perl>
+
<source lang="perl">
 
perl -ne 'BEGIN{$/=undef}  
 
perl -ne 'BEGIN{$/=undef}  
 
$time = `date "+%Y-%m-%dT%H:%M:%SZ"`;  
 
$time = `date "+%Y-%m-%dT%H:%M:%SZ"`;  
Line 21: Line 20:
 
s/(<username>)\w+?(<\/username>\s+?<id>)\d+?(<\/id>)/${1}WikiSysop${2}1${3}/g;  
 
s/(<username>)\w+?(<\/username>\s+?<id>)\d+?(<\/id>)/${1}WikiSysop${2}1${3}/g;  
 
print' IN.xml > OUT.xml
 
print' IN.xml > OUT.xml
</perl>
+
</source>
}}
 
  
 
The unix command to mimic mediaWikis timestamp is;
 
The unix command to mimic mediaWikis timestamp is;
{{code|<BASH>date "+%Y-%m-%dT%H:%M:%SZ"</BASH>}}
+
<source lang="BASH">
 +
date "+%Y-%m-%dT%H:%M:%SZ"
 +
</source>
 
}}
 
}}

Latest revision as of 18:11, 22 May 2015

Procedure.svg Change user in XML export
Organic Design procedure

The Usernames are specified in the <username> tag, by default an xml export usually dumps the current revision not the history of an article;

Changing username and id

perl -ne 'BEGIN{$/=undef} s/(<username>)\w+?(<\/username>\s+?<id>)\d+?(<\/id>)/${1}WikiSysop${2}1${3}/g; ; print' IN.xml > OUT.xml

Changing timestamp, username and id

The <timestamp>2008-12-03T09:01:22Z</timestamp> field is also important. If it is at the current time then imports will be recorded in the recent changes.

perl -ne 'BEGIN{$/=undef} 
$time = `date "+%Y-%m-%dT%H:%M:%SZ"`; 
s/(<timestamp>).+?(<\/timestamp>)/${1}${time}${2}/g;
s/(<username>)\w+?(<\/username>\s+?<id>)\d+?(<\/id>)/${1}WikiSysop${2}1${3}/g; 
print' IN.xml > OUT.xml

The unix command to mimic mediaWikis timestamp is;

date "+%Y-%m-%dT%H:%M:%SZ"

}}