@@ -1,4 +1,4 @@ discard block |
||
1 | -<?php declare( strict_types=1 ); |
|
1 | +<?php declare(strict_types=1); |
|
2 | 2 | |
3 | 3 | namespace BotRiconferme\Utils; |
4 | 4 | |
@@ -10,13 +10,13 @@ discard block |
||
10 | 10 | * @param IRegexable ...$elements |
11 | 11 | * @return string |
12 | 12 | */ |
13 | - public static function regexFromArray( |
|
13 | + public static function regexFromArray ( |
|
14 | 14 | string $delimiter = '/', |
15 | 15 | IRegexable ...$elements |
16 | 16 | ): string { |
17 | - $bits = []; |
|
17 | + $bits = [ ]; |
|
18 | 18 | foreach ( $elements as $el ) { |
19 | - $bits[] = $el->getRegex( $delimiter ); |
|
19 | + $bits[ ] = $el->getRegex( $delimiter ); |
|
20 | 20 | } |
21 | 21 | return '(?:' . implode( '|', $bits ) . ')'; |
22 | 22 | } |
@@ -1,4 +1,4 @@ discard block |
||
1 | -<?php declare( strict_types=1 ); |
|
1 | +<?php declare(strict_types=1); |
|
2 | 2 | |
3 | 3 | namespace BotRiconferme\Wiki; |
4 | 4 | |
@@ -15,7 +15,7 @@ discard block |
||
15 | 15 | * @param string $username |
16 | 16 | * @param string $password |
17 | 17 | */ |
18 | - public function __construct( string $username, string $password ) { |
|
18 | + public function __construct ( string $username, string $password ) { |
|
19 | 19 | $this->username = $username; |
20 | 20 | $this->password = $password; |
21 | 21 | } |
@@ -23,14 +23,14 @@ discard block |
||
23 | 23 | /** |
24 | 24 | * @return string |
25 | 25 | */ |
26 | - public function getUsername(): string { |
|
26 | + public function getUsername (): string { |
|
27 | 27 | return $this->username; |
28 | 28 | } |
29 | 29 | |
30 | 30 | /** |
31 | 31 | * @return string |
32 | 32 | */ |
33 | - public function getPassword(): string { |
|
33 | + public function getPassword (): string { |
|
34 | 34 | return $this->password; |
35 | 35 | } |
36 | 36 | } |
@@ -1,4 +1,4 @@ discard block |
||
1 | -<?php declare( strict_types=1 ); |
|
1 | +<?php declare(strict_types=1); |
|
2 | 2 | |
3 | 3 | namespace BotRiconferme\Wiki; |
4 | 4 | |
@@ -18,7 +18,7 @@ discard block |
||
18 | 18 | * @param Wiki $centralWiki |
19 | 19 | * @param Wiki $privateWiki |
20 | 20 | */ |
21 | - public function __construct( Wiki $mainWiki, Wiki $centralWiki, Wiki $privateWiki ) { |
|
21 | + public function __construct ( Wiki $mainWiki, Wiki $centralWiki, Wiki $privateWiki ) { |
|
22 | 22 | $this->mainWiki = $mainWiki; |
23 | 23 | $this->centralWiki = $centralWiki; |
24 | 24 | $this->privateWiki = $privateWiki; |
@@ -27,21 +27,21 @@ discard block |
||
27 | 27 | /** |
28 | 28 | * @return Wiki |
29 | 29 | */ |
30 | - public function getMainWiki(): Wiki { |
|
30 | + public function getMainWiki (): Wiki { |
|
31 | 31 | return $this->mainWiki; |
32 | 32 | } |
33 | 33 | |
34 | 34 | /** |
35 | 35 | * @return Wiki |
36 | 36 | */ |
37 | - public function getCentralWiki(): Wiki { |
|
37 | + public function getCentralWiki (): Wiki { |
|
38 | 38 | return $this->centralWiki; |
39 | 39 | } |
40 | 40 | |
41 | 41 | /** |
42 | 42 | * @return Wiki |
43 | 43 | */ |
44 | - public function getPrivateWiki(): Wiki { |
|
44 | + public function getPrivateWiki (): Wiki { |
|
45 | 45 | return $this->privateWiki; |
46 | 46 | } |
47 | 47 | } |
@@ -1,4 +1,4 @@ discard block |
||
1 | -<?php declare( strict_types=1 ); |
|
1 | +<?php declare(strict_types=1); |
|
2 | 2 | |
3 | 3 | namespace BotRiconferme\Wiki; |
4 | 4 | |
@@ -23,7 +23,7 @@ discard block |
||
23 | 23 | * @param UserInfo $ui |
24 | 24 | * @param Wiki $wiki |
25 | 25 | */ |
26 | - public function __construct( UserInfo $ui, Wiki $wiki ) { |
|
26 | + public function __construct ( UserInfo $ui, Wiki $wiki ) { |
|
27 | 27 | $this->wiki = $wiki; |
28 | 28 | $this->name = $ui->getName(); |
29 | 29 | $this->ui = $ui; |
@@ -32,7 +32,7 @@ discard block |
||
32 | 32 | /** |
33 | 33 | * @return string |
34 | 34 | */ |
35 | - public function getName(): string { |
|
35 | + public function getName (): string { |
|
36 | 36 | return $this->name; |
37 | 37 | } |
38 | 38 | |
@@ -41,7 +41,7 @@ discard block |
||
41 | 41 | * |
42 | 42 | * @return string[] |
43 | 43 | */ |
44 | - public function getGroups(): array { |
|
44 | + public function getGroups (): array { |
|
45 | 45 | return $this->ui->extractGroups(); |
46 | 46 | } |
47 | 47 | |
@@ -50,7 +50,7 @@ discard block |
||
50 | 50 | * |
51 | 51 | * @return string[] [ group => date ] |
52 | 52 | */ |
53 | - public function getGroupsWithDates(): array { |
|
53 | + public function getGroupsWithDates (): array { |
|
54 | 54 | return $this->ui->extractGroupsWithDates(); |
55 | 55 | } |
56 | 56 | |
@@ -60,7 +60,7 @@ discard block |
||
60 | 60 | * @param string $groupName |
61 | 61 | * @return bool |
62 | 62 | */ |
63 | - public function inGroup( string $groupName ): bool { |
|
63 | + public function inGroup ( string $groupName ): bool { |
|
64 | 64 | return in_array( $groupName, $this->getGroups(), true ); |
65 | 65 | } |
66 | 66 | |
@@ -69,9 +69,9 @@ discard block |
||
69 | 69 | * |
70 | 70 | * @inheritDoc |
71 | 71 | */ |
72 | - public function getRegex( string $delimiter = '/' ): string { |
|
72 | + public function getRegex ( string $delimiter = '/' ): string { |
|
73 | 73 | $bits = $this->getAliases(); |
74 | - $bits[] = $this->name; |
|
74 | + $bits[ ] = $this->name; |
|
75 | 75 | $regexify = static function ( string $el ) use ( $delimiter ): string { |
76 | 76 | return str_replace( ' ', '[ _]', preg_quote( $el, $delimiter ) ); |
77 | 77 | }; |
@@ -83,14 +83,14 @@ discard block |
||
83 | 83 | * |
84 | 84 | * @return string[] |
85 | 85 | */ |
86 | - public function getAliases(): array { |
|
86 | + public function getAliases (): array { |
|
87 | 87 | return $this->ui->getAliases(); |
88 | 88 | } |
89 | 89 | |
90 | 90 | /** |
91 | 91 | * @return Page |
92 | 92 | */ |
93 | - public function getTalkPage(): Page { |
|
93 | + public function getTalkPage (): Page { |
|
94 | 94 | return new Page( "User talk:{$this->name}", $this->wiki ); |
95 | 95 | } |
96 | 96 | |
@@ -98,7 +98,7 @@ discard block |
||
98 | 98 | * Get the default base page, e.g. WP:A/Riconferma annuale/XXX |
99 | 99 | * @return Page |
100 | 100 | */ |
101 | - public function getBasePage(): Page { |
|
101 | + public function getBasePage (): Page { |
|
102 | 102 | $prefix = Config::getInstance()->get( 'main-page-title' ); |
103 | 103 | return new Page( "$prefix/$this", $this->wiki ); |
104 | 104 | } |
@@ -110,7 +110,7 @@ discard block |
||
110 | 110 | * @throws MissingPageException |
111 | 111 | * @return Page |
112 | 112 | */ |
113 | - public function getExistingBasePage(): Page { |
|
113 | + public function getExistingBasePage (): Page { |
|
114 | 114 | $basePage = $this->getBasePage(); |
115 | 115 | if ( !$basePage->exists() ) { |
116 | 116 | $basePage = null; |
@@ -134,7 +134,7 @@ discard block |
||
134 | 134 | /** |
135 | 135 | * @return string |
136 | 136 | */ |
137 | - public function __toString(): string { |
|
137 | + public function __toString (): string { |
|
138 | 138 | return $this->name; |
139 | 139 | } |
140 | 140 | } |
@@ -1,4 +1,4 @@ discard block |
||
1 | -<?php declare( strict_types=1 ); |
|
1 | +<?php declare(strict_types=1); |
|
2 | 2 | |
3 | 3 | namespace BotRiconferme\Wiki\Page; |
4 | 4 | |
@@ -20,7 +20,7 @@ discard block |
||
20 | 20 | * @param string $listTitle |
21 | 21 | * @param Wiki $wiki |
22 | 22 | */ |
23 | - private function __construct( string $listTitle, Wiki $wiki ) { |
|
23 | + private function __construct ( string $listTitle, Wiki $wiki ) { |
|
24 | 24 | parent::__construct( $listTitle, $wiki ); |
25 | 25 | } |
26 | 26 | |
@@ -31,7 +31,7 @@ discard block |
||
31 | 31 | * @param string $listTitle |
32 | 32 | * @return self |
33 | 33 | */ |
34 | - public static function get( Wiki $wiki, string $listTitle ): self { |
|
34 | + public static function get ( Wiki $wiki, string $listTitle ): self { |
|
35 | 35 | static $instance = null; |
36 | 36 | if ( $instance === null ) { |
37 | 37 | $instance = new self( $listTitle, $wiki ); |
@@ -43,7 +43,7 @@ discard block |
||
43 | 43 | * @param UserInfo $ui |
44 | 44 | * @return int|null |
45 | 45 | */ |
46 | - public function getOverrideTimestamp( UserInfo $ui ): ?int { |
|
46 | + public function getOverrideTimestamp ( UserInfo $ui ): ?int { |
|
47 | 47 | $info = $ui->getInfo(); |
48 | 48 | if ( !array_intersect_key( $info, [ 'override-perm' => true, 'override' => true ] ) ) { |
49 | 49 | return null; |
@@ -51,9 +51,9 @@ discard block |
||
51 | 51 | |
52 | 52 | // A one-time override takes precedence |
53 | 53 | if ( array_key_exists( 'override', $info ) ) { |
54 | - $date = $info['override']; |
|
54 | + $date = $info[ 'override' ]; |
|
55 | 55 | } else { |
56 | - $date = $info['override-prem'] . '/' . date( 'Y' ); |
|
56 | + $date = $info[ 'override-prem' ] . '/' . date( 'Y' ); |
|
57 | 57 | } |
58 | 58 | return DateTime::createFromFormat( 'd/m/Y', $date )->getTimestamp(); |
59 | 59 | } |
@@ -65,18 +65,18 @@ discard block |
||
65 | 65 | * @return int |
66 | 66 | * @suppress PhanPluginComparisonObjectOrdering DateTime objects can be compared (phan issue #2907) |
67 | 67 | */ |
68 | - public function getNextTimestamp( string $user ): int { |
|
68 | + public function getNextTimestamp ( string $user ): int { |
|
69 | 69 | $userInfo = $this->getUserInfo( $user )->getInfo(); |
70 | 70 | $now = new DateTime(); |
71 | - if ( isset( $userInfo['override-perm'] ) ) { |
|
71 | + if ( isset( $userInfo[ 'override-perm' ] ) ) { |
|
72 | 72 | $date = DateTime::createFromFormat( |
73 | 73 | 'd/m/Y', |
74 | - $userInfo['override-perm'] . '/' . date( 'Y' ) |
|
74 | + $userInfo[ 'override-perm' ] . '/' . date( 'Y' ) |
|
75 | 75 | ); |
76 | 76 | } else { |
77 | 77 | $date = null; |
78 | - if ( isset( $userInfo['override'] ) ) { |
|
79 | - $date = DateTime::createFromFormat( 'd/m/Y', $userInfo['override'] ); |
|
78 | + if ( isset( $userInfo[ 'override' ] ) ) { |
|
79 | + $date = DateTime::createFromFormat( 'd/m/Y', $userInfo[ 'override' ] ); |
|
80 | 80 | } |
81 | 81 | if ( !$date || $date <= $now ) { |
82 | 82 | $ts = self::getValidFlagTimestamp( $userInfo ); |
@@ -97,17 +97,15 @@ discard block |
||
97 | 97 | * @param string[] $groups |
98 | 98 | * @return int |
99 | 99 | */ |
100 | - public static function getValidFlagTimestamp( array $groups ): int { |
|
101 | - $checkuser = isset( $groups['checkuser'] ) ? |
|
102 | - DateTime::createFromFormat( 'd/m/Y', $groups['checkuser'] )->getTimestamp() : |
|
103 | - 0; |
|
104 | - $bureaucrat = isset( $groups['bureaucrat'] ) ? |
|
105 | - DateTime::createFromFormat( 'd/m/Y', $groups['bureaucrat'] )->getTimestamp() : |
|
106 | - 0; |
|
100 | + public static function getValidFlagTimestamp ( array $groups ): int { |
|
101 | + $checkuser = isset( $groups[ 'checkuser' ] ) ? |
|
102 | + DateTime::createFromFormat( 'd/m/Y', $groups[ 'checkuser' ] )->getTimestamp() : 0; |
|
103 | + $bureaucrat = isset( $groups[ 'bureaucrat' ] ) ? |
|
104 | + DateTime::createFromFormat( 'd/m/Y', $groups[ 'bureaucrat' ] )->getTimestamp() : 0; |
|
107 | 105 | |
108 | 106 | $timestamp = max( $bureaucrat, $checkuser ); |
109 | 107 | if ( $timestamp === 0 ) { |
110 | - $timestamp = DateTime::createFromFormat( 'd/m/Y', $groups['sysop'] )->getTimestamp(); |
|
108 | + $timestamp = DateTime::createFromFormat( 'd/m/Y', $groups[ 'sysop' ] )->getTimestamp(); |
|
111 | 109 | } |
112 | 110 | return $timestamp; |
113 | 111 | } |
@@ -121,14 +119,14 @@ discard block |
||
121 | 119 | * @param string[] $groups |
122 | 120 | * @return bool |
123 | 121 | */ |
124 | - public static function isOverrideExpired( array $groups ): bool { |
|
125 | - if ( !isset( $groups['override'] ) ) { |
|
122 | + public static function isOverrideExpired ( array $groups ): bool { |
|
123 | + if ( !isset( $groups[ 'override' ] ) ) { |
|
126 | 124 | return false; |
127 | 125 | } |
128 | 126 | |
129 | 127 | $flagTS = self::getValidFlagTimestamp( $groups ); |
130 | 128 | $usualTS = strtotime( date( 'Y' ) . '-' . date( 'm-d', $flagTS ) ); |
131 | - $overrideTS = DateTime::createFromFormat( 'd/m/Y', $groups['override'] )->getTimestamp(); |
|
129 | + $overrideTS = DateTime::createFromFormat( 'd/m/Y', $groups[ 'override' ] )->getTimestamp(); |
|
132 | 130 | $delay = 60 * 60 * 24 * 3; |
133 | 131 | |
134 | 132 | return time() > $usualTS + $delay && time() > $overrideTS + $delay; |
@@ -139,9 +137,9 @@ discard block |
||
139 | 137 | * |
140 | 138 | * @return UserInfo[] |
141 | 139 | */ |
142 | - public function getAdminsList(): array { |
|
140 | + public function getAdminsList (): array { |
|
143 | 141 | if ( $this->adminsList === null ) { |
144 | - $this->adminsList = []; |
|
142 | + $this->adminsList = [ ]; |
|
145 | 143 | foreach ( $this->getDecodedContent() as $user => $info ) { |
146 | 144 | $this->adminsList[ $user ] = new UserInfo( $user, $info ); |
147 | 145 | } |
@@ -153,8 +151,8 @@ discard block |
||
153 | 151 | * @param string $user |
154 | 152 | * @return UserInfo |
155 | 153 | */ |
156 | - public function getUserInfo( string $user ): UserInfo { |
|
157 | - return $this->getAdminsList()[$user]; |
|
154 | + public function getUserInfo ( string $user ): UserInfo { |
|
155 | + return $this->getAdminsList()[ $user ]; |
|
158 | 156 | } |
159 | 157 | |
160 | 158 | /** |
@@ -162,7 +160,7 @@ discard block |
||
162 | 160 | * |
163 | 161 | * @return string[][] |
164 | 162 | */ |
165 | - public function getDecodedContent(): array { |
|
163 | + public function getDecodedContent (): array { |
|
166 | 164 | return json_decode( $this->getContent(), true ); |
167 | 165 | } |
168 | 166 | } |
@@ -1,4 +1,4 @@ discard block |
||
1 | -<?php declare( strict_types=1 ); |
|
1 | +<?php declare(strict_types=1); |
|
2 | 2 | |
3 | 3 | namespace BotRiconferme\Wiki\Page; |
4 | 4 | |
@@ -16,7 +16,7 @@ discard block |
||
16 | 16 | /** @var int|null */ |
17 | 17 | private $opposeSection; |
18 | 18 | /** @var int[] Counts of votes for each section */ |
19 | - private $sectionCounts = []; |
|
19 | + private $sectionCounts = [ ]; |
|
20 | 20 | |
21 | 21 | // Possible outcomes of a vote |
22 | 22 | public const OUTCOME_OK = 0; |
@@ -35,7 +35,7 @@ discard block |
||
35 | 35 | * because they can vary depending on whether the page is a vote, which is relatively |
36 | 36 | * expensive to know since it requires parsing the content of the page. |
37 | 37 | */ |
38 | - private function defineSections(): void { |
|
38 | + private function defineSections (): void { |
|
39 | 39 | $this->supportSection = $this->isVote() ? 3 : 0; |
40 | 40 | $this->opposeSection = $this->isVote() ? 4 : 3; |
41 | 41 | } |
@@ -45,8 +45,8 @@ discard block |
||
45 | 45 | * |
46 | 46 | * @return string |
47 | 47 | */ |
48 | - public function getUserName(): string { |
|
49 | - return explode( '/', $this->title )[2]; |
|
48 | + public function getUserName (): string { |
|
49 | + return explode( '/', $this->title )[ 2 ]; |
|
50 | 50 | } |
51 | 51 | |
52 | 52 | /** |
@@ -54,7 +54,7 @@ discard block |
||
54 | 54 | * |
55 | 55 | * @return int |
56 | 56 | */ |
57 | - public function getNum(): int { |
|
57 | + public function getNum (): int { |
|
58 | 58 | $bits = explode( '/', $this->getTitle() ); |
59 | 59 | return (int)end( $bits ); |
60 | 60 | } |
@@ -64,8 +64,8 @@ discard block |
||
64 | 64 | * |
65 | 65 | * @return string |
66 | 66 | */ |
67 | - public function getUserNum(): string { |
|
68 | - return explode( '/', $this->getTitle(), 3 )[2]; |
|
67 | + public function getUserNum (): string { |
|
68 | + return explode( '/', $this->getTitle(), 3 )[ 2 ]; |
|
69 | 69 | } |
70 | 70 | |
71 | 71 | /** |
@@ -73,7 +73,7 @@ discard block |
||
73 | 73 | * |
74 | 74 | * @return int |
75 | 75 | */ |
76 | - public function getOpposingCount(): int { |
|
76 | + public function getOpposingCount (): int { |
|
77 | 77 | $this->defineSections(); |
78 | 78 | return $this->getCountForSection( $this->opposeSection ); |
79 | 79 | } |
@@ -84,7 +84,7 @@ discard block |
||
84 | 84 | * @return int |
85 | 85 | * @throws BadMethodCallException |
86 | 86 | */ |
87 | - public function getSupportCount(): int { |
|
87 | + public function getSupportCount (): int { |
|
88 | 88 | if ( !$this->isVote() ) { |
89 | 89 | throw new BadMethodCallException( 'Cannot get support for a non-vote page.' ); |
90 | 90 | } |
@@ -98,13 +98,13 @@ discard block |
||
98 | 98 | * @param int $secNum |
99 | 99 | * @return int |
100 | 100 | */ |
101 | - protected function getCountForSection( int $secNum ): int { |
|
101 | + protected function getCountForSection ( int $secNum ): int { |
|
102 | 102 | if ( !isset( $this->sectionCounts[ $secNum ] ) ) { |
103 | 103 | $content = $this->wiki->getPageContent( $this->title, $secNum ); |
104 | 104 | // Let's hope that this is good enough... |
105 | - $this->sectionCounts[$secNum] = preg_match_all( "/^# *(?![# *:]|\.\.\.$)/m", $content ); |
|
105 | + $this->sectionCounts[ $secNum ] = preg_match_all( "/^# *(?![# *:]|\.\.\.$)/m", $content ); |
|
106 | 106 | } |
107 | - return $this->sectionCounts[$secNum]; |
|
107 | + return $this->sectionCounts[ $secNum ]; |
|
108 | 108 | } |
109 | 109 | |
110 | 110 | /** |
@@ -112,9 +112,9 @@ discard block |
||
112 | 112 | * |
113 | 113 | * @return int |
114 | 114 | */ |
115 | - protected function getQuorum(): int { |
|
115 | + protected function getQuorum (): int { |
|
116 | 116 | $reg = "!soddisfare il \[\[[^|\]]+\|quorum]] di '''(\d+) voti'''!"; |
117 | - return (int)$this->getMatch( $reg )[1]; |
|
117 | + return (int)$this->getMatch( $reg )[ 1 ]; |
|
118 | 118 | } |
119 | 119 | |
120 | 120 | /** |
@@ -122,7 +122,7 @@ discard block |
||
122 | 122 | * |
123 | 123 | * @return bool |
124 | 124 | */ |
125 | - public function hasOpposition(): bool { |
|
125 | + public function hasOpposition (): bool { |
|
126 | 126 | return $this->getOpposingCount() >= self::REQUIRED_OPPOSE; |
127 | 127 | } |
128 | 128 | |
@@ -131,7 +131,7 @@ discard block |
||
131 | 131 | * |
132 | 132 | * @return int One of the OUTCOME_* constants |
133 | 133 | */ |
134 | - public function getOutcome(): int { |
|
134 | + public function getOutcome (): int { |
|
135 | 135 | if ( !$this->isVote() ) { |
136 | 136 | return self::OUTCOME_OK; |
137 | 137 | } |
@@ -154,7 +154,7 @@ discard block |
||
154 | 154 | * @throws BadMethodCallException |
155 | 155 | * @throws LogicException |
156 | 156 | */ |
157 | - public function getOutcomeText(): string { |
|
157 | + public function getOutcomeText (): string { |
|
158 | 158 | if ( !$this->isVote() ) { |
159 | 159 | throw new BadMethodCallException( 'No need for an outcome text.' ); |
160 | 160 | } |
@@ -188,7 +188,7 @@ discard block |
||
188 | 188 | * |
189 | 189 | * @return bool |
190 | 190 | */ |
191 | - public function isVote(): bool { |
|
191 | + public function isVote (): bool { |
|
192 | 192 | $sectionReg = '/<!-- SEZIONE DA UTILIZZARE PER/'; |
193 | 193 | return !$this->matches( $sectionReg ); |
194 | 194 | } |
@@ -198,7 +198,7 @@ discard block |
||
198 | 198 | * |
199 | 199 | * @return int |
200 | 200 | */ |
201 | - public function getCreationTimestamp(): int { |
|
201 | + public function getCreationTimestamp (): int { |
|
202 | 202 | return $this->wiki->getPageCreationTS( $this->title ); |
203 | 203 | } |
204 | 204 | |
@@ -207,7 +207,7 @@ discard block |
||
207 | 207 | * |
208 | 208 | * @return int |
209 | 209 | */ |
210 | - public function getEndTimestamp(): int { |
|
210 | + public function getEndTimestamp (): int { |
|
211 | 211 | if ( $this->isVote() ) { |
212 | 212 | $reg = "!La votazione ha inizio il.+ alle ore ([\d:]+) e ha termine il (.+) alla stessa ora!"; |
213 | 213 | [ , $hours, $day ] = $this->getMatch( $reg ); |
@@ -1,4 +1,4 @@ discard block |
||
1 | -<?php declare( strict_types=1 ); |
|
1 | +<?php declare(strict_types=1); |
|
2 | 2 | |
3 | 3 | namespace BotRiconferme\Wiki; |
4 | 4 | |
@@ -21,7 +21,7 @@ discard block |
||
21 | 21 | * @param array $info |
22 | 22 | * @phan-param array<string,string|string[]> $info |
23 | 23 | */ |
24 | - public function __construct( string $name, array $info ) { |
|
24 | + public function __construct ( string $name, array $info ) { |
|
25 | 25 | $this->name = $name; |
26 | 26 | $this->info = $info; |
27 | 27 | } |
@@ -29,7 +29,7 @@ discard block |
||
29 | 29 | /** |
30 | 30 | * @return string |
31 | 31 | */ |
32 | - public function getName(): string { |
|
32 | + public function getName (): string { |
|
33 | 33 | return $this->name; |
34 | 34 | } |
35 | 35 | |
@@ -37,28 +37,28 @@ discard block |
||
37 | 37 | * @return array |
38 | 38 | * @phan-return array<string,string|string[]> |
39 | 39 | */ |
40 | - public function getInfo(): array { |
|
40 | + public function getInfo (): array { |
|
41 | 41 | return $this->info; |
42 | 42 | } |
43 | 43 | |
44 | 44 | /** |
45 | 45 | * @return string[] |
46 | 46 | */ |
47 | - public function extractGroups(): array { |
|
47 | + public function extractGroups (): array { |
|
48 | 48 | return array_keys( $this->extractGroupsWithDates() ); |
49 | 49 | } |
50 | 50 | |
51 | 51 | /** |
52 | 52 | * @return string[] |
53 | 53 | */ |
54 | - public function extractGroupsWithDates(): array { |
|
54 | + public function extractGroupsWithDates (): array { |
|
55 | 55 | return array_intersect_key( $this->getInfo(), array_fill_keys( self::GROUP_KEYS, 1 ) ); |
56 | 56 | } |
57 | 57 | |
58 | 58 | /** |
59 | 59 | * @return string[] |
60 | 60 | */ |
61 | - public function getAliases(): array { |
|
62 | - return $this->getInfo()['aliases'] ?? []; |
|
61 | + public function getAliases (): array { |
|
62 | + return $this->getInfo()[ 'aliases' ] ?? [ ]; |
|
63 | 63 | } |
64 | 64 | } |
@@ -1,4 +1,4 @@ discard block |
||
1 | -<?php declare( strict_types=1 ); |
|
1 | +<?php declare(strict_types=1); |
|
2 | 2 | |
3 | 3 | namespace BotRiconferme; |
4 | 4 | |
@@ -66,14 +66,14 @@ discard block |
||
66 | 66 | /** |
67 | 67 | * @return bool |
68 | 68 | */ |
69 | - public static function isCLI(): bool { |
|
69 | + public static function isCLI (): bool { |
|
70 | 70 | return PHP_SAPI === 'cli'; |
71 | 71 | } |
72 | 72 | |
73 | 73 | /** |
74 | 74 | * Populate options and check for required ones |
75 | 75 | */ |
76 | - public function __construct() { |
|
76 | + public function __construct () { |
|
77 | 77 | /** @var string[] $opts */ |
78 | 78 | $opts = getopt( self::SHORT_OPTS, self::LONG_OPTS ); |
79 | 79 | $this->checkRequiredOpts( $opts ); |
@@ -85,7 +85,7 @@ discard block |
||
85 | 85 | /** |
86 | 86 | * @param string[] $opts |
87 | 87 | */ |
88 | - private function checkRequiredOpts( array $opts ): void { |
|
88 | + private function checkRequiredOpts ( array $opts ): void { |
|
89 | 89 | $missingOpts = array_diff( self::REQUIRED_OPTS, array_keys( $opts ) ); |
90 | 90 | if ( $missingOpts ) { |
91 | 91 | $this->fatal( 'Required options missing: ' . implode( ', ', $missingOpts ) ); |
@@ -107,7 +107,7 @@ discard block |
||
107 | 107 | /** |
108 | 108 | * @param string[] $opts |
109 | 109 | */ |
110 | - private function checkConflictingOpts( array $opts ): void { |
|
110 | + private function checkConflictingOpts ( array $opts ): void { |
|
111 | 111 | $this->checkNotBothSet( $opts, 'password', 'use-password-file' ); |
112 | 112 | if ( array_key_exists( 'use-password-file', $opts ) && !file_exists( self::PASSWORD_FILE ) ) { |
113 | 113 | $this->fatal( 'Please create the password file (' . self::PASSWORD_FILE . ')' ); |
@@ -128,7 +128,7 @@ discard block |
||
128 | 128 | * @param string $first |
129 | 129 | * @param string $second |
130 | 130 | */ |
131 | - private function checkNotBothSet( array $opts, string $first, string $second ): void { |
|
131 | + private function checkNotBothSet ( array $opts, string $first, string $second ): void { |
|
132 | 132 | if ( array_key_exists( $first, $opts ) && array_key_exists( $second, $opts ) ) { |
133 | 133 | $this->fatal( "Can only use one of '$first' and '$second'" ); |
134 | 134 | } |
@@ -137,23 +137,23 @@ discard block |
||
137 | 137 | /** |
138 | 138 | * @param string[] &$opts |
139 | 139 | */ |
140 | - private function canonicalize( array &$opts ): void { |
|
140 | + private function canonicalize ( array &$opts ): void { |
|
141 | 141 | if ( array_key_exists( 'use-password-file', $opts ) ) { |
142 | 142 | $pw = trim( file_get_contents( self::PASSWORD_FILE ) ); |
143 | - $opts['password'] = $pw; |
|
144 | - unset( $opts['use-password-file'] ); |
|
143 | + $opts[ 'password' ] = $pw; |
|
144 | + unset( $opts[ 'use-password-file' ] ); |
|
145 | 145 | } |
146 | 146 | if ( array_key_exists( 'use-private-password-file', $opts ) ) { |
147 | 147 | $pw = trim( file_get_contents( self::PRIVATE_PASSWORD_FILE ) ); |
148 | - $opts['private-password'] = $pw; |
|
149 | - unset( $opts['use-private-password-file'] ); |
|
148 | + $opts[ 'private-password' ] = $pw; |
|
149 | + unset( $opts[ 'use-private-password-file' ] ); |
|
150 | 150 | } |
151 | 151 | } |
152 | 152 | |
153 | 153 | /** |
154 | 154 | * @param string $msg |
155 | 155 | */ |
156 | - private function fatal( string $msg ): void { |
|
156 | + private function fatal ( string $msg ): void { |
|
157 | 157 | exit( $msg . "\n" ); |
158 | 158 | } |
159 | 159 | |
@@ -162,8 +162,8 @@ discard block |
||
162 | 162 | * @param string $opt |
163 | 163 | * @return string |
164 | 164 | */ |
165 | - public function getSetOpt( string $opt ): string { |
|
166 | - return $this->opts[$opt]; |
|
165 | + public function getSetOpt ( string $opt ): string { |
|
166 | + return $this->opts[ $opt ]; |
|
167 | 167 | } |
168 | 168 | |
169 | 169 | /** |
@@ -171,14 +171,14 @@ discard block |
||
171 | 171 | * @param string|null $default |
172 | 172 | * @return string|null |
173 | 173 | */ |
174 | - public function getOpt( string $opt, string $default = null ): ?string { |
|
175 | - return $this->opts[$opt] ?? $default; |
|
174 | + public function getOpt ( string $opt, string $default = null ): ?string { |
|
175 | + return $this->opts[ $opt ] ?? $default; |
|
176 | 176 | } |
177 | 177 | |
178 | 178 | /** |
179 | 179 | * @return string[] Either [ 'tasks' => name1,... ] or [ 'subtasks' => name1,... ] |
180 | 180 | */ |
181 | - public function getTaskOpt(): array { |
|
181 | + public function getTaskOpt (): array { |
|
182 | 182 | return array_intersect_key( |
183 | 183 | $this->opts, |
184 | 184 | [ 'tasks' => true, 'subtasks' => true ] |
@@ -188,7 +188,7 @@ discard block |
||
188 | 188 | /** |
189 | 189 | * @return string|null |
190 | 190 | */ |
191 | - public function getURL(): ?string { |
|
191 | + public function getURL (): ?string { |
|
192 | 192 | return $this->getOpt( 'force-url' ); |
193 | 193 | } |
194 | 194 | } |
@@ -1,4 +1,4 @@ discard block |
||
1 | -<?php declare( strict_types=1 ); |
|
1 | +<?php declare(strict_types=1); |
|
2 | 2 | |
3 | 3 | namespace BotRiconferme; |
4 | 4 | |
@@ -34,7 +34,7 @@ discard block |
||
34 | 34 | /** |
35 | 35 | * @param CLI $cli |
36 | 36 | */ |
37 | - public function __construct( CLI $cli ) { |
|
37 | + public function __construct ( CLI $cli ) { |
|
38 | 38 | $this->cli = $cli; |
39 | 39 | $this->initialize(); |
40 | 40 | } |
@@ -42,7 +42,7 @@ discard block |
||
42 | 42 | /** |
43 | 43 | * Initialize all members. |
44 | 44 | */ |
45 | - private function initialize(): void { |
|
45 | + private function initialize (): void { |
|
46 | 46 | $simpleLogger = new SimpleLogger(); |
47 | 47 | $this->createWikiGroup( $simpleLogger ); |
48 | 48 | $this->messageProvider = new MessageProvider( |
@@ -56,14 +56,14 @@ discard block |
||
56 | 56 | /** |
57 | 57 | * Main entry point |
58 | 58 | */ |
59 | - public function run(): void { |
|
59 | + public function run (): void { |
|
60 | 60 | $taskOpt = $this->cli->getTaskOpt(); |
61 | 61 | $type = current( array_keys( $taskOpt ) ); |
62 | 62 | try { |
63 | 63 | if ( $type === 'tasks' ) { |
64 | - $this->runInternal( TaskManager::MODE_TASK, explode( ',', $taskOpt['tasks'] ) ); |
|
64 | + $this->runInternal( TaskManager::MODE_TASK, explode( ',', $taskOpt[ 'tasks' ] ) ); |
|
65 | 65 | } elseif ( $type === 'subtasks' ) { |
66 | - $this->runInternal( TaskManager::MODE_SUBTASK, explode( ',', $taskOpt['subtasks'] ) ); |
|
66 | + $this->runInternal( TaskManager::MODE_SUBTASK, explode( ',', $taskOpt[ 'subtasks' ] ) ); |
|
67 | 67 | } else { |
68 | 68 | $this->runInternal(); |
69 | 69 | } |
@@ -77,7 +77,7 @@ discard block |
||
77 | 77 | /** |
78 | 78 | * @param LoggerInterface $baseLogger |
79 | 79 | */ |
80 | - private function createWikiGroup( LoggerInterface $baseLogger ): void { |
|
80 | + private function createWikiGroup ( LoggerInterface $baseLogger ): void { |
|
81 | 81 | // FIXME Hardcoded |
82 | 82 | $url = $this->cli->getURL() ?? 'https://it.wikipedia.org/w/api.php'; |
83 | 83 | $localUserIdentifier = '@itwiki'; |
@@ -115,7 +115,7 @@ discard block |
||
115 | 115 | * |
116 | 116 | * @param IFlushingAwareLogger $baseLogger |
117 | 117 | */ |
118 | - private function createMainLogger( IFlushingAwareLogger $baseLogger ): void { |
|
118 | + private function createMainLogger ( IFlushingAwareLogger $baseLogger ): void { |
|
119 | 119 | $mainWiki = $this->wikiGroup->getMainWiki(); |
120 | 120 | $mp = $this->messageProvider; |
121 | 121 | $errTitle = $this->cli->getOpt( 'error-title' ); |
@@ -142,7 +142,7 @@ discard block |
||
142 | 142 | /** |
143 | 143 | * Create the Config |
144 | 144 | */ |
145 | - private function initConfig(): void { |
|
145 | + private function initConfig (): void { |
|
146 | 146 | $wiki = $this->wikiGroup->getMainWiki(); |
147 | 147 | try { |
148 | 148 | $confValues = json_decode( $wiki->getPageContent( $this->cli->getSetOpt( 'config-title' ) ), true ); |
@@ -159,9 +159,9 @@ discard block |
||
159 | 159 | * @param string $mode |
160 | 160 | * @param string[] $taskNames |
161 | 161 | */ |
162 | - private function runInternal( |
|
162 | + private function runInternal ( |
|
163 | 163 | string $mode = TaskManager::MODE_COMPLETE, |
164 | - array $taskNames = [] |
|
164 | + array $taskNames = [ ] |
|
165 | 165 | ): void { |
166 | 166 | $activity = $mode === TaskManager::MODE_COMPLETE |
167 | 167 | ? 'full process' |
@@ -181,8 +181,7 @@ discard block |
||
181 | 181 | $base = "Execution of $activity"; |
182 | 182 | if ( $res->isOK() ) { |
183 | 183 | $msg = $res->getStatus() === TaskResult::STATUS_NOTHING ? |
184 | - ': nothing to do' : |
|
185 | - ' completed successfully'; |
|
184 | + ': nothing to do' : ' completed successfully'; |
|
186 | 185 | $this->mainLogger->info( $base . $msg ); |
187 | 186 | } else { |
188 | 187 | $this->mainLogger->error( "$base failed.\n$res" ); |