1- < ?hh
1+ <?php
22
33require 'vendor/autoload.php ' ;
44
55$ gerrit = 'https://gerrit.wikimedia.org/r/ ' ;
66$ projects = [
7- ' mediawiki/extensions/Translate' ,
8- ' mediawiki/extensions/UniversalLanguageSelector' ,
97 'mediawiki/extensions/ContentTranslation ' ,
108 'mediawiki/services/cxserver ' ,
9+ 'mediawiki/extensions/Translate ' ,
10+ 'mediawiki/extensions/UniversalLanguageSelector ' ,
1111 'mediawiki/extensions/Babel ' ,
1212 'mediawiki/extensions/TwnMainPage ' ,
13- ' mediawiki/extensions/InviteSignup' ,
1413 'mediawiki/extensions/CleanChanges ' ,
1514 'mediawiki/extensions/LocalisationUpdate ' ,
1615 'mediawiki/extensions/cldr ' ,
2322use GuzzleHttp \Client ;
2423
2524class Vatkain {
26- private Client $client ;
25+ private $ client ;
2726
2827 public function __construct ( string $ api ) {
2928 $ this ->client = new Client ( [
@@ -45,10 +44,10 @@ private function buildQuery( array $input ) {
4544 return rtrim ( $ output , '& ' );
4645 }
4746
48- public function getChangeData ( array < string > $projects ) {
47+ public function getChangeData ( array $ projects ) {
4948 $ step = 100 ;
5049
51- $projects = array_map ( $p ==> " project:$p " , $projects );
50+ $ projects = array_map ( function ( $ p ) { return "project: $ p " ; } , $ projects );
5251 $ projects = '( ' . implode ( ' OR ' , $ projects ) . ') ' ;
5352
5453 $ query = [
@@ -125,13 +124,17 @@ private function doChangesQuery( array $query ) {
125124 $ grouped [$ item ['project ' ]][] = $ item ;
126125}
127126
128- $stringAge = $_ ==> $_ [' __ps_age' ]-> format( ' %a' );
129-
127+ $ stringAge = function ( $ _ ) {
128+ return $ _ ['__ps_age ' ]->format ( '%a ' );
129+ };
130+ $ sortCallback = function ( $ a , $ b ) use ( $ stringAge ) {
131+ return strnatcmp ( $ stringAge ( $ a ), $ stringAge ( $ b ) );
132+ };
130133foreach ( $ grouped as $ ext => $ items ) {
131- uasort ( $grouped [$ext ], ( $a , $b ) ==> strnatcmp ( $ stringAge ( $a ), $ stringAge ( $b ) ) );
134+ uasort ( $ grouped [$ ext ], $ sortCallback );
132135}
133136
134- $fl = ( $string , $length ) ==> str_pad ( substr ( $string , 0 , $length ), $length , ' ' );
137+ $ fl = function ( $ string , $ length ) { return str_pad ( substr ( $ string , 0 , $ length ), $ length , ' ' ); } ;
135138
136139$ totalReviewIdle = 0 ;
137140
@@ -148,15 +151,17 @@ private function doChangesQuery( array $query ) {
148151 $ patchCount = count ( $ items );
149152
150153 foreach ( $ items as $ item ) {
154+ $ wip = ( strpos ( $ item ['subject ' ], 'WIP ' ) !== false || isset ( $ item ['work_in_progress ' ] ) );
155+
151156 $ rows [] = [
152157 $ item ['change_id ' ],
153158 $ item ['subject ' ],
154- $item [' __state' ],
159+ $ wip ? ' WIP ' : $ item ['__state ' ],
155160 $ item ['__age ' ]->format ( '%a ' ),
156161 $ item ['__ps_age ' ]->format ( '%a ' ),
157162 ];
158163
159- if ( $item [' __state' ] === ' REVIEW' && strpos ( $item [ ' subject ' ], ' WIP ' ) === false ) {
164+ if ( $ item ['__state ' ] === 'REVIEW ' && ! $ wip ) {
160165 $ reviewIdle += $ item ['__ps_age ' ]->format ( '%a ' );
161166 $ unreviewed += 1 ;
162167 }
0 commit comments