Forgot to commit the change to showhideminor. Also removing commented-out strings.
[lhc/web/wiklou.git] / maintenance / attribute.php
1 <?php
2 # Script for re-attributing edits
3 require_once( "commandLine.inc" );
4
5 # Parameters
6 if ( count( $args ) < 2 ) {
7 print "Not enough parameters\n";
8 if ( $wgWikiFarm ) {
9 print "Usage: php attribute.php <language> <site> <source> <destination>\n";
10 } else {
11 print "Usage: php attribute.php <source> <destination>\n";
12 }
13 exit;
14 }
15
16 $source = $args[0];
17 $dest = $args[1];
18
19 $dbr =& wfGetDB( DB_SLAVE );
20 extract( $dbr->tableNames( 'cur','old','user' );
21 $eSource = $dbr->strencode( $source );
22 $eDest = $dbr->strencode( $dest );
23
24 # Get user id
25 $res = $dbr->query( "SELECT user_id FROM $user WHERE user_name='$eDest'" );
26 $row = $dbr->fetchObject( $res );
27 if ( !$row ) {
28 print "Warning: the target name \"$dest\" does not exist";
29 $uid = 0;
30 } else {
31 $uid = $row->user_id;
32 }
33
34 # Initialise files
35 $logfile = fopen( "attribute.log", "a" );
36 $sqlfile = fopen( "attribute.sql", "a" );
37
38 fwrite( $logfile, "* $source &rarr; $dest\n" );
39
40 fwrite( $sqlfile,
41 "-- Changing attribution SQL file
42 -- Generated with attribute.php
43 -- $source -> $dest ($uid)
44 ");
45
46 $omitTitle = "Wikipedia:Changing_attribution_for_an_edit";
47
48 # Get old entries
49 print "\nOld entries\n\n";
50
51 $res = $dbr->query( "SELECT old_namespace, old_title, old_id, old_timestamp FROM $old WHERE old_user_text='$eSource'" );
52 $row = $dbr->fetchObject( $res );
53
54 if ( $row ) {
55 /*
56 if ( $row->old_title=='Votes_for_deletion' && $row->old_namespace == 4 ) {
57 # We don't have that long
58 break;
59 }
60 */
61 fwrite( $logfile, "**Old IDs: " );
62 fwrite( $sqlfile, "UPDATE old SET old_user=$uid, old_user_text='$eDest' WHERE old_id IN (\n" );
63
64 for ( $first=true; $row; $row = $dbr->fetchObject( $res ) ) {
65 $ns = $wgLang->getNsText( $row->old_namespace );
66 if ( $ns ) {
67 $fullTitle = "$ns:{$row->old_title}";
68 } else {
69 $fullTitle = $row->old_title;
70 }
71 if ( $fullTitle == $omitTitle ) {
72 continue;
73 }
74
75 print "$fullTitle\n";
76 $url = "http://$lang.wikipedia.org/w/wiki.phtml?title=" . urlencode( $fullTitle );
77 $url .= "&oldid={$row->old_id}";
78
79 # Output
80 fwrite( $sqlfile, " " );
81 if ( $first ) {
82 $first = false;
83 } else {
84 fwrite( $sqlfile, ", " );
85 fwrite( $logfile, ", " );
86 }
87
88 fwrite( $sqlfile, "{$row->old_id} -- $url\n" );
89 fwrite( $logfile, "[$url {$row->old_id}]" );
90
91 }
92 fwrite( $sqlfile, ");\n" );
93 fwrite( $logfile, "\n" );
94 }
95
96 # Get cur entries
97 print "\n\nCur entries\n\n";
98
99 $res = $dbr->query( "SELECT cur_title, cur_namespace, cur_timestamp, cur_id FROM $cur WHERE cur_user_text='$eSource'" );
100 $row = $dbr->fetchObject( $res );
101 if ( $row ) {
102 fwrite( $sqlfile, "\n\nUPDATE cur SET cur_user=$uid, cur_user_text='$eDest' WHERE cur_id IN(\n" );
103 fwrite( $logfile, "**Cur entries:\n" );
104 for ( $first=true; $row; $row = $dbr->fetchObject( $res ) ) {
105 $ns = $wgLang->getNsText( $row->cur_namespace );
106 if ( $ns ) {
107 $fullTitle = "$ns:{$row->cur_title}";
108 } else {
109 $fullTitle = $row->cur_title;
110 }
111 if ( $fullTitle == $omitTitle ) {
112 continue;
113 }
114 $url = "http://$lang.wikipedia.org/wiki/" . urlencode($fullTitle);
115 if ( $first ) {
116 fwrite( $sqlfile, " " );
117 $first = false;
118 } else {
119 fwrite( $sqlfile, " , " );
120 }
121 fwrite( $sqlfile, "{$row->cur_id} -- $url\n" );
122 fwrite( $logfile, "***[[$fullTitle]] {$row->cur_timestamp}\n" );
123 print "$fullTitle\n";
124 }
125 fwrite( $sqlfile, ");\n" );
126 }
127 print "\n";
128
129 fclose( $sqlfile );
130 fclose( $logfile );
131
132 ?>