@@ -72,7 +72,6 @@ discard block |
||
| 72 | 72 | |
| 73 | 73 | /** |
| 74 | 74 | * Get a link to the given user's userpage, or to Special:Contribs if $username is an IP |
| 75 | - * @param string $username Username |
|
| 76 | 75 | * @param string $projectUrl Project domain and protocol such as https://en.wikipedia.org |
| 77 | 76 | * @param string [$label] The link text, defaults to $username |
| 78 | 77 | * @return string Markup |
@@ -176,7 +175,7 @@ discard block |
||
| 176 | 175 | /** |
| 177 | 176 | * Get links to pageviews tools for the given page |
| 178 | 177 | * @param string $title Title of page |
| 179 | - * @param string $projectUrl Project domain such as en.wikipedia.org |
|
| 178 | + * @param string $project Project domain such as en.wikipedia.org |
|
| 180 | 179 | * @return string Markup |
| 181 | 180 | */ |
| 182 | 181 | public function pageviewsLinks($title, $project) |
@@ -14,25 +14,25 @@ discard block |
||
| 14 | 14 | |
| 15 | 15 | public function intuitionMessage($message = "", $vars = []) |
| 16 | 16 | { |
| 17 | - return $this->getIntuition()->msg($message, [ "domain" => "xtools", "variables" => $vars ]); |
|
| 17 | + return $this->getIntuition()->msg($message, ["domain" => "xtools", "variables" => $vars]); |
|
| 18 | 18 | } |
| 19 | 19 | |
| 20 | 20 | /*********************************** FUNCTIONS ***********************************/ |
| 21 | 21 | |
| 22 | 22 | public function getFunctions() |
| 23 | 23 | { |
| 24 | - $options = [ 'is_safe' => [ 'html']]; |
|
| 24 | + $options = ['is_safe' => ['html']]; |
|
| 25 | 25 | return [ |
| 26 | - new Twig_SimpleFunction('wiki_link', [ $this, 'wikiLink' ], $options), |
|
| 27 | - new Twig_SimpleFunction('user_link', [ $this, 'userLink' ], $options), |
|
| 28 | - new Twig_SimpleFunction('user_log_link', [ $this, 'userLogLink' ], $options), |
|
| 29 | - new Twig_SimpleFunction('group_link', [ $this, 'groupLink' ], $options), |
|
| 30 | - new Twig_SimpleFunction('wiki_history_link', [ $this, 'wikiHistoryLink' ], $options), |
|
| 31 | - new Twig_SimpleFunction('wiki_log_link', [ $this, 'wikiLogLink' ], $options), |
|
| 32 | - new Twig_SimpleFunction('pageviews_links', [ $this, 'pageviewsLinks' ], $options), |
|
| 33 | - new Twig_SimpleFunction('diff_link', [ $this, 'diffLink' ], $options), |
|
| 34 | - new Twig_SimpleFunction('perma_link', [ $this, 'permaLink' ], $options), |
|
| 35 | - new Twig_SimpleFunction('edit_link', [ $this, 'editLink' ], $options), |
|
| 26 | + new Twig_SimpleFunction('wiki_link', [$this, 'wikiLink'], $options), |
|
| 27 | + new Twig_SimpleFunction('user_link', [$this, 'userLink'], $options), |
|
| 28 | + new Twig_SimpleFunction('user_log_link', [$this, 'userLogLink'], $options), |
|
| 29 | + new Twig_SimpleFunction('group_link', [$this, 'groupLink'], $options), |
|
| 30 | + new Twig_SimpleFunction('wiki_history_link', [$this, 'wikiHistoryLink'], $options), |
|
| 31 | + new Twig_SimpleFunction('wiki_log_link', [$this, 'wikiLogLink'], $options), |
|
| 32 | + new Twig_SimpleFunction('pageviews_links', [$this, 'pageviewsLinks'], $options), |
|
| 33 | + new Twig_SimpleFunction('diff_link', [$this, 'diffLink'], $options), |
|
| 34 | + new Twig_SimpleFunction('perma_link', [$this, 'permaLink'], $options), |
|
| 35 | + new Twig_SimpleFunction('edit_link', [$this, 'editLink'], $options), |
|
| 36 | 36 | ]; |
| 37 | 37 | } |
| 38 | 38 | |
@@ -244,8 +244,8 @@ discard block |
||
| 244 | 244 | public function getFilters() |
| 245 | 245 | { |
| 246 | 246 | return [ |
| 247 | - new \Twig_SimpleFilter('diff_format', [ $this, 'diffFormat' ], [ 'is_safe' => [ 'html' ] ]), |
|
| 248 | - new \Twig_SimpleFilter('wikify_comment', [ $this, 'wikifyComment' ], [ 'is_safe' => [ 'html' ] ]), |
|
| 247 | + new \Twig_SimpleFilter('diff_format', [$this, 'diffFormat'], ['is_safe' => ['html']]), |
|
| 248 | + new \Twig_SimpleFilter('wikify_comment', [$this, 'wikifyComment'], ['is_safe' => ['html']]), |
|
| 249 | 249 | ]; |
| 250 | 250 | } |
| 251 | 251 | |
@@ -284,7 +284,7 @@ discard block |
||
| 284 | 284 | if ($isSection) { |
| 285 | 285 | $sectionTitle = $sectionMatch[1][0]; |
| 286 | 286 | $sectionTitleLink = str_replace(' ', '_', $sectionTitle); |
| 287 | - $sectionWikitext = "<a target='_blank' href='$projectUrl/wiki/$title#$sectionTitleLink'>→</a>" . |
|
| 287 | + $sectionWikitext = "<a target='_blank' href='$projectUrl/wiki/$title#$sectionTitleLink'>→</a>". |
|
| 288 | 288 | "<em class='text-muted'>$sectionTitle:</em> "; |
| 289 | 289 | $wikitext = str_replace($sectionMatch[0][0], $sectionWikitext, $wikitext); |
| 290 | 290 | } |
@@ -176,7 +176,7 @@ |
||
| 176 | 176 | |
| 177 | 177 | // Iterate over query results, loading each user id into the array |
| 178 | 178 | while ($row = $res->fetch()) { |
| 179 | - $adminIdArr[] = $row["user_id"] ; |
|
| 179 | + $adminIdArr[] = $row["user_id"]; |
|
| 180 | 180 | } |
| 181 | 181 | |
| 182 | 182 | // Set the query results to be useful in a sql statement. |
@@ -2,7 +2,6 @@ |
||
| 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; |
@@ -39,7 +39,7 @@ discard block |
||
| 39 | 39 | $apiPath = $this->container->getParameter('api_path'); |
| 40 | 40 | |
| 41 | 41 | try { |
| 42 | - $this->api = MediawikiApi::newFromApiEndpoint($normalizedProject . $apiPath); |
|
| 42 | + $this->api = MediawikiApi::newFromApiEndpoint($normalizedProject.$apiPath); |
|
| 43 | 43 | } catch (Exception $e) { |
| 44 | 44 | // Do nothing... |
| 45 | 45 | } catch (FatalErrorException $e) { |
@@ -68,13 +68,13 @@ discard block |
||
| 68 | 68 | throw new Exception("Unable to find project '$project'"); |
| 69 | 69 | } |
| 70 | 70 | |
| 71 | - $cacheKey = "siteinfo." . str_replace('/', '_', $normalizedProject); |
|
| 71 | + $cacheKey = "siteinfo.".str_replace('/', '_', $normalizedProject); |
|
| 72 | 72 | if ($this->cacheHas($cacheKey)) { |
| 73 | 73 | return $this->cacheGet($cacheKey); |
| 74 | 74 | } |
| 75 | 75 | |
| 76 | 76 | $this->setUp($normalizedProject); |
| 77 | - $params = [ 'meta'=>'siteinfo', 'siprop'=>'general|namespaces' ]; |
|
| 77 | + $params = ['meta'=>'siteinfo', 'siprop'=>'general|namespaces']; |
|
| 78 | 78 | $query = new SimpleRequest('query', $params); |
| 79 | 79 | |
| 80 | 80 | $result = [ |
@@ -138,7 +138,7 @@ discard block |
||
| 138 | 138 | public function groups($project, $username) |
| 139 | 139 | { |
| 140 | 140 | $this->setUp($project); |
| 141 | - $params = [ "list"=>"users", "ususers"=>$username, "usprop"=>"groups" ]; |
|
| 141 | + $params = ["list"=>"users", "ususers"=>$username, "usprop"=>"groups"]; |
|
| 142 | 142 | $query = new SimpleRequest('query', $params); |
| 143 | 143 | $result = []; |
| 144 | 144 | |
@@ -157,7 +157,7 @@ discard block |
||
| 157 | 157 | public function globalGroups($project, $username) |
| 158 | 158 | { |
| 159 | 159 | $this->setUp($project); |
| 160 | - $params = [ "meta"=>"globaluserinfo", "guiuser"=>$username, "guiprop"=>"groups" ]; |
|
| 160 | + $params = ["meta"=>"globaluserinfo", "guiuser"=>$username, "guiprop"=>"groups"]; |
|
| 161 | 161 | $query = new SimpleRequest('query', $params); |
| 162 | 162 | $result = []; |
| 163 | 163 | |
@@ -205,7 +205,7 @@ discard block |
||
| 205 | 205 | $groups[] = "B"; |
| 206 | 206 | } |
| 207 | 207 | if (in_array("steward", $admin["groups"])) { |
| 208 | - $groups[] = "S" ; |
|
| 208 | + $groups[] = "S"; |
|
| 209 | 209 | } |
| 210 | 210 | if (in_array("checkuser", $admin["groups"])) { |
| 211 | 211 | $groups[] = "CU"; |
@@ -216,7 +216,7 @@ discard block |
||
| 216 | 216 | if (in_array("bot", $admin["groups"])) { |
| 217 | 217 | $groups[] = "Bot"; |
| 218 | 218 | } |
| 219 | - $result[ $admin["name"] ] = [ |
|
| 219 | + $result[$admin["name"]] = [ |
|
| 220 | 220 | "groups" => implode('/', $groups) |
| 221 | 221 | ]; |
| 222 | 222 | } |
@@ -291,7 +291,7 @@ discard block |
||
| 291 | 291 | $normalized = []; |
| 292 | 292 | if (isset($result['query']['normalized'])) { |
| 293 | 293 | array_map( |
| 294 | - function ($e) use (&$normalized) { |
|
| 294 | + function($e) use (&$normalized) { |
|
| 295 | 295 | $normalized[$e['to']] = $e['from']; |
| 296 | 296 | }, |
| 297 | 297 | $result['query']['normalized'] |
@@ -337,7 +337,7 @@ discard block |
||
| 337 | 337 | ]; |
| 338 | 338 | |
| 339 | 339 | // get assessments for this page from the API |
| 340 | - $assessments = $this->massApi($params, $project, function ($data) { |
|
| 340 | + $assessments = $this->massApi($params, $project, function($data) { |
|
| 341 | 341 | return isset($data['pages'][0]['pageassessments']) ? $data['pages'][0]['pageassessments'] : []; |
| 342 | 342 | }, 'pacontinue')['pages']; |
| 343 | 343 | |
@@ -361,7 +361,7 @@ discard block |
||
| 361 | 361 | $classAttrs = $config['class']['Unknown']; |
| 362 | 362 | $assessment['class']['value'] = '???'; |
| 363 | 363 | $assessment['class']['category'] = $classAttrs['category']; |
| 364 | - $assessment['class']['badge'] = "https://upload.wikimedia.org/wikipedia/commons/". $classAttrs['badge']; |
|
| 364 | + $assessment['class']['badge'] = "https://upload.wikimedia.org/wikipedia/commons/".$classAttrs['badge']; |
|
| 365 | 365 | } else { |
| 366 | 366 | $classAttrs = $config['class'][$classValue]; |
| 367 | 367 | $assessment['class'] = [ |
@@ -372,7 +372,7 @@ discard block |
||
| 372 | 372 | |
| 373 | 373 | // add full URL to badge icon |
| 374 | 374 | if ($classAttrs['badge'] !== '') { |
| 375 | - $assessment['class']['badge'] = "https://upload.wikimedia.org/wikipedia/commons/" . |
|
| 375 | + $assessment['class']['badge'] = "https://upload.wikimedia.org/wikipedia/commons/". |
|
| 376 | 376 | $classAttrs['badge']; |
| 377 | 377 | } |
| 378 | 378 | |
@@ -421,9 +421,9 @@ discard block |
||
| 421 | 421 | $config = $this->getAssessmentsConfig(); |
| 422 | 422 | |
| 423 | 423 | if (isset($config[$project]['class'][$class])) { |
| 424 | - return "https://upload.wikimedia.org/wikipedia/commons/" . $config[$project]['class'][$class]['badge']; |
|
| 424 | + return "https://upload.wikimedia.org/wikipedia/commons/".$config[$project]['class'][$class]['badge']; |
|
| 425 | 425 | } elseif (isset($config[$project]['class']['Unknown'])) { |
| 426 | - return "https://upload.wikimedia.org/wikipedia/commons/" . $config[$project]['class']['Unknown']['badge']; |
|
| 426 | + return "https://upload.wikimedia.org/wikipedia/commons/".$config[$project]['class']['Unknown']['badge']; |
|
| 427 | 427 | } else { |
| 428 | 428 | return ""; |
| 429 | 429 | } |
@@ -516,7 +516,7 @@ discard block |
||
| 516 | 516 | $query = FluentRequest::factory()->setAction('query')->setParams($requestData); |
| 517 | 517 | $innerPromise = $this->api->getRequestAsync($query); |
| 518 | 518 | |
| 519 | - $innerPromise->then(function ($result) use (&$data) { |
|
| 519 | + $innerPromise->then(function($result) use (&$data) { |
|
| 520 | 520 | // some failures come back as 200s, so we still resolve and let the outer function handle it |
| 521 | 521 | if (isset($result['error']) || !isset($result['query'])) { |
| 522 | 522 | return $data['promise']->resolve($data); |
@@ -177,7 +177,7 @@ |
||
| 177 | 177 | * Get a list of namespaces on the given project. |
| 178 | 178 | * |
| 179 | 179 | * @param string $project such as en.wikipedia.org |
| 180 | - * @return string[] Array of namespace IDs (keys) to names (values). |
|
| 180 | + * @return string Array of namespace IDs (keys) to names (values). |
|
| 181 | 181 | */ |
| 182 | 182 | public function namespaces($project) |
| 183 | 183 | { |
@@ -4,7 +4,6 @@ |
||
| 4 | 4 | |
| 5 | 5 | use Symfony\Bundle\FrameworkBundle\Controller\Controller; |
| 6 | 6 | use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; |
| 7 | -use Symfony\Component\Debug\Exception\ContextErrorException; |
|
| 8 | 7 | use Symfony\Component\Routing\Exception\InvalidParameterException; |
| 9 | 8 | use Symfony\Component\HttpFoundation\Request; |
| 10 | 9 | |
@@ -111,7 +111,7 @@ discard block |
||
| 111 | 111 | 'quote/all.html.twig', |
| 112 | 112 | [ |
| 113 | 113 | 'base_dir' => realpath( |
| 114 | - $this->getParameter('kernel.root_dir') . '/..' |
|
| 114 | + $this->getParameter('kernel.root_dir').'/..' |
|
| 115 | 115 | ), |
| 116 | 116 | 'xtPage' => 'bash', |
| 117 | 117 | 'quotes' => $quotes, |
@@ -160,7 +160,7 @@ discard block |
||
| 160 | 160 | 'quote/view.html.twig', |
| 161 | 161 | [ |
| 162 | 162 | 'base_dir' => realpath( |
| 163 | - $this->getParameter('kernel.root_dir') . '/..' |
|
| 163 | + $this->getParameter('kernel.root_dir').'/..' |
|
| 164 | 164 | ), |
| 165 | 165 | "xtPage" => "bash", |
| 166 | 166 | "text" => $text, |
@@ -5,7 +5,6 @@ |
||
| 5 | 5 | use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; |
| 6 | 6 | use Symfony\Bundle\FrameworkBundle\Controller\Controller; |
| 7 | 7 | use Symfony\Component\HttpFoundation\Request; |
| 8 | -use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; |
|
| 9 | 8 | |
| 10 | 9 | class AutomatedEditsController extends Controller |
| 11 | 10 | { |
@@ -155,7 +155,7 @@ |
||
| 155 | 155 | $archiveTable = $lh->getTable("archive", $dbName); |
| 156 | 156 | |
| 157 | 157 | $cond_begin = $start ? " AND rev_timestamp > :start " : null; |
| 158 | - $cond_end = $end ? " AND rev_timestamp < :end ": null; |
|
| 158 | + $cond_end = $end ? " AND rev_timestamp < :end " : null; |
|
| 159 | 159 | |
| 160 | 160 | foreach ($AEBTypes as $toolname => $check) { |
| 161 | 161 | $toolname = $dbh->quote($toolname, \PDO::PARAM_STR); |
@@ -71,7 +71,7 @@ discard block |
||
| 71 | 71 | $this->dbName = $dbName; |
| 72 | 72 | $this->url = $url; |
| 73 | 73 | |
| 74 | - return [ 'dbName' => $dbName, 'wikiName' => $wikiName, 'url' => $url, 'lang' => $lang ]; |
|
| 74 | + return ['dbName' => $dbName, 'wikiName' => $wikiName, 'url' => $url, 'lang' => $lang]; |
|
| 75 | 75 | } |
| 76 | 76 | |
| 77 | 77 | /** |
@@ -99,7 +99,7 @@ discard block |
||
| 99 | 99 | // Create the query we're going to run against the meta database |
| 100 | 100 | $wikiQuery = $this->client->createQueryBuilder(); |
| 101 | 101 | $wikiQuery |
| 102 | - ->select([ 'dbname', 'name', 'url', 'lang' ]) |
|
| 102 | + ->select(['dbname', 'name', 'url', 'lang']) |
|
| 103 | 103 | ->from('wiki') |
| 104 | 104 | ->where($wikiQuery->expr()->eq('dbname', ':project')) |
| 105 | 105 | // The meta database will have the project's URL stored as https://en.wikipedia.org |
@@ -149,7 +149,7 @@ discard block |
||
| 149 | 149 | public function allProjects() |
| 150 | 150 | { |
| 151 | 151 | $wikiQuery = $this->client->createQueryBuilder(); |
| 152 | - $wikiQuery->select([ 'dbName', 'name', 'url' ])->from('wiki'); |
|
| 152 | + $wikiQuery->select(['dbName', 'name', 'url'])->from('wiki'); |
|
| 153 | 153 | $stmt = $wikiQuery->execute(); |
| 154 | 154 | $out = $stmt->fetchAll(); |
| 155 | 155 | return $out; |
@@ -14,6 +14,9 @@ |
||
| 14 | 14 | /** @var string[] Basic metadata about the project */ |
| 15 | 15 | protected $metadata; |
| 16 | 16 | |
| 17 | + /** |
|
| 18 | + * @param string $nameOrUrl |
|
| 19 | + */ |
|
| 17 | 20 | public function __construct($nameOrUrl) |
| 18 | 21 | { |
| 19 | 22 | $this->nameUnnormalized = $nameOrUrl; |
@@ -55,7 +55,7 @@ |
||
| 55 | 55 | */ |
| 56 | 56 | public function getUrl() |
| 57 | 57 | { |
| 58 | - return rtrim($this->getMetadata()['url'], '/') . '/'; |
|
| 58 | + return rtrim($this->getMetadata()['url'], '/').'/'; |
|
| 59 | 59 | } |
| 60 | 60 | |
| 61 | 61 | /** |
@@ -52,7 +52,7 @@ discard block |
||
| 52 | 52 | |
| 53 | 53 | /** |
| 54 | 54 | * Get this page's database ID. |
| 55 | - * @return int |
|
| 55 | + * @return \string|null |
|
| 56 | 56 | */ |
| 57 | 57 | public function getId() |
| 58 | 58 | { |
@@ -75,7 +75,7 @@ discard block |
||
| 75 | 75 | } |
| 76 | 76 | |
| 77 | 77 | /** |
| 78 | - * @return string |
|
| 78 | + * @return \string|null |
|
| 79 | 79 | */ |
| 80 | 80 | public function getUrl() |
| 81 | 81 | { |
@@ -2,12 +2,7 @@ |
||
| 2 | 2 | |
| 3 | 3 | namespace AppBundle\Helper; |
| 4 | 4 | |
| 5 | -use Doctrine\DBAL\Connection; |
|
| 6 | -use Psr\Cache\CacheItemPoolInterface; |
|
| 7 | -use Symfony\Component\Config\Definition\Exception\Exception; |
|
| 8 | -use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; |
|
| 9 | 5 | use Symfony\Component\DependencyInjection\ContainerInterface; |
| 10 | -use Symfony\Component\VarDumper\VarDumper; |
|
| 11 | 6 | |
| 12 | 7 | class AutomatedEditsHelper extends HelperBase |
| 13 | 8 | { |