@@ -34,6 +34,9 @@ discard block |
||
| 34 | 34 | } |
| 35 | 35 | } |
| 36 | 36 | |
| 37 | + /** |
|
| 38 | + * @param string $username |
|
| 39 | + */ |
|
| 37 | 40 | public function groups($project, $username) |
| 38 | 41 | { |
| 39 | 42 | $cacheKey = "groups.$project.$username"; |
@@ -59,6 +62,9 @@ discard block |
||
| 59 | 62 | return $result; |
| 60 | 63 | } |
| 61 | 64 | |
| 65 | + /** |
|
| 66 | + * @param string $username |
|
| 67 | + */ |
|
| 62 | 68 | public function globalGroups($project, $username) |
| 63 | 69 | { |
| 64 | 70 | $cacheKey = "globalgroups.$project.$username"; |
@@ -363,7 +369,7 @@ discard block |
||
| 363 | 369 | * Adapted from https://github.com/MusikAnimal/pageviews |
| 364 | 370 | * @param array $params Associative array of params to pass to API |
| 365 | 371 | * @param string $project Project to query, e.g. en.wikipedia.org |
| 366 | - * @param string|func $dataKey The key for the main chunk of data, in the query hash |
|
| 372 | + * @param \Closure $dataKey The key for the main chunk of data, in the query hash |
|
| 367 | 373 | * (e.g. 'categorymembers' for API:Categorymembers). |
| 368 | 374 | * If this is a function it is given the response data, |
| 369 | 375 | * and expected to return the data we want to concatentate. |
@@ -2,11 +2,9 @@ |
||
| 2 | 2 | |
| 3 | 3 | namespace AppBundle\Helper; |
| 4 | 4 | |
| 5 | -use DateInterval; |
|
| 6 | 5 | use Mediawiki\Api\MediawikiApi; |
| 7 | 6 | use Mediawiki\Api\SimpleRequest; |
| 8 | 7 | use Mediawiki\Api\FluentRequest; |
| 9 | -use Psr\Cache\CacheItemPoolInterface; |
|
| 10 | 8 | use Symfony\Component\Config\Definition\Exception\Exception; |
| 11 | 9 | use Symfony\Component\DependencyInjection\ContainerInterface; |
| 12 | 10 | |
@@ -42,7 +42,7 @@ discard block |
||
| 42 | 42 | } |
| 43 | 43 | |
| 44 | 44 | $this->setUp($project); |
| 45 | - $params = [ "list"=>"users", "ususers"=>$username, "usprop"=>"groups" ]; |
|
| 45 | + $params = ["list"=>"users", "ususers"=>$username, "usprop"=>"groups"]; |
|
| 46 | 46 | $query = new SimpleRequest('query', $params); |
| 47 | 47 | $result = []; |
| 48 | 48 | |
@@ -67,7 +67,7 @@ discard block |
||
| 67 | 67 | } |
| 68 | 68 | |
| 69 | 69 | $this->setUp($project); |
| 70 | - $params = [ "meta"=>"globaluserinfo", "guiuser"=>$username, "guiprop"=>"groups" ]; |
|
| 70 | + $params = ["meta"=>"globaluserinfo", "guiuser"=>$username, "guiprop"=>"groups"]; |
|
| 71 | 71 | $query = new SimpleRequest('query', $params); |
| 72 | 72 | $result = []; |
| 73 | 73 | |
@@ -98,7 +98,7 @@ discard block |
||
| 98 | 98 | } |
| 99 | 99 | |
| 100 | 100 | $this->setUp($project); |
| 101 | - $query = new SimpleRequest('query', [ "meta"=>"siteinfo", "siprop"=>"namespaces" ]); |
|
| 101 | + $query = new SimpleRequest('query', ["meta"=>"siteinfo", "siprop"=>"namespaces"]); |
|
| 102 | 102 | $result = []; |
| 103 | 103 | |
| 104 | 104 | try { |
@@ -211,7 +211,7 @@ discard block |
||
| 211 | 211 | $normalized = []; |
| 212 | 212 | if (isset($result['query']['normalized'])) { |
| 213 | 213 | array_map( |
| 214 | - function ($e) use (&$normalized) { |
|
| 214 | + function($e) use (&$normalized) { |
|
| 215 | 215 | $normalized[$e['to']] = $e['from']; |
| 216 | 216 | }, |
| 217 | 217 | $result['query']['normalized'] |
@@ -255,7 +255,7 @@ discard block |
||
| 255 | 255 | ]; |
| 256 | 256 | |
| 257 | 257 | // get assessments for this page from the API |
| 258 | - $assessments = $this->massApi($params, $project, function ($data) { |
|
| 258 | + $assessments = $this->massApi($params, $project, function($data) { |
|
| 259 | 259 | return isset($data['pages'][0]['pageassessments']) ? $data['pages'][0]['pageassessments'] : []; |
| 260 | 260 | }, 'pacontinue')['pages']; |
| 261 | 261 | |
@@ -283,7 +283,7 @@ discard block |
||
| 283 | 283 | $assessment['class']['value'] = '???'; |
| 284 | 284 | // $1 is used to substitute the WikiProject name, e.g. Category:FA-Class Wikipedia 1.0 articles |
| 285 | 285 | $assessment['class']['category'] = str_replace('$1', $wikiproject, $classAttrs['category']); |
| 286 | - $assessment['class']['badge'] = "https://upload.wikimedia.org/wikipedia/commons/". $classAttrs['badge']; |
|
| 286 | + $assessment['class']['badge'] = "https://upload.wikimedia.org/wikipedia/commons/".$classAttrs['badge']; |
|
| 287 | 287 | } else { |
| 288 | 288 | $classAttrs = $config['class'][$classValue]; |
| 289 | 289 | $assessment['class'] = [ |
@@ -294,7 +294,7 @@ discard block |
||
| 294 | 294 | |
| 295 | 295 | // add full URL to badge icon |
| 296 | 296 | if ($classAttrs['badge'] !== '') { |
| 297 | - $assessment['class']['badge'] = "https://upload.wikimedia.org/wikipedia/commons/" . |
|
| 297 | + $assessment['class']['badge'] = "https://upload.wikimedia.org/wikipedia/commons/". |
|
| 298 | 298 | $classAttrs['badge']; |
| 299 | 299 | } |
| 300 | 300 | |
@@ -420,7 +420,7 @@ discard block |
||
| 420 | 420 | $query = FluentRequest::factory()->setAction('query')->setParams($requestData); |
| 421 | 421 | $innerPromise = $this->api->getRequestAsync($query); |
| 422 | 422 | |
| 423 | - $innerPromise->then(function ($result) use (&$data) { |
|
| 423 | + $innerPromise->then(function($result) use (&$data) { |
|
| 424 | 424 | // some failures come back as 200s, so we still resolve and let the outer function handle it |
| 425 | 425 | if (isset($result['error']) || !isset($result['query'])) { |
| 426 | 426 | return $data['promise']->resolve($data); |
@@ -146,7 +146,7 @@ |
||
| 146 | 146 | |
| 147 | 147 | /** |
| 148 | 148 | * |
| 149 | - * @param $username |
|
| 149 | + * @param string $username |
|
| 150 | 150 | * @return integer |
| 151 | 151 | */ |
| 152 | 152 | public function getPageCounts($username, $totalRevisions) |
@@ -34,7 +34,7 @@ discard block |
||
| 34 | 34 | public function getUserId($usernameOrIp) |
| 35 | 35 | { |
| 36 | 36 | // Use cache if possible. |
| 37 | - $cacheKey = 'usernameOrIp.' . $usernameOrIp; |
|
| 37 | + $cacheKey = 'usernameOrIp.'.$usernameOrIp; |
|
| 38 | 38 | if ($this->cacheHas($cacheKey)) { |
| 39 | 39 | return $this->cacheGet($cacheKey); |
| 40 | 40 | } |
@@ -115,24 +115,24 @@ discard block |
||
| 115 | 115 | } |
| 116 | 116 | |
| 117 | 117 | $revisionCounts = array_combine( |
| 118 | - array_map(function ($e) { |
|
| 118 | + array_map(function($e) { |
|
| 119 | 119 | return $e['source']; |
| 120 | 120 | }, $results), |
| 121 | - array_map(function ($e) { |
|
| 121 | + array_map(function($e) { |
|
| 122 | 122 | return $e['value']; |
| 123 | 123 | }, $results) |
| 124 | 124 | ); |
| 125 | 125 | |
| 126 | 126 | // Count the number of days, accounting for when there's only one edit. |
| 127 | - $editingTimeInSeconds = ceil($revisionCounts['last'] - $revisionCounts['first']); |
|
| 128 | - $revisionCounts['days'] = $editingTimeInSeconds ? $editingTimeInSeconds/(60*60*24) : 1; |
|
| 127 | + $editingTimeInSeconds = ceil($revisionCounts['last']-$revisionCounts['first']); |
|
| 128 | + $revisionCounts['days'] = $editingTimeInSeconds ? $editingTimeInSeconds / (60 * 60 * 24) : 1; |
|
| 129 | 129 | |
| 130 | 130 | // Format the first and last dates. |
| 131 | 131 | $revisionCounts['first'] = date('Y-m-d H:i', strtotime($revisionCounts['first'])); |
| 132 | 132 | $revisionCounts['last'] = date('Y-m-d H:i', strtotime($revisionCounts['last'])); |
| 133 | 133 | |
| 134 | 134 | // Sum deleted and live to make the total. |
| 135 | - $revisionCounts['total'] = $revisionCounts['deleted'] + $revisionCounts['live']; |
|
| 135 | + $revisionCounts['total'] = $revisionCounts['deleted']+$revisionCounts['live']; |
|
| 136 | 136 | |
| 137 | 137 | // Calculate the average number of live edits per day. |
| 138 | 138 | $revisionCounts['avg_per_day'] = round( |
@@ -176,16 +176,16 @@ discard block |
||
| 176 | 176 | $results = $resultQuery->fetchAll(); |
| 177 | 177 | |
| 178 | 178 | $pageCounts = array_combine( |
| 179 | - array_map(function ($e) { |
|
| 179 | + array_map(function($e) { |
|
| 180 | 180 | return $e['source']; |
| 181 | 181 | }, $results), |
| 182 | - array_map(function ($e) { |
|
| 182 | + array_map(function($e) { |
|
| 183 | 183 | return $e['value']; |
| 184 | 184 | }, $results) |
| 185 | 185 | ); |
| 186 | 186 | |
| 187 | 187 | // Total created. |
| 188 | - $pageCounts['created'] = $pageCounts['created-live'] + $pageCounts['created-deleted']; |
|
| 188 | + $pageCounts['created'] = $pageCounts['created-live']+$pageCounts['created-deleted']; |
|
| 189 | 189 | |
| 190 | 190 | // Calculate the average number of edits per page. |
| 191 | 191 | $pageCounts['edits_per_page'] = 0; |
@@ -219,17 +219,17 @@ discard block |
||
| 219 | 219 | $resultQuery->execute(); |
| 220 | 220 | $results = $resultQuery->fetchAll(); |
| 221 | 221 | $logCounts = array_combine( |
| 222 | - array_map(function ($e) { |
|
| 222 | + array_map(function($e) { |
|
| 223 | 223 | return $e['source']; |
| 224 | 224 | }, $results), |
| 225 | - array_map(function ($e) { |
|
| 225 | + array_map(function($e) { |
|
| 226 | 226 | return $e['value']; |
| 227 | 227 | }, $results) |
| 228 | 228 | ); |
| 229 | 229 | |
| 230 | 230 | // Make sure there is some value for each of the wanted counts. |
| 231 | 231 | $requiredCounts = [ |
| 232 | - 'thanks-thank', 'review-approve', 'patrol-patrol','block-block', 'block-unblock', |
|
| 232 | + 'thanks-thank', 'review-approve', 'patrol-patrol', 'block-block', 'block-unblock', |
|
| 233 | 233 | 'protect-protect', 'protect-unprotect', 'delete-delete', 'delete-revision', |
| 234 | 234 | 'delete-restore', 'import-import', 'upload-upload', 'upload-overwrite', |
| 235 | 235 | ]; |
@@ -240,9 +240,9 @@ discard block |
||
| 240 | 240 | } |
| 241 | 241 | |
| 242 | 242 | // Merge approvals together. |
| 243 | - $logCounts['review-approve'] = $logCounts['review-approve'] + |
|
| 244 | - (!empty($logCounts['review-approve-a']) ? $logCounts['review-approve-a'] : 0) + |
|
| 245 | - (!empty($logCounts['review-approve-i']) ? $logCounts['review-approve-i'] : 0) + |
|
| 243 | + $logCounts['review-approve'] = $logCounts['review-approve']+ |
|
| 244 | + (!empty($logCounts['review-approve-a']) ? $logCounts['review-approve-a'] : 0)+ |
|
| 245 | + (!empty($logCounts['review-approve-i']) ? $logCounts['review-approve-i'] : 0)+ |
|
| 246 | 246 | (!empty($logCounts['review-approve-ia']) ? $logCounts['review-approve-ia'] : 0); |
| 247 | 247 | |
| 248 | 248 | // Add Commons upload count, if applicable. |
@@ -274,7 +274,7 @@ discard block |
||
| 274 | 274 | } |
| 275 | 275 | |
| 276 | 276 | $sql = "SELECT page_namespace, count(rev_id) AS total |
| 277 | - FROM ".$this->labsHelper->getTable('revision') ." r |
|
| 277 | + FROM ".$this->labsHelper->getTable('revision')." r |
|
| 278 | 278 | JOIN ".$this->labsHelper->getTable('page')." p on r.rev_page = p.page_id |
| 279 | 279 | WHERE r.rev_user = :id GROUP BY page_namespace"; |
| 280 | 280 | $resultQuery = $this->replicas->prepare($sql); |
@@ -282,10 +282,10 @@ discard block |
||
| 282 | 282 | $resultQuery->execute(); |
| 283 | 283 | $results = $resultQuery->fetchAll(); |
| 284 | 284 | $namespaceTotals = array_combine( |
| 285 | - array_map(function ($e) { |
|
| 285 | + array_map(function($e) { |
|
| 286 | 286 | return $e['page_namespace']; |
| 287 | 287 | }, $results), |
| 288 | - array_map(function ($e) { |
|
| 288 | + array_map(function($e) { |
|
| 289 | 289 | return $e['total']; |
| 290 | 290 | }, $results) |
| 291 | 291 | ); |