@@ -3,7 +3,7 @@ discard block |
||
3 | 3 | * This file contains only the Edit class. |
4 | 4 | */ |
5 | 5 | |
6 | -declare(strict_types = 1); |
|
6 | +declare(strict_types=1); |
|
7 | 7 | |
8 | 8 | namespace AppBundle\Model; |
9 | 9 | |
@@ -86,7 +86,7 @@ discard block |
||
86 | 86 | */ |
87 | 87 | public static function getEditsFromRevs(Project $project, User $user, array $revs): array |
88 | 88 | { |
89 | - return array_map(function ($rev) use ($project, $user) { |
|
89 | + return array_map(function($rev) use ($project, $user) { |
|
90 | 90 | /** @var Page $page Page object to be passed to the Edit constructor. */ |
91 | 91 | $page = Page::newFromRev($project, $rev); |
92 | 92 | $rev['user'] = $user; |
@@ -299,7 +299,7 @@ discard block |
||
299 | 299 | $isSection = preg_match_all("/^\/\* (.*?) \*\//", $summary, $sectionMatch); |
300 | 300 | |
301 | 301 | if ($isSection && isset($page)) { |
302 | - $pageUrl = $project->getUrl(false) . str_replace( |
|
302 | + $pageUrl = $project->getUrl(false).str_replace( |
|
303 | 303 | '$1', |
304 | 304 | $page->getTitle($useUnnormalizedPageTitle), |
305 | 305 | $project->getArticlePath() |
@@ -309,8 +309,8 @@ discard block |
||
309 | 309 | // Must have underscores for the link to properly go to the section. |
310 | 310 | $sectionTitleLink = htmlspecialchars(str_replace(' ', '_', $sectionTitle)); |
311 | 311 | |
312 | - $sectionWikitext = "<a target='_blank' href='$pageUrl#$sectionTitleLink'>→</a>" . |
|
313 | - "<em class='text-muted'>" . htmlspecialchars($sectionTitle) . ":</em> "; |
|
312 | + $sectionWikitext = "<a target='_blank' href='$pageUrl#$sectionTitleLink'>→</a>". |
|
313 | + "<em class='text-muted'>".htmlspecialchars($sectionTitle).":</em> "; |
|
314 | 314 | $summary = str_replace($sectionMatch[0][0], $sectionWikitext, $summary); |
315 | 315 | } |
316 | 316 | |
@@ -324,7 +324,7 @@ discard block |
||
324 | 324 | ); |
325 | 325 | |
326 | 326 | // Use normalized page title (underscored, capitalized). |
327 | - $pageUrl = $project->getUrl(false) . str_replace( |
|
327 | + $pageUrl = $project->getUrl(false).str_replace( |
|
328 | 328 | '$1', |
329 | 329 | ucfirst(str_replace(' ', '_', $wikiLinkPath)), |
330 | 330 | $project->getArticlePath() |
@@ -362,8 +362,8 @@ discard block |
||
362 | 362 | public function getDiffUrl(): string |
363 | 363 | { |
364 | 364 | $project = $this->getProject(); |
365 | - $path = str_replace('$1', 'Special:Diff/' . $this->id, $project->getArticlePath()); |
|
366 | - return rtrim($project->getUrl(), '/') . $path; |
|
365 | + $path = str_replace('$1', 'Special:Diff/'.$this->id, $project->getArticlePath()); |
|
366 | + return rtrim($project->getUrl(), '/').$path; |
|
367 | 367 | } |
368 | 368 | |
369 | 369 | /** |
@@ -373,8 +373,8 @@ discard block |
||
373 | 373 | public function getPermaUrl(): string |
374 | 374 | { |
375 | 375 | $project = $this->getProject(); |
376 | - $path = str_replace('$1', 'Special:PermaLink/' . $this->id, $project->getArticlePath()); |
|
377 | - return rtrim($project->getUrl(), '/') . $path; |
|
376 | + $path = str_replace('$1', 'Special:PermaLink/'.$this->id, $project->getArticlePath()); |
|
377 | + return rtrim($project->getUrl(), '/').$path; |
|
378 | 378 | } |
379 | 379 | |
380 | 380 | /** |
@@ -3,7 +3,7 @@ discard block |
||
3 | 3 | * This file contains only the CategoryEdits class. |
4 | 4 | */ |
5 | 5 | |
6 | -declare(strict_types = 1); |
|
6 | +declare(strict_types=1); |
|
7 | 7 | |
8 | 8 | namespace AppBundle\Model; |
9 | 9 | |
@@ -46,7 +46,7 @@ discard block |
||
46 | 46 | ) { |
47 | 47 | $this->project = $project; |
48 | 48 | $this->user = $user; |
49 | - $this->categories = array_map(function ($category) { |
|
49 | + $this->categories = array_map(function($category) { |
|
50 | 50 | return str_replace(' ', '_', $category); |
51 | 51 | }, $categories); |
52 | 52 | $this->start = false === $start ? '' : date('Y-m-d', $start); |
@@ -78,7 +78,7 @@ discard block |
||
78 | 78 | */ |
79 | 79 | public function getCategoriesNormalized(): array |
80 | 80 | { |
81 | - return array_map(function ($category) { |
|
81 | + return array_map(function($category) { |
|
82 | 82 | return str_replace('_', ' ', $category); |
83 | 83 | }, $this->categories); |
84 | 84 | } |
@@ -3,7 +3,7 @@ discard block |
||
3 | 3 | * This file contains only the AdminStats class. |
4 | 4 | */ |
5 | 5 | |
6 | -declare(strict_types = 1); |
|
6 | +declare(strict_types=1); |
|
7 | 7 | |
8 | 8 | namespace AppBundle\Model; |
9 | 9 | |
@@ -96,7 +96,7 @@ discard block |
||
96 | 96 | $stats = $this->groupStatsByUsername($stats); |
97 | 97 | |
98 | 98 | // Resort, as for some reason the SQL doesn't do this properly. |
99 | - uasort($stats, function ($a, $b) { |
|
99 | + uasort($stats, function($a, $b) { |
|
100 | 100 | if ($a['total'] === $b['total']) { |
101 | 101 | return 0; |
102 | 102 | } |
@@ -127,7 +127,7 @@ discard block |
||
127 | 127 | $this->usersAndGroups = $this->project->getUsersInGroups($groupUserGroups['local'], $groupUserGroups['global']); |
128 | 128 | |
129 | 129 | // Populate $this->usersInGroup with users who are in the relevant user group for $this->group. |
130 | - $this->usersInGroup = array_keys(array_filter($this->usersAndGroups, function ($groups) { |
|
130 | + $this->usersInGroup = array_keys(array_filter($this->usersAndGroups, function($groups) { |
|
131 | 131 | return in_array($this->getRelevantUserGroup(), $groups); |
132 | 132 | })); |
133 | 133 | |
@@ -150,7 +150,7 @@ discard block |
||
150 | 150 | } |
151 | 151 | |
152 | 152 | if ($wikiPath) { |
153 | - $out = array_map(function ($url) { |
|
153 | + $out = array_map(function($url) { |
|
154 | 154 | return str_replace('.svg.png', '.svg', preg_replace('/.*\/18px-/', '', $url)); |
155 | 155 | }, $out); |
156 | 156 | } |
@@ -164,7 +164,7 @@ discard block |
||
164 | 164 | */ |
165 | 165 | public function numDays(): int |
166 | 166 | { |
167 | - return (int)(($this->end - $this->start) / 60 / 60 / 24); |
|
167 | + return (int)(($this->end-$this->start) / 60 / 60 / 24); |
|
168 | 168 | } |
169 | 169 | |
170 | 170 | /** |
@@ -254,6 +254,6 @@ discard block |
||
254 | 254 | */ |
255 | 255 | public function getNumWithActionsNotInGroup(): int |
256 | 256 | { |
257 | - return count($this->adminStats) - $this->numWithActions; |
|
257 | + return count($this->adminStats)-$this->numWithActions; |
|
258 | 258 | } |
259 | 259 | } |
@@ -3,7 +3,7 @@ discard block |
||
3 | 3 | * This file contains only the AutoEdits class. |
4 | 4 | */ |
5 | 5 | |
6 | -declare(strict_types = 1); |
|
6 | +declare(strict_types=1); |
|
7 | 7 | |
8 | 8 | namespace AppBundle\Model; |
9 | 9 | |
@@ -225,8 +225,8 @@ discard block |
||
225 | 225 | public function getToolsTotal(): int |
226 | 226 | { |
227 | 227 | if (!is_int($this->toolsTotal)) { |
228 | - $this->toolsTotal = array_reduce($this->getToolCounts(), function ($a, $b) { |
|
229 | - return $a + $b['count']; |
|
228 | + $this->toolsTotal = array_reduce($this->getToolCounts(), function($a, $b) { |
|
229 | + return $a+$b['count']; |
|
230 | 230 | }); |
231 | 231 | } |
232 | 232 |
@@ -3,7 +3,7 @@ discard block |
||
3 | 3 | * This file contains only the AppExtension class. |
4 | 4 | */ |
5 | 5 | |
6 | -declare(strict_types = 1); |
|
6 | +declare(strict_types=1); |
|
7 | 7 | |
8 | 8 | namespace AppBundle\Twig; |
9 | 9 | |
@@ -112,7 +112,7 @@ discard block |
||
112 | 112 | public function requestTime(): float |
113 | 113 | { |
114 | 114 | if (!isset($this->requestTime)) { |
115 | - $this->requestTime = microtime(true) - $this->getRequest()->server->get('REQUEST_TIME_FLOAT'); |
|
115 | + $this->requestTime = microtime(true)-$this->getRequest()->server->get('REQUEST_TIME_FLOAT'); |
|
116 | 116 | } |
117 | 117 | |
118 | 118 | return $this->requestTime; |
@@ -551,7 +551,7 @@ discard block |
||
551 | 551 | } |
552 | 552 | |
553 | 553 | $sizeMessage = $this->numberFormat( |
554 | - pow(1024, $base - floor($base)), |
|
554 | + pow(1024, $base-floor($base)), |
|
555 | 555 | $precision |
556 | 556 | ); |
557 | 557 | |
@@ -708,15 +708,15 @@ discard block |
||
708 | 708 | |
709 | 709 | if ($seconds >= 86400) { |
710 | 710 | // Over a day |
711 | - $val = (int) floor($seconds / 86400); |
|
711 | + $val = (int)floor($seconds / 86400); |
|
712 | 712 | $key = 'days'; |
713 | 713 | } elseif ($seconds >= 3600) { |
714 | 714 | // Over an hour, less than a day |
715 | - $val = (int) floor($seconds / 3600); |
|
715 | + $val = (int)floor($seconds / 3600); |
|
716 | 716 | $key = 'hours'; |
717 | 717 | } elseif ($seconds >= 60) { |
718 | 718 | // Over a minute, less than an hour |
719 | - $val = (int) floor($seconds / 60); |
|
719 | + $val = (int)floor($seconds / 60); |
|
720 | 720 | $key = 'minutes'; |
721 | 721 | } |
722 | 722 |
@@ -3,7 +3,7 @@ discard block |
||
3 | 3 | * This file contains only the Page class. |
4 | 4 | */ |
5 | 5 | |
6 | -declare(strict_types = 1); |
|
6 | +declare(strict_types=1); |
|
7 | 7 | |
8 | 8 | namespace AppBundle\Model; |
9 | 9 | |
@@ -113,7 +113,7 @@ discard block |
||
113 | 113 | $title = $info['title'] ?? $this->unnormalizedPageName; |
114 | 114 | $nsName = $this->getNamespaceName(); |
115 | 115 | return $nsName |
116 | - ? str_replace($nsName . ':', '', $title) |
|
116 | + ? str_replace($nsName.':', '', $title) |
|
117 | 117 | : $title; |
118 | 118 | } |
119 | 119 | |
@@ -312,7 +312,7 @@ discard block |
||
312 | 312 | { |
313 | 313 | $content = $this->getRepository()->getPagesWikitext( |
314 | 314 | $this->getProject(), |
315 | - [ $this->getTitle() ] |
|
315 | + [$this->getTitle()] |
|
316 | 316 | ); |
317 | 317 | |
318 | 318 | return $content[$this->getTitle()] ?? null; |
@@ -378,7 +378,7 @@ discard block |
||
378 | 378 | |
379 | 379 | $wikidataInfo = $this->getRepository()->getWikidataInfo($this); |
380 | 380 | |
381 | - $terms = array_map(function ($entry) { |
|
381 | + $terms = array_map(function($entry) { |
|
382 | 382 | return $entry['term']; |
383 | 383 | }, $wikidataInfo); |
384 | 384 | |
@@ -389,7 +389,7 @@ discard block |
||
389 | 389 | 'prio' => 2, |
390 | 390 | 'name' => 'Wikidata', |
391 | 391 | 'notice' => "Label for language <em>$lang</em> is missing", // FIXME: i18n |
392 | - 'explanation' => "See: <a target='_blank' " . |
|
392 | + 'explanation' => "See: <a target='_blank' ". |
|
393 | 393 | "href='//www.wikidata.org/wiki/Help:Label'>Help:Label</a>", |
394 | 394 | ]; |
395 | 395 | } |
@@ -399,7 +399,7 @@ discard block |
||
399 | 399 | 'prio' => 3, |
400 | 400 | 'name' => 'Wikidata', |
401 | 401 | 'notice' => "Description for language <em>$lang</em> is missing", // FIXME: i18n |
402 | - 'explanation' => "See: <a target='_blank' " . |
|
402 | + 'explanation' => "See: <a target='_blank' ". |
|
403 | 403 | "href='//www.wikidata.org/wiki/Help:Description'>Help:Description</a>", |
404 | 404 | ]; |
405 | 405 | } |
@@ -477,7 +477,7 @@ discard block |
||
477 | 477 | return 0; |
478 | 478 | } |
479 | 479 | |
480 | - return array_sum(array_map(function ($item) { |
|
480 | + return array_sum(array_map(function($item) { |
|
481 | 481 | return (int)$item['views']; |
482 | 482 | }, $pageviews['items'])); |
483 | 483 | } |
@@ -3,7 +3,7 @@ discard block |
||
3 | 3 | * This file contains only the AutomatedEditsHelper class. |
4 | 4 | */ |
5 | 5 | |
6 | -declare(strict_types = 1); |
|
6 | +declare(strict_types=1); |
|
7 | 7 | |
8 | 8 | namespace AppBundle\Helper; |
9 | 9 | |
@@ -85,8 +85,8 @@ discard block |
||
85 | 85 | } |
86 | 86 | |
87 | 87 | $session = $this->container->get('session'); |
88 | - $uri = 'https://meta.wikimedia.org/w/index.php?action=raw&ctype=application/json&title=' . |
|
89 | - 'MediaWiki:XTools-AutoEdits.json' . ($useSandbox ? '/sandbox' : ''); |
|
88 | + $uri = 'https://meta.wikimedia.org/w/index.php?action=raw&ctype=application/json&title='. |
|
89 | + 'MediaWiki:XTools-AutoEdits.json'.($useSandbox ? '/sandbox' : ''); |
|
90 | 90 | |
91 | 91 | if ($useSandbox && $session->get('logged_in_user')) { |
92 | 92 | // Request via OAuth to get around server-side caching. |
@@ -149,7 +149,7 @@ discard block |
||
149 | 149 | |
150 | 150 | // Once last walk through for some tidying up and validation. |
151 | 151 | $invalid = []; |
152 | - array_walk($this->tools[$projectDomain], function (&$data, $tool) use (&$invalid): void { |
|
152 | + array_walk($this->tools[$projectDomain], function(&$data, $tool) use (&$invalid): void { |
|
153 | 153 | // Populate the 'label' with the tool name, if a label doesn't already exist. |
154 | 154 | $data['label'] = $data['label'] ?? $tool; |
155 | 155 | |
@@ -233,14 +233,14 @@ discard block |
||
233 | 233 | |
234 | 234 | $revertEntries = array_filter( |
235 | 235 | $this->getTools($project), |
236 | - function ($tool) { |
|
236 | + function($tool) { |
|
237 | 237 | return isset($tool['revert']) && isset($tool['regex']); |
238 | 238 | } |
239 | 239 | ); |
240 | 240 | |
241 | 241 | // If 'revert' is set to `true`, then use 'regex' as the regular expression, |
242 | 242 | // otherwise 'revert' is assumed to be the regex string. |
243 | - $this->revertTools[$projectDomain] = array_map(function ($revertTool) { |
|
243 | + $this->revertTools[$projectDomain] = array_map(function($revertTool) { |
|
244 | 244 | return [ |
245 | 245 | 'link' => $revertTool['link'], |
246 | 246 | 'regex' => true === $revertTool['revert'] ? $revertTool['regex'] : $revertTool['revert'], |
@@ -1,5 +1,5 @@ discard block |
||
1 | 1 | <?php |
2 | -declare(strict_types = 1); |
|
2 | +declare(strict_types=1); |
|
3 | 3 | |
4 | 4 | use Symfony\Component\ErrorHandler\Debug; |
5 | 5 | use Symfony\Component\HttpFoundation\Request; |
@@ -13,7 +13,7 @@ discard block |
||
13 | 13 | // Feel free to remove this, extend it, or make something more sophisticated. |
14 | 14 | if (isset($_SERVER['HTTP_CLIENT_IP']) |
15 | 15 | || isset($_SERVER['HTTP_X_FORWARDED_FOR']) |
16 | - || !( in_array(@$_SERVER['REMOTE_ADDR'], [ '127.0.0.1', 'fe80::1', '::1' ]) || 'cli-server' === php_sapi_name() ) |
|
16 | + || !(in_array(@$_SERVER['REMOTE_ADDR'], ['127.0.0.1', 'fe80::1', '::1']) || 'cli-server' === php_sapi_name()) |
|
17 | 17 | ) { |
18 | 18 | header('HTTP/1.0 403 Forbidden'); |
19 | 19 | exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.'); |
@@ -1,5 +1,5 @@ discard block |
||
1 | 1 | <?php |
2 | -declare(strict_types = 1); |
|
2 | +declare(strict_types=1); |
|
3 | 3 | |
4 | 4 | namespace AppBundle\Model; |
5 | 5 | |
@@ -166,7 +166,7 @@ discard block |
||
166 | 166 | |
167 | 167 | $refs = $crawler->filter('#mw-content-text .reference'); |
168 | 168 | $refContent = []; |
169 | - $refs->each(function ($ref) use (&$refContent): void { |
|
169 | + $refs->each(function($ref) use (&$refContent): void { |
|
170 | 170 | $refContent[] = $ref->text(); |
171 | 171 | }); |
172 | 172 | $uniqueRefs = count(array_unique($refContent)); |
@@ -194,7 +194,7 @@ discard block |
||
194 | 194 | $totalChars = 0; |
195 | 195 | $totalWords = 0; |
196 | 196 | $paragraphs = $crawler->filter($selector); |
197 | - $paragraphs->each(function ($node) use (&$totalChars, &$totalWords): void { |
|
197 | + $paragraphs->each(function($node) use (&$totalChars, &$totalWords): void { |
|
198 | 198 | /** @var Crawler $node */ |
199 | 199 | $text = preg_replace('/\[\d+]/', '', trim($node->text(null, true))); |
200 | 200 | $totalChars += strlen($text); |
@@ -258,7 +258,7 @@ discard block |
||
258 | 258 | $data = [ |
259 | 259 | 'project' => $project->getDomain(), |
260 | 260 | 'page' => $page->getTitle(), |
261 | - 'watchers' => (int) $page->getWatchers(), |
|
261 | + 'watchers' => (int)$page->getWatchers(), |
|
262 | 262 | 'pageviews' => $page->getLastPageviews($pageviewsOffset), |
263 | 263 | 'pageviews_offset' => $pageviewsOffset, |
264 | 264 | ]; |
@@ -283,7 +283,7 @@ discard block |
||
283 | 283 | if (false !== $info) { |
284 | 284 | $creationDateTime = DateTime::createFromFormat('YmdHis', $info['created_at']); |
285 | 285 | $modifiedDateTime = DateTime::createFromFormat('YmdHis', $info['modified_at']); |
286 | - $secsSinceLastEdit = (new DateTime)->getTimestamp() - $modifiedDateTime->getTimestamp(); |
|
286 | + $secsSinceLastEdit = (new DateTime)->getTimestamp()-$modifiedDateTime->getTimestamp(); |
|
287 | 287 | |
288 | 288 | // Some wikis (such foundation.wikimedia.org) may be missing the creation date. |
289 | 289 | $creationDateTime = false === $creationDateTime |
@@ -295,16 +295,16 @@ discard block |
||
295 | 295 | ->getAssessment($page); |
296 | 296 | |
297 | 297 | $data = array_merge($data, [ |
298 | - 'revisions' => (int) $info['num_edits'], |
|
299 | - 'editors' => (int) $info['num_editors'], |
|
300 | - 'minor_edits' => (int) $info['minor_edits'], |
|
298 | + 'revisions' => (int)$info['num_edits'], |
|
299 | + 'editors' => (int)$info['num_editors'], |
|
300 | + 'minor_edits' => (int)$info['minor_edits'], |
|
301 | 301 | 'author' => $info['author'], |
302 | - 'author_editcount' => (int) $info['author_editcount'], |
|
302 | + 'author_editcount' => (int)$info['author_editcount'], |
|
303 | 303 | 'created_at' => $creationDateTime, |
304 | 304 | 'created_rev_id' => $info['created_rev_id'], |
305 | 305 | 'modified_at' => $modifiedDateTime->format('Y-m-d H:i'), |
306 | 306 | 'secs_since_last_edit' => $secsSinceLastEdit, |
307 | - 'last_edit_id' => (int) $info['modified_rev_id'], |
|
307 | + 'last_edit_id' => (int)$info['modified_rev_id'], |
|
308 | 308 | 'assessment' => $assessment, |
309 | 309 | ]); |
310 | 310 | } |
@@ -454,8 +454,8 @@ discard block |
||
454 | 454 | } |
455 | 455 | |
456 | 456 | // Sort by edit count. |
457 | - uasort($this->bots, function ($a, $b) { |
|
458 | - return $b['count'] - $a['count']; |
|
457 | + uasort($this->bots, function($a, $b) { |
|
458 | + return $b['count']-$a['count']; |
|
459 | 459 | }); |
460 | 460 | |
461 | 461 | return $this->bots; |