@@ -45,7 +45,7 @@ discard block |
||
45 | 45 | return new WebarchiveDTO( |
46 | 46 | self::ARCHIVER_NAME, |
47 | 47 | $url, |
48 | - (string)$archiveData['url'], |
|
48 | + (string) $archiveData['url'], |
|
49 | 49 | $iaDateOrNull |
50 | 50 | ); |
51 | 51 | } |
@@ -53,7 +53,7 @@ discard block |
||
53 | 53 | protected function requestInternetArchiveApi(string $url, ?DateTimeInterface $date = null): array |
54 | 54 | { |
55 | 55 | $response = $this->client->get( |
56 | - 'https://archive.org/wayback/available?timestamp=' . self::SEARCH_CLOSEST_TIMESTAMP . '&url=' . urlencode($url), |
|
56 | + 'https://archive.org/wayback/available?timestamp='.self::SEARCH_CLOSEST_TIMESTAMP.'&url='.urlencode($url), |
|
57 | 57 | [ |
58 | 58 | 'timeout' => 20, |
59 | 59 | 'allow_redirects' => true, |
@@ -103,14 +103,14 @@ discard block |
||
103 | 103 | } |
104 | 104 | $iaDateTime = new DateTime(); |
105 | 105 | $iaDateTime->setDate( |
106 | - (int)substr($iaTimestamp, 0, 4), |
|
107 | - (int)substr($iaTimestamp, 4, 2), |
|
108 | - (int)substr($iaTimestamp, 6, 2) |
|
106 | + (int) substr($iaTimestamp, 0, 4), |
|
107 | + (int) substr($iaTimestamp, 4, 2), |
|
108 | + (int) substr($iaTimestamp, 6, 2) |
|
109 | 109 | ); |
110 | 110 | $iaDateTime->setTime( |
111 | - (int)substr($iaTimestamp, 8, 2), |
|
112 | - (int)substr($iaTimestamp, 10, 2), |
|
113 | - (int)substr($iaTimestamp, 12, 2) |
|
111 | + (int) substr($iaTimestamp, 8, 2), |
|
112 | + (int) substr($iaTimestamp, 10, 2), |
|
113 | + (int) substr($iaTimestamp, 12, 2) |
|
114 | 114 | ); |
115 | 115 | |
116 | 116 | return $iaDateTime; |
@@ -24,7 +24,7 @@ discard block |
||
24 | 24 | |
25 | 25 | public function hasWarning(): bool |
26 | 26 | { |
27 | - return (bool)$this->warning; |
|
27 | + return (bool) $this->warning; |
|
28 | 28 | } |
29 | 29 | |
30 | 30 | /** |
@@ -55,7 +55,7 @@ discard block |
||
55 | 55 | $refs = array_slice($refs, 0, self::MAX_REFS_PROCESSED_IN_ARTICLE, true); |
56 | 56 | |
57 | 57 | foreach ($refs as $ref) { |
58 | - $refContent = WikiTextUtil::stripFinalPoint(trim((string)$ref[1])); |
|
58 | + $refContent = WikiTextUtil::stripFinalPoint(trim((string) $ref[1])); |
|
59 | 59 | |
60 | 60 | $newRefContent = $this->processRefContent($refContent); |
61 | 61 | |
@@ -70,11 +70,11 @@ discard block |
||
70 | 70 | protected function replaceRefInText(array $ref, string $replace, string $text) |
71 | 71 | { |
72 | 72 | // Pas de changement |
73 | - if (WikiTextUtil::stripFinalPoint(trim($replace)) === WikiTextUtil::stripFinalPoint(trim((string)$ref[1]))) { |
|
73 | + if (WikiTextUtil::stripFinalPoint(trim($replace)) === WikiTextUtil::stripFinalPoint(trim((string) $ref[1]))) { |
|
74 | 74 | return $text; |
75 | 75 | } |
76 | 76 | $replace = $this->addFinalPeriod($ref[0], $replace); |
77 | - $result = str_replace($ref[1], $replace, (string)$ref[0]); |
|
77 | + $result = str_replace($ref[1], $replace, (string) $ref[0]); |
|
78 | 78 | $this->printDiff($ref[0], $result); |
79 | 79 | |
80 | 80 | return str_replace($ref[0], $result, $text); |
@@ -85,7 +85,7 @@ discard block |
||
85 | 85 | */ |
86 | 86 | protected function addFinalPeriod($ref, string $replace): string |
87 | 87 | { |
88 | - if (preg_match('#</ref>#', (string)$ref)) { |
|
88 | + if (preg_match('#</ref>#', (string) $ref)) { |
|
89 | 89 | $replace .= '.'; |
90 | 90 | } |
91 | 91 | return $replace; |
@@ -37,7 +37,7 @@ discard block |
||
37 | 37 | |
38 | 38 | // todo command --tor --wikiwix --internetarchive |
39 | 39 | $torEnabled = false; |
40 | -echo "TOR enabled : ".($torEnabled ? "oui" : "non"). "\n"; |
|
40 | +echo "TOR enabled : ".($torEnabled ? "oui" : "non")."\n"; |
|
41 | 41 | |
42 | 42 | $client = ServiceFactory::getHttpClient(); |
43 | 43 | $wikiwix = new WikiwixAdapter($client, $logger); |
@@ -56,10 +56,10 @@ discard block |
||
56 | 56 | // Attention : pas de post-processing (sanitize title, etc.) |
57 | 57 | $result = $trans->process($url, $summary); |
58 | 58 | } catch (Exception $e) { |
59 | - $result = "EXCEPTION ". $e->getMessage().$e->getFile().$e->getLine(); |
|
59 | + $result = "EXCEPTION ".$e->getMessage().$e->getFile().$e->getLine(); |
|
60 | 60 | } |
61 | 61 | |
62 | -echo '>>> '. $result."\n"; |
|
62 | +echo '>>> '.$result."\n"; |
|
63 | 63 | |
64 | 64 | |
65 | 65 |
@@ -18,7 +18,7 @@ discard block |
||
18 | 18 | */ |
19 | 19 | class ExternHttpErrorLogic |
20 | 20 | { |
21 | - final public const LOG_REQUEST_ERROR = __DIR__ . '/../../Application/resources/external_request_error.log'; |
|
21 | + final public const LOG_REQUEST_ERROR = __DIR__.'/../../Application/resources/external_request_error.log'; |
|
22 | 22 | protected const LOOSE = true; |
23 | 23 | |
24 | 24 | public function __construct( |
@@ -40,12 +40,12 @@ discard block |
||
40 | 40 | return $url; |
41 | 41 | } |
42 | 42 | if (preg_match('#400 Bad Request#i', $errorMessage)) { |
43 | - $this->log->warning('400 Bad Request : ' . $url, ['stats' => 'externHttpErrorLogic.400']); |
|
43 | + $this->log->warning('400 Bad Request : '.$url, ['stats' => 'externHttpErrorLogic.400']); |
|
44 | 44 | |
45 | 45 | return $url; |
46 | 46 | } |
47 | 47 | if (preg_match('#(403 Forbidden|403 Access Forbidden)#i', $errorMessage)) { |
48 | - $this->log->warning('403 Forbidden : ' . $url, ['stats' => 'externHttpErrorLogic.403']); |
|
48 | + $this->log->warning('403 Forbidden : '.$url, ['stats' => 'externHttpErrorLogic.403']); |
|
49 | 49 | // TODO return blankLienWeb without consulté le=... |
50 | 50 | |
51 | 51 | return $url; |
@@ -59,7 +59,7 @@ discard block |
||
59 | 59 | return $url; |
60 | 60 | } |
61 | 61 | if (preg_match('#401 (Unauthorized|Authorization Required)#i', $errorMessage)) { |
62 | - $this->log->notice('401 Unauthorized : skip ' . $url, ['stats' => 'externHttpErrorLogic.401']); |
|
62 | + $this->log->notice('401 Unauthorized : skip '.$url, ['stats' => 'externHttpErrorLogic.401']); |
|
63 | 63 | |
64 | 64 | return $url; |
65 | 65 | } |
@@ -112,7 +112,7 @@ discard block |
||
112 | 112 | // "cURL error 28: Connection timed out after 20005 milliseconds (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) |
113 | 113 | //"cURL error 28: Connection timed out after 20005 milliseconds (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) |
114 | 114 | $this->log->notice( |
115 | - 'erreur non gérée sur extractWebData: "' . $errorMessage . "\" URL: " . $url, |
|
115 | + 'erreur non gérée sur extractWebData: "'.$errorMessage."\" URL: ".$url, |
|
116 | 116 | ['stats' => 'externHttpErrorLogic.defaultSkip'] |
117 | 117 | ); |
118 | 118 | //file_put_contents(self::LOG_REQUEST_ERROR, $this->domain."\n", FILE_APPEND); |
@@ -18,7 +18,7 @@ discard block |
||
18 | 18 | */ |
19 | 19 | class StatsSqlite3 implements StatsInterface |
20 | 20 | { |
21 | - protected const DEFAULT_FILEPATH = __DIR__ . '/../../../log/stats.db'; |
|
21 | + protected const DEFAULT_FILEPATH = __DIR__.'/../../../log/stats.db'; |
|
22 | 22 | protected const MAX_TAG_LENGTH = 100; |
23 | 23 | |
24 | 24 | protected SQLite3 $db; |
@@ -75,7 +75,7 @@ discard block |
||
75 | 75 | // `num` default value is 1 so insert is enough to set num=1 |
76 | 76 | try { |
77 | 77 | return $this->sqliteExecWriteOrWait( |
78 | - 'INSERT INTO ' . $table . ' (tag) VALUES("' . $tag . '") ON CONFLICT(tag) DO UPDATE SET num=num+1' |
|
78 | + 'INSERT INTO '.$table.' (tag) VALUES("'.$tag.'") ON CONFLICT(tag) DO UPDATE SET num=num+1' |
|
79 | 79 | ); |
80 | 80 | } catch (Exception $e) { |
81 | 81 | return false; |
@@ -107,7 +107,7 @@ discard block |
||
107 | 107 | $tag = $this->formatTag($tag); |
108 | 108 | try { |
109 | 109 | return $this->sqliteExecWriteOrWait( |
110 | - 'INSERT OR REPLACE INTO tagnum (tag,num) VALUES("' . $tag . '", ' . $num . ')' |
|
110 | + 'INSERT OR REPLACE INTO tagnum (tag,num) VALUES("'.$tag.'", '.$num.')' |
|
111 | 111 | ); |
112 | 112 | } catch (Exception $e) { |
113 | 113 | return false; |
@@ -119,7 +119,7 @@ discard block |
||
119 | 119 | $tag = $this->formatTag($tag); |
120 | 120 | try { |
121 | 121 | return $this->sqliteExecWriteOrWait( |
122 | - 'INSERT INTO tagnum (tag) VALUES("' . $tag . '") ON CONFLICT(tag) DO UPDATE SET num=num-1' |
|
122 | + 'INSERT INTO tagnum (tag) VALUES("'.$tag.'") ON CONFLICT(tag) DO UPDATE SET num=num-1' |
|
123 | 123 | ); |
124 | 124 | } catch (Exception $e) { |
125 | 125 | return false; |
@@ -20,7 +20,7 @@ discard block |
||
20 | 20 | { |
21 | 21 | // use LoggerTrait; |
22 | 22 | |
23 | - protected const CRITICAL_LOG_PATH = __DIR__ . '/../../../log/critical.log'; |
|
23 | + protected const CRITICAL_LOG_PATH = __DIR__.'/../../../log/critical.log'; |
|
24 | 24 | public bool $verbose = false; |
25 | 25 | public bool $debug = false; |
26 | 26 | public bool $colorMode = false; |
@@ -36,7 +36,7 @@ discard block |
||
36 | 36 | |
37 | 37 | public function __call(string $method, array $args): void |
38 | 38 | { |
39 | - $this->notice('Call to undefined method ConsoleLogger:' . $method . '()'); |
|
39 | + $this->notice('Call to undefined method ConsoleLogger:'.$method.'()'); |
|
40 | 40 | } |
41 | 41 | |
42 | 42 | /** |
@@ -62,7 +62,7 @@ discard block |
||
62 | 62 | case 'emergency': |
63 | 63 | case 'alert': |
64 | 64 | case 'critical': |
65 | - $this->echoColor("[$level] " . $date . ' : ' . $message . "\n", Color::BG_RED . Color::WHITE); |
|
65 | + $this->echoColor("[$level] ".$date.' : '.$message."\n", Color::BG_RED.Color::WHITE); |
|
66 | 66 | if ($context !== []) { |
67 | 67 | dump($context); |
68 | 68 | } |
@@ -70,20 +70,20 @@ discard block |
||
70 | 70 | break; |
71 | 71 | case 'error': |
72 | 72 | case 'warning': |
73 | - $this->echoColor("[$level] " . $date . ' : ' . $message . "\n", Color::BG_YELLOW . Color::BLACK); |
|
73 | + $this->echoColor("[$level] ".$date.' : '.$message."\n", Color::BG_YELLOW.Color::BLACK); |
|
74 | 74 | if ($context !== []) { |
75 | 75 | dump($context); |
76 | 76 | } |
77 | 77 | break; |
78 | 78 | case 'notice': |
79 | - $this->echoColor("[$level] " . $message . "\n"); |
|
79 | + $this->echoColor("[$level] ".$message."\n"); |
|
80 | 80 | if ($context !== []) { |
81 | 81 | dump($context); |
82 | 82 | } |
83 | 83 | break; |
84 | 84 | case 'info': |
85 | 85 | if ($this->verbose || $this->debug) { |
86 | - $this->echoColor("[$level] " . $message . "\n", Color::GRAY); |
|
86 | + $this->echoColor("[$level] ".$message."\n", Color::GRAY); |
|
87 | 87 | if ($context !== []) { |
88 | 88 | dump($context); |
89 | 89 | } |
@@ -91,14 +91,14 @@ discard block |
||
91 | 91 | break; |
92 | 92 | case 'debug': |
93 | 93 | if ($this->debug) { |
94 | - $this->echoColor("[$level] " . $message . "\n", Color::GRAY); |
|
94 | + $this->echoColor("[$level] ".$message."\n", Color::GRAY); |
|
95 | 95 | if ($context !== []) { |
96 | 96 | dump($context); |
97 | 97 | } |
98 | 98 | } |
99 | 99 | break; |
100 | 100 | case 'echo': |
101 | - $this->echoColor($message . "\n"); |
|
101 | + $this->echoColor($message."\n"); |
|
102 | 102 | break; |
103 | 103 | } |
104 | 104 | } |
@@ -121,7 +121,7 @@ discard block |
||
121 | 121 | private function echoColor(string $text, ?string $color = null): void |
122 | 122 | { |
123 | 123 | if ($this->colorMode && !empty($color)) { |
124 | - echo $color . $text . Color::NORMAL; |
|
124 | + echo $color.$text.Color::NORMAL; |
|
125 | 125 | |
126 | 126 | return; |
127 | 127 | } |
@@ -132,7 +132,7 @@ discard block |
||
132 | 132 | { |
133 | 133 | file_put_contents( |
134 | 134 | self::CRITICAL_LOG_PATH, |
135 | - date('d-m-Y H:i:s') . " : $level : " . $message . PHP_EOL, |
|
135 | + date('d-m-Y H:i:s')." : $level : ".$message.PHP_EOL, |
|
136 | 136 | FILE_APPEND |
137 | 137 | ); |
138 | 138 | } |
@@ -49,12 +49,12 @@ discard block |
||
49 | 49 | $this->url = $url; |
50 | 50 | $this->registrableDomain = null; |
51 | 51 | if (!HttpUtil::isHttpURL($url)) { |
52 | - $this->log->debug('Skip : not Http URL : ' . $url, ['stats' => 'externref.skip.notRawURL']); |
|
52 | + $this->log->debug('Skip : not Http URL : '.$url, ['stats' => 'externref.skip.notRawURL']); |
|
53 | 53 | return false; |
54 | 54 | } |
55 | 55 | |
56 | 56 | if ($this->hasForbiddenFilenameExtension()) { |
57 | - $this->log->debug('Skip : ForbiddenFilenameExtension : ' . $url, ['stats' => 'externref.skip.forbiddenFilenameExtension']); |
|
57 | + $this->log->debug('Skip : ForbiddenFilenameExtension : '.$url, ['stats' => 'externref.skip.forbiddenFilenameExtension']); |
|
58 | 58 | return false; |
59 | 59 | } |
60 | 60 | |
@@ -70,7 +70,7 @@ discard block |
||
70 | 70 | */ |
71 | 71 | protected function hasForbiddenFilenameExtension(): bool |
72 | 72 | { |
73 | - return (bool)preg_match( |
|
73 | + return (bool) preg_match( |
|
74 | 74 | '#\.(pdf|jpg|jpeg|gif|png|webp|xls|xlsx|xlr|xml|xlt|txt|csv|js|docx|exe|gz|zip|ini|movie|mp3|mp4|ogg|raw|rss|tar|tgz|wma)$#i', |
75 | 75 | $this->url |
76 | 76 | ); |
@@ -81,7 +81,7 @@ discard block |
||
81 | 81 | try { |
82 | 82 | $this->registrableDomain = $this->internetDomainParser->getRegistrableDomainFromURL($this->url); |
83 | 83 | } catch (Exception) { |
84 | - $this->log->warning('Skip : registrableDomain not a valid URL : ' . $this->url, |
|
84 | + $this->log->warning('Skip : registrableDomain not a valid URL : '.$this->url, |
|
85 | 85 | ['stats' => 'externref.skip.URLAuthorized.exception2'] |
86 | 86 | ); |
87 | 87 | return null; |
@@ -35,13 +35,13 @@ discard block |
||
35 | 35 | use SummaryExternTrait, PublisherLogicTrait; |
36 | 36 | |
37 | 37 | final public const HTTP_REQUEST_LOOP_DELAY = 10; |
38 | - final public const SKIP_DOMAIN_FILENAME = __DIR__ . '/../resources/config_skip_domain.txt'; |
|
38 | + final public const SKIP_DOMAIN_FILENAME = __DIR__.'/../resources/config_skip_domain.txt'; |
|
39 | 39 | final public const REPLACE_404 = true; |
40 | 40 | final public const REPLACE_410 = true; |
41 | - final public const CONFIG_PRESSE = __DIR__ . '/../resources/config_presse.yaml'; |
|
42 | - final public const CONFIG_NEWSPAPER_JSON = __DIR__ . '/../resources/data_newspapers.json'; |
|
43 | - final public const CONFIG_SCIENTIFIC_JSON = __DIR__ . '/../resources/data_scientific_domain.json'; |
|
44 | - final public const CONFIG_SCIENTIFIC_WIKI_JSON = __DIR__ . '/../resources/data_scientific_wiki.json'; |
|
41 | + final public const CONFIG_PRESSE = __DIR__.'/../resources/config_presse.yaml'; |
|
42 | + final public const CONFIG_NEWSPAPER_JSON = __DIR__.'/../resources/data_newspapers.json'; |
|
43 | + final public const CONFIG_SCIENTIFIC_JSON = __DIR__.'/../resources/data_scientific_domain.json'; |
|
44 | + final public const CONFIG_SCIENTIFIC_WIKI_JSON = __DIR__.'/../resources/data_scientific_wiki.json'; |
|
45 | 45 | |
46 | 46 | public bool $skipSiteBlacklisted = true; |
47 | 47 | public bool $skipRobotNoIndex = true; |
@@ -96,13 +96,13 @@ discard block |
||
96 | 96 | } |
97 | 97 | $this->registrableDomain = $this->urlChecker->getRegistrableDomain($url); // hack |
98 | 98 | if ($this->isSiteBlackListed()) { |
99 | - $this->log->debug('Site blacklisted : ' . $this->registrableDomain, ['stats' => 'externref.skip.blacklisted']); |
|
99 | + $this->log->debug('Site blacklisted : '.$this->registrableDomain, ['stats' => 'externref.skip.blacklisted']); |
|
100 | 100 | return $url; |
101 | 101 | } |
102 | 102 | |
103 | 103 | if ($this->registrableDomain && !$this->validateConfigWebDomain($this->registrableDomain)) { |
104 | 104 | $this->log->debug( |
105 | - 'Domain blocked by config : ' . $this->registrableDomain, |
|
105 | + 'Domain blocked by config : '.$this->registrableDomain, |
|
106 | 106 | ['stats' => 'externref.skip.domainDisabledByConfig'] |
107 | 107 | ); |
108 | 108 | return $url; |
@@ -159,7 +159,7 @@ discard block |
||
159 | 159 | protected function isSiteBlackListed(): bool |
160 | 160 | { |
161 | 161 | if ($this->registrableDomain && $this->skipSiteBlacklisted && in_array($this->registrableDomain, $this->skip_domain)) { |
162 | - $this->log->notice("Skip web site " . $this->registrableDomain); |
|
162 | + $this->log->notice("Skip web site ".$this->registrableDomain); |
|
163 | 163 | return true; |
164 | 164 | } |
165 | 165 | return false; |
@@ -177,7 +177,7 @@ discard block |
||
177 | 177 | $this->config[$domain] = is_array($this->config[$domain]) ? $this->config[$domain] : []; |
178 | 178 | |
179 | 179 | if ($this->config[$domain] === 'deactivated' || isset($this->config[$domain]['deactivated'])) { |
180 | - $this->log->info("Domain " . $domain . " disabled\n"); |
|
180 | + $this->log->info("Domain ".$domain." disabled\n"); |
|
181 | 181 | |
182 | 182 | return false; |
183 | 183 | } |
@@ -188,9 +188,9 @@ discard block |
||
188 | 188 | protected function logDebugConfigWebDomain(string $domain): void |
189 | 189 | { |
190 | 190 | if (!isset($this->config[$domain])) { |
191 | - $this->log->debug("Domain " . $domain . " non configuré"); |
|
191 | + $this->log->debug("Domain ".$domain." non configuré"); |
|
192 | 192 | } else { |
193 | - $this->log->debug("Domain " . $domain . " configuré"); |
|
193 | + $this->log->debug("Domain ".$domain." configuré"); |
|
194 | 194 | } |
195 | 195 | } |
196 | 196 | |
@@ -216,7 +216,7 @@ discard block |
||
216 | 216 | if ($pageData === [] |
217 | 217 | || (empty($pageData['JSON-LD']) && empty($pageData['meta'])) |
218 | 218 | ) { |
219 | - $this->log->notice('No metadata : ' . $url); |
|
219 | + $this->log->notice('No metadata : '.$url); |
|
220 | 220 | |
221 | 221 | return true; |
222 | 222 | } |
@@ -231,7 +231,7 @@ discard block |
||
231 | 231 | protected function emptyMapData(array $mapData, string $url): bool |
232 | 232 | { |
233 | 233 | if ($mapData === [] || empty($mapData['url']) || empty($mapData['titre'])) { |
234 | - $this->log->info('Mapping incomplet : ' . $url); |
|
234 | + $this->log->info('Mapping incomplet : '.$url); |
|
235 | 235 | |
236 | 236 | return true; |
237 | 237 | } |
@@ -322,7 +322,7 @@ discard block |
||
322 | 322 | protected function correctSiteViaWebarchiver(array $mapData): array |
323 | 323 | { |
324 | 324 | if (!empty($this->options['originalRegistrableDomain']) && $mapData['site']) { |
325 | - $mapData['site'] = $this->options['originalRegistrableDomain'] . ' via ' . $mapData['site']; |
|
325 | + $mapData['site'] = $this->options['originalRegistrableDomain'].' via '.$mapData['site']; |
|
326 | 326 | } |
327 | 327 | |
328 | 328 | return $mapData; |
@@ -346,7 +346,7 @@ discard block |
||
346 | 346 | $templateOptimized = $optimizer->getOptiTemplate(); |
347 | 347 | |
348 | 348 | $serialized = $templateOptimized->serialize(true); |
349 | - $this->log->info('Serialized 444: ' . $serialized . "\n"); |
|
349 | + $this->log->info('Serialized 444: '.$serialized."\n"); |
|
350 | 350 | return $serialized; |
351 | 351 | } |
352 | 352 | |
@@ -354,7 +354,7 @@ discard block |
||
354 | 354 | { |
355 | 355 | $template = WikiTemplateFactory::create($templateName); |
356 | 356 | $template->userSeparator = " |"; |
357 | - $this->summary->memo['count ' . $templateName] = 1 + ($this->summary->memo['count ' . $templateName] ?? 0); |
|
357 | + $this->summary->memo['count '.$templateName] = 1 + ($this->summary->memo['count '.$templateName] ?? 0); |
|
358 | 358 | |
359 | 359 | return $template; |
360 | 360 | } |
@@ -23,7 +23,7 @@ discard block |
||
23 | 23 | { |
24 | 24 | protected HttpClientInterface $client; |
25 | 25 | |
26 | - public function __construct(private readonly LoggerInterface|NullLogger $log = new NullLogger()) |
|
26 | + public function __construct(private readonly LoggerInterface | NullLogger $log = new NullLogger()) |
|
27 | 27 | { |
28 | 28 | $this->client = ServiceFactory::getHttpClient(); |
29 | 29 | } |
@@ -38,16 +38,16 @@ discard block |
||
38 | 38 | { |
39 | 39 | $url = 'http://wikipedia.ramselehof.de/wikiblame.php?project=wikipedia&article=' |
40 | 40 | . str_replace(' ', '+', $article) |
41 | - . '&needle=' . urlencode($string) |
|
41 | + . '&needle='.urlencode($string) |
|
42 | 42 | . '&lang=fr&limit=2000&offjahr=2024&offmon=1&offtag=1&offhour=23&offmin=55' |
43 | 43 | . '&searchmethod=int&order=desc' |
44 | - . '&force_wikitags=' . ($hasWikicode ? 'on' : 'off') |
|
44 | + . '&force_wikitags='.($hasWikicode ? 'on' : 'off') |
|
45 | 45 | . '&user_lang=fr&ignorefirst=0'; |
46 | 46 | |
47 | 47 | $response = $this->client->get($url); |
48 | 48 | |
49 | 49 | if ($response->getStatusCode() !== 200) { |
50 | - $this->log->warning('WikiBlame: ' . $response->getStatusCode() . ' ' . $response->getReasonPhrase()); |
|
50 | + $this->log->warning('WikiBlame: '.$response->getStatusCode().' '.$response->getReasonPhrase()); |
|
51 | 51 | return null; |
52 | 52 | } |
53 | 53 | |
@@ -68,7 +68,7 @@ discard block |
||
68 | 68 | } |
69 | 69 | |
70 | 70 | return [ |
71 | - 'versionid' => (int)$matches[1], |
|
71 | + 'versionid' => (int) $matches[1], |
|
72 | 72 | 'dateraw' => $matches[2], |
73 | 73 | 'datetime' => DateUtil::simpleFrench2object($matches[2]), |
74 | 74 | ]; |