From Meta, a Wikimedia project coordination wiki
This page documents the format used by the raw recent changes feeds on irc.wikimedia.org for use in developing CVNbot .
Every line in the feed is formatted using control codes, so that a script can parse each datum by splitting the message along control codes:
Perl
@data = split ( /\s*(?:�\d?\d?|�)\s*/ , $rcMessage );
Python
rc_delimiter = re . compile ( r "\s*(?:\x03\d?\d?|\x03)\s*" )
data = rc_delimiter . split ( rcMessage )
Visible message
[[Thomas Daniel Winter]] M http://en.wikipedia.org/w/index.php?title=Thomas_Daniel_Winter&diff=199949258&oldid=177558063 * TubularWorld * (+4) Standardising headings, Replaced: ==Source== → ==References== using [[Project:AutoWikiBrowser|AWB]]
@data values
notes
$data[4] contains edit flags; if there are none, it will be empty.
$data[14] will be undefined if there is no edit summary.
Visible message
[[Special:Log/block]] block * Pathoschild * blocked "User:Pathoschild2" (anon. only, account creation blocked) with an expiry time of 3 hours: [[Wikipedia:Vandalism|Vandalism]]
[[Special:Log/block]] unblock * Pathoschild * unblocked User:Pathoschild2: test
@data values (block)
0{}
1{[[}
2{Special:Log/block } localized
3{]]}
4{block }
5{}
6{}
7{}
8{*}
9{}
10{Pathoschild }
11{}
12{*}
13{}
14{blocked "} localized
15{User:172.165.175.44 } localized
16{" (anon. only, account creation blocked ) with an expiry time of 3 hours : Vandalism }
@data values (unblock)
0{}
1{[[}
2{Special:Log/block } localized
3{]]}
4{unblock}
5{}
6{}
7{}
8{*}
9{}
10{Pathoschild }
11{}
12{*}
13{}
14{unblocked } localized
15{User:Pathoschild2 } localized
16{: test }
Visible message
[[Special:Log/newusers]] create * Bigdamballz69 * New user account
@data values
0{}
1{[[}
2{Special:Log/newusers } localized
3{]]}
4{create }
5{}
6{}
7{}
8{*}
9{}
10{Bigdamballz69 }
11{}
12{*}
13{}
14{New user account } localized
Visible message
[[Special:Log/newusers]] create2 * Pathoschild * created new account User:Pathoschild2
@data values
0{}
1{[[}
2{Special:Log/newusers } localized
3{]]}
4{create2 }
5{}
6{}
7{}
8{*}
9{}
10{Pathoschild }
11{}
12{*}
13{}
14{created new account } localized
15{User:Pathoschild2 }
Visible message
[[Special:Log/delete]] delete * CJLL Wright * deleted "[[Category:Jostein Gaardner novels]]": reason for deletion
@data values
0{}
1{[[}
2{Special:Log/delete } localized
3{]]}
4{delete }
5{}
6{}
7{}
8{*}
9{}
10{CJLL Wright }
11{}
12{*}
13{}
14{deleted "[[} localized
15{Category:Jostein Gaardner novels } localized
16{]]": reason for deletion }
notes
If the reason for deletion is blank, $data[16] will contain {]]":}.
Visible message
[[Special:Log/move]] move_redir * Father Goose * moved [[User talk:Equazcion/Just drop it]] to [[Wikipedia talk:Just drop it]] over redirect: reason
@data values
0{}
1{[[}
2{Special:Log/move } localized
3{]]}
4{move_redir }
5{}
6{}
7{}
8{*}
9{}
10{Father Goose }
11{}
12{*}
13{}
14{moved [[} localized
15{User talk:Equazcion/Just drop it } localized
16{]] to '''Wikipedia talk:Just drop it''' over redirect : reason } localized
notes
the "move" event is identical but without " over redirect" in $data[16] .
Visible message
[[Special:Log/protect]] protect * Pathoschild * protected "[[User:Pathoschild]]": test [edit=sysop:move=sysop]
@data values
0{}
1{[[}
2{Special:Log/protect }
3{]]}
4{protect }
5{}
6{}
7{}
8{*}
9{}
10{Pathoschild }
11{}
12{*}
13{}
14{protected "[[}
15{User:Pathoschild }
16{]]": test [edit=sysop:move=sysop ]}
Visible message
[[Special:Log/delete]] restore * Pathoschild * restored "[[User:Pathoschild/Sandbox4]]": 26 revisions restored: test
@data values
0{}
1{[[}
2{Special:Log/delete } localized
3{]]}
4{restore }
5{}
6{}
7{}
8{*}
9{}
10{Pathoschild }
11{}
12{*}
13{}
14{restored "[[} localized
15{User:Pathoschild/Sandbox4}
16{]]": 26 revisions restored: test} localized
Visible message
[[Special:Log/rights]] rights * Pathoschild * changed group membership for User:Pathoschild from bureaucrat, import, povwatch, steward, sysop to bureaucrat, import, povwatch, steward, sysop, bot: test
@data values
0{}
1{[[}
2{Special:Log/rights } localized
3{]]}
4{rights }
5{}
6{}
7{}
8{*}
9{}
10{Pathoschild }
11{}
12{*}
13{}
14{changed group membership for } localized
15{User:Pathoschild } localized
16{from bureaucrat, import, povwatch, steward, sysop to bureaucrat, import, povwatch, steward, sysop, bot : test } localized
upload (file upload) / overwrite[ edit ]
Visible message
[[Special:Log/upload]] upload * Pathoschild * uploaded "[[Image:Teh Wikisource.png]]": content or summary here
[[Special:Log/upload]] overwrite * Pathoschild * uploaded a new version of "[[Image:Teh Wikisource.png]]": summary here
@data values (upload)
0{}
1{[[}
2{Special:Log/upload } localized
3{]]}
4{upload}
5{}
6{}
7{}
8{*}
9{}
10{Pathoschild }
11{}
12{*}
13{}
14{uploaded "[[} localized
15{Image:Teh Wikisource.png } localized
16{]]": content or summary here }
@data values (overwrite)
0{}
1{[[}
2{Special:Log/upload } localized
3{]]}
4{overwrite}
5{}
6{}
7{}
8{*}
9{}
10{Pathoschild }
11{}
12{*}
13{}
14{uploaded a new version of "[[} localized
15{Image:Wikisource.png } localized
16{]]": summary here }
notes
If nothing is entered in the content box when overwriting, $data[16] will end at {"}.
upload (XML import)[ edit ]
Visible message
[[Special:Log/import]] upload * Pathoschild * imported [[Wikisource]] by file upload: 100 revisions
@data values (XML import)
0{}
1{[[}
2{Special:Log/import } localized
3{]]}
4{upload}
5{}
6{}
7{}
8{*}
9{}
10{Pathoschild }
11{}
12{*}
13{}
14{imported [[} localized
15{Wikisource }
16{]] by file upload: 100 revisions } localized