Wikipedia talk:WPCleaner/Archive 2020

Latest comment: 1 year ago by NicoV in topic Encoding issue


Very slow on some pages

  Resolved

I can't figure out why it is, I've been going through Checkwiki #23 and the three remaining pages are prohibitively slow. I'm running Microsoft Windows [Version 10.0.18363.535] with java version "13.0.1" 2019-10-15 if that helps debug. When I say prohibitively slow, I'm talking 10+ minutes easily, probably longer but I give up. I'd like to note, it's not crashing, not going zombie, it's working on it. Jerod Lycett (talk) 16:00, 27 December 2019 (UTC)

The pages worked fine for me in the regular editor, so I removed the errant nowiki tags. – Jonesey95 (talk) 20:49, 27 December 2019 (UTC)
My brain appears prohibitively slow too, should have thought of that. Still, bug report. Jerod Lycett (talk) 21:14, 27 December 2019 (UTC)
@NicoV: 2019 reasons of the Supreme Court of Canada is very slow. As, it appears, is any page beyond an unknown length with Spelling and Typography errors. Futuh and Diego Demme for example. Jerod Lycett (talk) 18:53, 29 December 2019 (UTC)
Hi Jerod Lycett, Jonesey95. I will look into this.
First test with 2019 reasons of the Supreme Court of Canada shows problems on several regular expressions for AWB for spelling and typography (13s+37s+41s+38s > 2mn) from Wikipedia:AutoWikiBrowser/Typos:
Slow regular expression: Typo AWB -ish:(?<=\b(?:[A-Za-z]+?))i?sih(e(?:[ds]|rs?)|ing(?:ly)?|ly)?\b(?<!asih|A(?:isih|riningsih|sih)|Bersih|esih|Finarsih|ingsih|K(?:asih|osasih)|[rs]sih|M(?:a(?:drasih|ss?ih)|essih|irajoucsih)|N(?:esih|ingsih|urnaningsih)|Su(?:kaesih|mbangsih)|T(?:laksih|sih)|Y(?:ingtsih|ulianingsih))(13387ms)
Slow regular expression: Typo AWB known as:(?<=\b(?:a(?:lso|re|s)|Also|b(?:e(?:came|en|st|tter)|ut)|Be(?:st|tter)|[cC]ommonly|[fF]requently|[gG]enerally|is|[mM]ostly|[nN]ormally|Often|o(?:ften|r)|perhaps|[uU]sually|W(?:ell|idely)|w(?:as|e(?:ll|re)|idely))\s+)know(?:ed|s?)\s+(as|for)\b(37228ms)
Slow regular expression: Typo AWB Its (after):(?<=\b(?:[aA](?:bove|[lm]ong(?:st)?|r(?:e|ound)|t)|[bB](?:e(?:low|tween|yond)?|oth|y)|[cC]elebrat(?:e[ds]?|ing)|[dD]uring|[fF]rom|[hH][eo]ld|[iI]n(?:to)?|[kK]eep|[mM]ade|[oO](?:f|n(?:to)?|ver)|[tT](?:hrough(?:out)?|o)|[uU](?:nder(?:neath)?|p(?:on)?)|[wW]ith(?:in|out)?)\s+)it[´ˈ׳᾿‘’′Ꞌꞌ`;']s\b(41140ms)
Slow regular expression: Typo AWB More/Less/etc. than_:(?<=\b(?:[bB](?:etter|igger|raver)|[gG]reater|[hH]igher|[mM]ore|[lL](?:arger|ess|o(?:nger|wer))|lesser|[oO]lder|[rR]ather|[sS](?:horter|ma(?:ller|rter))|[tT](?:aller|hi(?:cker|nner))|[wW]orse|[yY]ounger)\s+)then\s+(?!than\b)(38345ms)
The 4 regular expressions are complex and not optimized at all. They all start with a complex (?<=…) (which is used to check what is before the current character) before actually checking that they could be used... I would try rewriting the last one like that (move the "then" before the (?<=…) and also add it inside at the end of (?<=…))
<Typo word="More/Less/etc. than_" find="then(?<=\b(?:[bB](?:etter|igger|raver)|[gG]reater|[hH]igher|[mM]ore|[lL](?:arger|ess|o(?:nger|wer))|lesser|[oO]lder|[rR]ather|[sS](?:horter|ma(?:ller|rter))|[tT](?:aller|hi(?:cker|nner))|[wW]orse|[yY]ounger)\s+then)\s+(?!than\b)" replace="than "/><!--avoid ends of sentences, e.g., "Life was better then."; too many false positives for "other then"; cheapened expensive beginning-->
Any experienced AWB typos editor to help on putting better regular expressions? I will post on the talk page of AWB typos. --NicoV (Talk on frwiki) 06:55, 30 December 2019 (UTC)
For Futuh, I don't see any big problems: the 4 regular expressions are slow (around 5s each, except the first one around 1s)
For Diego Demme, the 4 regular expressions are slow (around 20s each, except the first one around 5s)
Fixing the 4 regular expressions should improve things a lot. I have posted a message on AWB's regular expressions talk page. --NicoV (Talk on frwiki) 07:58, 30 December 2019 (UTC)
Hi Jerod Lycett, Jonesey95. I optimized the 4 regular expressions that were causing the slowness on long pages. 2019 reasons of the Supreme Court of Canada opens now in a few seconds on my laptop. Can you confirm it works for you correctly now? --NicoV (Talk on frwiki) 16:49, 2 January 2020 (UTC)
@NicoV: Either it's not working for me, or I don't properly know how to reload the list of corrections. I thought it was the refresh button on the main page next to the system options button. Jerod Lycett (talk) 19:11, 2 January 2020 (UTC)
Jerod Lycett Best way to be sure is to restart WPCleaner, it will reload all the configuration when logging in. If the problem persists, can you check in the directory where WPCleaner is installed, there should be a WPCleaner.log file: could you post here the last few lines when you encounter the problem? --NicoV (Talk on frwiki) 21:17, 2 January 2020 (UTC)
@NicoV: I cleared the log then ran through the process twice, and uploaded the log here. Jerod Lycett (talk) 22:19, 2 January 2020 (UTC)
Thanks for the logs Jerod Lycett, but I don't see anything strange in it. I will have to add the ability to have detailed logs to see what can go wrong for you. I'll let you know when this new version is available so that we'll get better logs. --NicoV (Talk on frwiki) 14:28, 3 January 2020 (UTC)
Hi Jerod Lycett, I've fixed problems with the ability to have more detailed logs. Can you try the following:
  • Start WPCleaner, a new version should be downloaded
  • Go in the Options, in the Debug tab, check "Detailed debugging"
  • Validate the options
  • Quit WPCleaner (detailed debugging is only taken into account if restarting WPCleaner)
  • Delete WPCleaner.log to start with fresh logs
  • Start WPCleaner
  • Open a full analysis for a page that seems to block for you
After the full analysis window has opened or after a few minutes, you should have more detailed logs in the WPCleaner.log file (like the ones below, where 2019 reasons of the Supreme Court of Canada took approximately 5 seconds to load and analyze): could you post them here? Thinks of deactivating the detailed logs, they produce a lot of text...
Detailed logs
22:00:29.885 [Thread-6] INFO  API - GET  https://en.wikipedia.org/w/api.php?continue=&prop=pageprops|info&format=xml&action=query&generator=links&gpllimit=max&titles=2019 reasons of the Supreme Court of Canada&ppprop=disambiguation&gplnamespace=0
22:00:29.896 [MW-1] INFO  API - GET  https://en.wikipedia.org/w/api.php?continue=&prop=revisions|info&inprop=protection&format=xml&rvslots=main&action=query&titles=2019 reasons of the Supreme Court of Canada&rvprop=content|ids|timestamp
22:00:30.528 [Thread-6] INFO  API - GET  https://en.wikipedia.org/w/api.php?redirects=&continue=&prop=pageprops&format=xml&action=query&titles=Clement Gascon&ppprop=disambiguation
22:00:30.803 [Thread-6] INFO  API - GET  https://en.wikipedia.org/w/api.php?continue=&prop=revisions&format=xml&rvslots=main&action=query&titles=Clement Gascon&rvprop=content
22:00:31.004 [Thread-6] INFO  PERF - CheckError.analyzeErrors: Begin
22:00:31.004 [Thread-6] INFO  PERF - PageAnalysis.level1Analysis: Begin
22:00:31.004 [Thread-6] INFO  PERF - PageAnalysis.level1Analysis: End (0ms)
22:00:31.004 [Thread-6] INFO  PERF - PageAnalysis.level2Analysis: Begin
22:00:31.022 [Thread-6] INFO  PERF - PageAnalysis.level2Analysis: End (18ms)
22:00:31.022 [Thread-6] INFO  PERF - PageAnalysis.level3Analysis: Begin
22:00:31.109 [Thread-6] INFO  PERF - PageAnalysis.level3Analysis: End (87ms)
22:00:31.109 [Thread-6] INFO  PERF - PageAnalysis.level3Analysis:   addAreas(1ms)
22:00:31.109 [Thread-6] INFO  PERF - PageAnalysis.level3Analysis:   nextIndex(71ms)
22:00:31.109 [Thread-6] INFO  PERF - PageAnalysis.level3Analysis:   analyze2SquareBrackets(15ms)
22:00:31.109 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (105ms) Error n°1, false, 0 occurrences
22:00:31.310 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (201ms) Error n°2, false, 0 occurrences
22:00:31.324 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (14ms) Error n°3, false, 0 occurrences
22:00:31.324 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°4, false, 0 occurrences
22:00:31.325 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°5, false, 0 occurrences
22:00:31.325 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°6, false, 0 occurrences
22:00:31.325 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°7, false, 0 occurrences
22:00:31.325 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°8, false, 0 occurrences
22:00:31.325 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°9, false, 0 occurrences
22:00:31.333 [Thread-6] INFO  PERF - PageAnalysis.level4Analysis: Begin
22:00:31.366 [Thread-6] INFO  PERF - PageAnalysis.level4Analysis: End (33ms)
22:00:31.366 [Thread-6] INFO  PERF - PageAnalysis.level4Analysis:   analyzeText(32ms)
22:00:31.366 [Thread-6] INFO  PERF - PageAnalysis.level4Analysis:   analyze1SquareBracket(1ms)
22:00:31.366 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (41ms) Error n°10, false, 0 occurrences
22:00:31.367 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°12, false, 0 occurrences
22:00:31.367 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°13, false, 0 occurrences
22:00:31.367 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°14, false, 0 occurrences
22:00:31.367 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°15, false, 0 occurrences
22:00:31.372 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (5ms) Error n°16, false, 0 occurrences
22:00:31.374 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (2ms) Error n°17, false, 0 occurrences
22:00:31.374 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°19, false, 0 occurrences
22:00:31.374 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°20, false, 0 occurrences
22:00:31.374 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°23, false, 0 occurrences
22:00:31.374 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°24, false, 0 occurrences
22:00:31.374 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°25, false, 0 occurrences
22:00:31.374 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°26, false, 0 occurrences
22:00:31.376 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (2ms) Error n°28, false, 0 occurrences
22:00:31.376 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°29, false, 0 occurrences
22:00:31.376 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°31, false, 0 occurrences
22:00:31.376 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°32, false, 0 occurrences
22:00:31.377 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°34, false, 0 occurrences
22:00:31.382 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (5ms) Error n°36, false, 0 occurrences
22:00:31.383 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°37, false, 0 occurrences
22:00:31.383 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°38, false, 0 occurrences
22:00:31.383 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°39, false, 0 occurrences
22:00:31.383 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°40, false, 0 occurrences
22:00:31.383 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°42, false, 0 occurrences
22:00:31.383 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°43, false, 0 occurrences
22:00:31.383 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°44, false, 0 occurrences
22:00:31.383 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°45, false, 0 occurrences
22:00:31.385 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (2ms) Error n°46, false, 0 occurrences
22:00:31.385 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°47, false, 0 occurrences
22:00:31.386 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°48, false, 0 occurrences
22:00:31.386 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°49, false, 0 occurrences
22:00:31.386 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°51, false, 0 occurrences
22:00:31.386 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°52, false, 0 occurrences
22:00:31.386 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°53, false, 0 occurrences
22:00:31.386 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°54, false, 0 occurrences
22:00:31.386 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°55, false, 0 occurrences
22:00:31.386 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°57, false, 0 occurrences
22:00:31.386 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°58, false, 0 occurrences
22:00:31.386 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°59, false, 0 occurrences
22:00:31.386 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°60, false, 0 occurrences
22:00:31.387 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°61, false, 0 occurrences
22:00:31.388 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°62, false, 0 occurrences
22:00:31.388 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°63, false, 0 occurrences
22:00:31.388 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°64, false, 0 occurrences
22:00:31.388 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°65, false, 0 occurrences
22:00:31.388 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°66, false, 0 occurrences
22:00:31.388 [Thread-6] INFO  PERF - PageAnalysis.level5Analysis: Begin
22:00:31.439 [Thread-6] INFO  PERF - PageAnalysis.level5Analysis: End (51ms)
22:00:31.439 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (51ms) Error n°69, false, 0 occurrences
22:00:31.439 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°70, false, 0 occurrences
22:00:31.439 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°71, false, 0 occurrences
22:00:31.439 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°72, false, 0 occurrences
22:00:31.439 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°73, false, 0 occurrences
22:00:31.439 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°74, false, 0 occurrences
22:00:31.439 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°76, false, 0 occurrences
22:00:31.451 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (12ms) Error n°78, false, 0 occurrences
22:00:31.451 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°80, false, 0 occurrences
22:00:31.451 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°81, false, 0 occurrences
22:00:31.451 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°83, false, 0 occurrences
22:00:31.451 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°85, false, 0 occurrences
22:00:31.452 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°86, false, 0 occurrences
22:00:31.452 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°88, false, 0 occurrences
22:00:31.452 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°89, false, 0 occurrences
22:00:31.453 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°90, false, 0 occurrences
22:00:31.601 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (148ms) Error n°91, false, 0 occurrences
22:00:31.601 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°93, false, 0 occurrences
22:00:31.601 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°94, false, 0 occurrences
22:00:31.601 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°95, false, 0 occurrences
22:00:31.613 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (12ms) Error n°96, false, 0 occurrences
22:00:31.613 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°97, false, 0 occurrences
22:00:31.614 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°98, false, 0 occurrences
22:00:31.614 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°99, false, 0 occurrences
22:00:31.614 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°100, false, 0 occurrences
22:00:31.614 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°101, false, 0 occurrences
22:00:31.614 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°102, false, 0 occurrences
22:00:31.615 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°103, false, 0 occurrences
22:00:31.617 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (2ms) Error n°104, false, 0 occurrences
22:00:31.617 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°105, false, 0 occurrences
22:00:31.617 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°106, false, 0 occurrences
22:00:31.617 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°107, false, 0 occurrences
22:00:31.617 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°108, false, 0 occurrences
22:00:31.617 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°109, false, 0 occurrences
22:00:31.617 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°112, false, 0 occurrences
22:00:31.634 [Thread-6] INFO  PERF - PageAnalysis.level6Analysis: Begin
22:00:31.650 [Thread-6] INFO  PERF - PageAnalysis.level6Analysis: End (16ms)
22:00:34.246 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (2629ms) Error n°501, false, 0 occurrences
22:00:34.255 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (9ms) Error n°521, false, 0 occurrences
22:00:34.256 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°524, false, 0 occurrences
22:00:34.256 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°527, false, 0 occurrences
22:00:34.256 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°532, false, 0 occurrences
22:00:34.256 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°533, false, 0 occurrences
22:00:34.256 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°534, false, 0 occurrences
22:00:34.256 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°535, false, 0 occurrences
22:00:34.256 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°536, false, 0 occurrences
22:00:34.256 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°537, false, 0 occurrences
22:00:34.256 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°538, false, 0 occurrences
22:00:34.264 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (8ms) Error n°539, false, 0 occurrences
22:00:34.274 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (10ms) Error n°540, false, 0 occurrences
22:00:34.274 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°542, false, 0 occurrences
22:00:34.274 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°543, false, 0 occurrences
22:00:34.277 [Thread-6] INFO  PERF - CheckError.analyzeErrors: (3ms) Error n°545, false, 0 occurrences
22:00:34.277 [Thread-6] INFO  PERF - CheckError.analyzeErrors: End (3273ms)
22:00:34.323 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: Begin
22:00:34.323 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°1, false, 0 occurrences
22:00:34.323 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°2, false, 0 occurrences
22:00:34.323 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°3, false, 0 occurrences
22:00:34.323 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°4, false, 0 occurrences
22:00:34.323 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°5, false, 0 occurrences
22:00:34.323 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°6, false, 0 occurrences
22:00:34.323 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°7, false, 0 occurrences
22:00:34.323 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°8, false, 0 occurrences
22:00:34.323 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°9, false, 0 occurrences
22:00:34.323 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°10, false, 0 occurrences
22:00:34.323 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°12, false, 0 occurrences
22:00:34.323 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°13, false, 0 occurrences
22:00:34.323 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°14, false, 0 occurrences
22:00:34.323 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°15, false, 0 occurrences
22:00:34.323 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°16, false, 0 occurrences
22:00:34.323 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°17, false, 0 occurrences
22:00:34.323 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°19, false, 0 occurrences
22:00:34.323 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°20, false, 0 occurrences
22:00:34.323 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°23, false, 0 occurrences
22:00:34.323 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°24, false, 0 occurrences
22:00:34.323 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°25, false, 0 occurrences
22:00:34.325 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (2ms) Error n°26, false, 0 occurrences
22:00:34.325 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°28, false, 0 occurrences
22:00:34.325 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°29, false, 0 occurrences
22:00:34.325 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°31, false, 0 occurrences
22:00:34.325 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°32, false, 0 occurrences
22:00:34.325 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°34, false, 0 occurrences
22:00:34.325 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°36, false, 0 occurrences
22:00:34.325 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°37, false, 0 occurrences
22:00:34.325 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°38, false, 0 occurrences
22:00:34.325 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°39, false, 0 occurrences
22:00:34.325 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°40, false, 0 occurrences
22:00:34.325 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°42, false, 0 occurrences
22:00:34.325 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°43, false, 0 occurrences
22:00:34.325 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°44, false, 0 occurrences
22:00:34.325 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°45, false, 0 occurrences
22:00:34.325 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°46, false, 0 occurrences
22:00:34.325 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°47, false, 0 occurrences
22:00:34.326 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°48, false, 0 occurrences
22:00:34.326 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°49, false, 0 occurrences
22:00:34.326 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°51, false, 0 occurrences
22:00:34.326 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°52, false, 0 occurrences
22:00:34.326 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°53, false, 0 occurrences
22:00:34.326 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°54, false, 0 occurrences
22:00:34.326 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°55, false, 0 occurrences
22:00:34.326 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°57, false, 0 occurrences
22:00:34.326 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°58, false, 0 occurrences
22:00:34.326 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°59, false, 0 occurrences
22:00:34.326 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°60, false, 0 occurrences
22:00:34.326 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°61, false, 0 occurrences
22:00:34.326 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°62, false, 0 occurrences
22:00:34.326 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°63, false, 0 occurrences
22:00:34.326 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°64, false, 0 occurrences
22:00:34.326 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°65, false, 0 occurrences
22:00:34.326 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°66, false, 0 occurrences
22:00:34.326 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°69, false, 0 occurrences
22:00:34.326 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°70, false, 0 occurrences
22:00:34.326 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°71, false, 0 occurrences
22:00:34.328 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (2ms) Error n°72, false, 0 occurrences
22:00:34.328 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°73, false, 0 occurrences
22:00:34.328 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°74, false, 0 occurrences
22:00:34.328 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°76, false, 0 occurrences
22:00:34.328 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°78, false, 0 occurrences
22:00:34.328 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°80, false, 0 occurrences
22:00:34.328 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°81, false, 0 occurrences
22:00:34.328 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°83, false, 0 occurrences
22:00:34.328 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°85, false, 0 occurrences
22:00:34.328 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°86, false, 0 occurrences
22:00:34.328 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°88, false, 0 occurrences
22:00:34.328 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°89, false, 0 occurrences
22:00:34.328 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°90, false, 0 occurrences
22:00:34.328 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°91, false, 0 occurrences
22:00:34.328 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°93, false, 0 occurrences
22:00:34.328 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°94, false, 0 occurrences
22:00:34.328 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°95, false, 0 occurrences
22:00:34.329 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°96, false, 0 occurrences
22:00:34.329 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°97, false, 0 occurrences
22:00:34.329 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°98, false, 0 occurrences
22:00:34.329 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°99, false, 0 occurrences
22:00:34.329 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°100, false, 0 occurrences
22:00:34.329 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°101, false, 0 occurrences
22:00:34.329 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°102, false, 0 occurrences
22:00:34.329 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°103, false, 0 occurrences
22:00:34.329 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°104, false, 0 occurrences
22:00:34.329 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°105, false, 0 occurrences
22:00:34.329 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°106, false, 0 occurrences
22:00:34.329 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°107, false, 0 occurrences
22:00:34.329 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°108, false, 0 occurrences
22:00:34.329 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°109, false, 0 occurrences
22:00:34.329 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°112, false, 0 occurrences
22:00:34.329 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°501, false, 0 occurrences
22:00:34.330 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°521, false, 0 occurrences
22:00:34.330 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°524, false, 0 occurrences
22:00:34.330 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°527, false, 0 occurrences
22:00:34.330 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°532, false, 0 occurrences
22:00:34.330 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°533, false, 0 occurrences
22:00:34.330 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°534, false, 0 occurrences
22:00:34.330 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°535, false, 0 occurrences
22:00:34.330 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°536, false, 0 occurrences
22:00:34.330 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°537, false, 0 occurrences
22:00:34.330 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°538, false, 0 occurrences
22:00:34.330 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°539, false, 0 occurrences
22:00:34.330 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°540, false, 0 occurrences
22:00:34.330 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°542, false, 0 occurrences
22:00:34.330 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°543, false, 0 occurrences
22:00:34.330 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°545, false, 0 occurrences
22:00:34.330 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: End (7ms)
--NicoV (Talk on frwiki) 21:11, 7 January 2020 (UTC)
@NicoV: Here's the log:
Detailed logs
22:40:23.550 [Thread-0] INFO  API - GET  https://en.wikipedia.org/w/api.php?meta=tokens&continue=&format=json&action=query&type=login
22:40:24.149 [Thread-0] INFO  API - POST https://en.wikipedia.org/w/api.php?format=xml&action=login&lgname=Jerodlycett
22:40:25.068 [Thread-0] WARN  o.w.api.request.BasicApiResult - Warning reported: main - Subscribe to the mediawiki-api-announce mailing list at <https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce> for notice of API deprecations and breaking changes. Use [[Special:ApiFeatureUsage]] to see usage of deprecated features by your application.
22:40:25.068 [Thread-0] WARN  o.w.api.request.BasicApiResult - Warning reported: login - Main-account login via "action=login" is deprecated and may stop working without warning. To continue login with "action=login", see [[Special:BotPasswords]]. To safely continue using main-account login, see "action=clientlogin".
22:40:25.071 [Thread-0] INFO  API - GET  https://en.wikipedia.org/w/api.php?usprop=groups|rights&continue=&ususers=Jerodlycett&format=xml&action=query&list=users
22:40:25.141 [Thread-0] INFO  API - GET  https://en.wikipedia.org/w/api.php?meta=tokens&continue=&format=json&action=query&type=csrf
22:40:25.210 [Thread-0] INFO  API - GET  https://en.wikipedia.org/w/api.php?siprop=general|namespaces|namespacealiases|languages|interwikimap|magicwords|specialpagealiases&meta=siteinfo&continue=&format=xml&action=query
22:40:25.413 [Thread-0] INFO  API - GET  https://en.wikipedia.org/w/api.php?continue=&prop=revisions|info&inprop=protection&format=xml&rvslots=main&action=query&titles=User:NicoV/WikiCleanerConfiguration|User:Jerodlycett/WikiCleanerConfiguration&rvprop=content|ids|timestamp
22:40:25.544 [Thread-0] INFO  API - GET  https://en.wikipedia.org/w/api.php?continue=&prop=revisions|info&inprop=protection&format=xml&rvslots=main&action=query&titles=Wikipedia:AutoWikiBrowser/Typos&rvprop=content|ids|timestamp
22:40:25.718 [Thread-0] INFO  PERF - PageAnalysis.level1Analysis: Begin
22:40:25.742 [Thread-0] INFO  PERF - PageAnalysis.level1Analysis: End (24ms)
22:40:25.742 [Thread-0] INFO  PERF - PageAnalysis.level2Analysis: Begin
22:40:25.786 [Thread-0] INFO  PERF - PageAnalysis.level2Analysis: End (44ms)
22:40:25.789 [Thread-0] INFO  PERF - PageAnalysis.level3Analysis: Begin
22:40:25.800 [Thread-0] INFO  PERF - PageAnalysis.level3Analysis: End (11ms)
22:40:25.800 [Thread-0] INFO  PERF - PageAnalysis.level3Analysis:   addAreas(1ms)
22:40:25.800 [Thread-0] INFO  PERF - PageAnalysis.level3Analysis:   nextIndex(1ms)
22:40:25.800 [Thread-0] INFO  PERF - PageAnalysis.level3Analysis:   analyze2CurlyBrackets(6ms)
22:40:25.800 [Thread-0] INFO  PERF - PageAnalysis.level3Analysis:   analyze2SquareBrackets(3ms)
22:40:25.828 [Thread-0] WARN  o.w.api.data.Suggestion - Incorrect pattern syntax for [\b([iI])n[aeiou]?d[aeiou]?[aeiou]?v[aeiou]?[aeiou]?d?[aeiou]?[dl]?[aeiou]?[aeiou]?l(?<!nd(?:avl|evel))(?!e[s\b]|l(?:e|os))[aeou]?(?<!ndividu[ae]l)([a-z-\´???’???`']{0,99})]: Illegal/unsupported escape sequence near index 109
\b([iI])n[aeiou]?d[aeiou]?[aeiou]?v[aeiou]?[aeiou]?d?[aeiou]?[dl]?[aeiou]?[aeiou]?l(?<!nd(?:avl|evel))(?!e[s\b]|l(?:e|os))[aeou]?(?<!ndividu[ae]l)([a-z-\´???’???`']{0,99})
                                                                                                             ^
22:40:25.832 [Thread-0] WARN  o.w.api.data.Suggestion - Incorrect pattern syntax for [\b([fF]|[pP]ref|[rR]ef|[uU]nf)omat(?!\s[mM]artin|[mM]artin)(t?(?:a(?:ble|nks?)|e(?:d?|rs?)|i(?:ngs?|on(?:als?|[s\b])|v(?:e(?:ly|s?)|ity))|k(?:ii|y)|or(?:ies|y)|s(?:k(?:ii|y))?))?]: Illegal/unsupported escape sequence near index 113
\b([fF]|[pP]ref|[rR]ef|[uU]nf)omat(?!\s[mM]artin|[mM]artin)(t?(?:a(?:ble|nks?)|e(?:d?|rs?)|i(?:ngs?|on(?:als?|[s\b])|v(?:e(?:ly|s?)|ity))|k(?:ii|y)|or(?:ies|y)|s(?:k(?:ii|y))?))?
                                                                                                                 ^
22:40:25.891 [Thread-0] INFO  API - GET  https://en.wikipedia.org/w/api.php?continue=&prop=revisions|info&inprop=protection&format=xml&rvslots=main&action=query&titles=Wikipedia:WikiProject Check Wikipedia/Translation&rvprop=content|ids|timestamp
22:40:25.998 [Thread-0] INFO  API - GET  https://en.wikipedia.org/w/api.php?continue=&prop=links&pllimit=max&format=xml&action=query&titles=Wikipedia:WikiProject_Check_Wikipedia/Error_103_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_048_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_060_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_101_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_062_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_014_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_054_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_112_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_031_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_046_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_065_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_006_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_095_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_038_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_089_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_025_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_090_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_076_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_097_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_071_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_049_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_087_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_004_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_010_whitelist
22:40:26.117 [Thread-0] INFO  API - GET  https://en.wikipedia.org/w/api.php?continue=&prop=links&pllimit=max&format=xml&action=query&titles=Wikipedia:WikiProject_Check_Wikipedia/Error_019_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_085_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_040_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_015_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_098_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_034_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_028_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_002_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_061_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_047_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_032_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_039_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_058_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_070_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_100_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_026_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_043_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_024_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_105_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_037_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_069_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_005_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_091_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_064_whitelist
22:40:26.308 [Thread-0] INFO  API - GET  https://en.wikipedia.org/w/api.php?ammessages=duplicate-args-category|linter-heading-high-priority|linter-category-deletable-table-tag|linter-category-html5-misnesting|linter-category-misc-tidy-replacement-issues|linter-category-multiline-html-table-in-list|linter-category-multiple-unclosed-formatting-tags|linter-category-pwrap-bug-workaround|linter-category-self-closed-tag|linter-category-tidy-font-bug|linter-category-tidy-whitespace-bug|linter-category-unclosed-quotes-in-heading|linter-heading-medium-priority|linter-category-bogus-image-options|linter-category-fostered|linter-category-misnested-tag|linter-category-multi-colon-escape|linter-category-wikilink-in-extlink|linter-heading-low-priority|linter-category-missing-end-tag|linter-category-obsolete-tag|linter-category-stripped-tag&meta=allmessages&continue=&format=xml&action=query
22:40:36.773 [Thread-2] INFO  API - GET  https://en.wikipedia.org/w/api.php?continue=&prop=pageprops|info&format=xml&action=query&generator=links&gpllimit=max&titles=2019 reasons of the Supreme Court of Canada&ppprop=disambiguation&gplnamespace=0
22:40:36.774 [MW-1] INFO  API - GET  https://en.wikipedia.org/w/api.php?continue=&prop=revisions|info&inprop=protection&format=xml&rvslots=main&action=query&titles=2019 reasons of the Supreme Court of Canada&rvprop=content|ids|timestamp
22:40:36.938 [Thread-2] INFO  API - GET  https://en.wikipedia.org/w/api.php?redirects=&continue=&prop=pageprops&format=xml&action=query&titles=Clement Gascon&ppprop=disambiguation
22:40:37.012 [Thread-2] INFO  API - GET  https://en.wikipedia.org/w/api.php?continue=&prop=revisions&format=xml&rvslots=main&action=query&titles=Clement Gascon&rvprop=content
22:40:37.114 [Thread-2] INFO  PERF - CheckError.analyzeErrors: Begin
22:40:37.114 [Thread-2] INFO  PERF - PageAnalysis.level1Analysis: Begin
22:40:37.115 [Thread-2] INFO  PERF - PageAnalysis.level1Analysis: End (1ms)
22:40:37.115 [Thread-2] INFO  PERF - PageAnalysis.level2Analysis: Begin
22:40:37.121 [Thread-2] INFO  PERF - PageAnalysis.level2Analysis: End (6ms)
22:40:37.122 [Thread-2] INFO  PERF - PageAnalysis.level3Analysis: Begin
22:40:37.148 [Thread-2] INFO  PERF - PageAnalysis.level3Analysis: End (26ms)
22:40:37.148 [Thread-2] INFO  PERF - PageAnalysis.level3Analysis:   addAreas(1ms)
22:40:37.149 [Thread-2] INFO  PERF - PageAnalysis.level3Analysis:   nextIndex(12ms)
22:40:37.149 [Thread-2] INFO  PERF - PageAnalysis.level3Analysis:   analyze2CurlyBrackets(11ms)
22:40:37.149 [Thread-2] INFO  PERF - PageAnalysis.level3Analysis:   analyze2SquareBrackets(2ms)
22:40:37.149 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (35ms) Error n°1, false, 0 occurrences
22:40:37.410 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (261ms) Error n°2, false, 0 occurrences
22:40:37.410 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°3, false, 0 occurrences
22:40:37.411 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°4, false, 0 occurrences
22:40:37.415 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (4ms) Error n°5, false, 0 occurrences
22:40:37.415 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°6, false, 0 occurrences
22:40:37.415 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°7, false, 0 occurrences
22:40:37.417 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (2ms) Error n°8, false, 0 occurrences
22:40:37.417 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°9, false, 0 occurrences
22:40:37.418 [Thread-2] INFO  PERF - PageAnalysis.level4Analysis: Begin
22:40:37.451 [Thread-2] INFO  PERF - PageAnalysis.level4Analysis: End (33ms)
22:40:37.451 [Thread-2] INFO  PERF - PageAnalysis.level4Analysis:   analyzeText(32ms)
22:40:37.451 [Thread-2] INFO  PERF - PageAnalysis.level4Analysis:   analyze1SquareBracket(1ms)
22:40:37.451 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (34ms) Error n°10, false, 0 occurrences
22:40:37.452 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°12, false, 0 occurrences
22:40:37.452 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°13, false, 0 occurrences
22:40:37.452 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°14, false, 0 occurrences
22:40:37.452 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°15, false, 0 occurrences
22:40:37.468 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (16ms) Error n°16, false, 0 occurrences
22:40:37.468 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°17, false, 0 occurrences
22:40:37.469 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°19, false, 0 occurrences
22:40:37.469 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°20, false, 0 occurrences
22:40:37.469 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°23, false, 0 occurrences
22:40:37.469 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°24, false, 0 occurrences
22:40:37.469 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°25, false, 0 occurrences
22:40:37.469 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°26, false, 0 occurrences
22:40:37.473 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (4ms) Error n°28, false, 0 occurrences
22:40:37.473 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°29, false, 0 occurrences
22:40:37.473 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°31, false, 0 occurrences
22:40:37.473 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°32, false, 0 occurrences
22:40:37.479 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (6ms) Error n°34, false, 0 occurrences
22:40:37.483 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (4ms) Error n°36, false, 0 occurrences
22:40:37.484 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°37, false, 0 occurrences
22:40:37.485 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°38, false, 0 occurrences
22:40:37.485 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°39, false, 0 occurrences
22:40:37.485 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°40, false, 0 occurrences
22:40:37.485 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°42, false, 0 occurrences
22:40:37.485 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°43, false, 0 occurrences
22:40:37.485 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°44, false, 0 occurrences
22:40:37.486 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°45, false, 0 occurrences
22:40:37.487 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°46, false, 0 occurrences
22:40:37.488 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°47, false, 0 occurrences
22:40:37.489 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°48, false, 0 occurrences
22:40:37.489 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°49, false, 0 occurrences
22:40:37.489 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°51, false, 0 occurrences
22:40:37.489 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°52, false, 0 occurrences
22:40:37.489 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°53, false, 0 occurrences
22:40:37.489 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°54, false, 0 occurrences
22:40:37.489 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°55, false, 0 occurrences
22:40:37.490 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°57, false, 0 occurrences
22:40:37.490 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°58, false, 0 occurrences
22:40:37.490 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°59, false, 0 occurrences
22:40:37.490 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°60, false, 0 occurrences
22:40:37.491 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°61, false, 0 occurrences
22:40:37.492 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°62, false, 0 occurrences
22:40:37.492 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°63, false, 0 occurrences
22:40:37.493 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°64, false, 0 occurrences
22:40:37.493 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°65, false, 0 occurrences
22:40:37.493 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°66, false, 0 occurrences
22:40:37.493 [Thread-2] INFO  PERF - PageAnalysis.level5Analysis: Begin
22:40:37.562 [Thread-2] INFO  PERF - PageAnalysis.level5Analysis: End (69ms)
22:40:37.563 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (70ms) Error n°69, false, 0 occurrences
22:40:37.563 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°70, false, 0 occurrences
22:40:37.563 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°71, false, 0 occurrences
22:40:37.563 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°72, false, 0 occurrences
22:40:37.563 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°73, false, 0 occurrences
22:40:37.563 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°74, false, 0 occurrences
22:40:37.563 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°76, false, 0 occurrences
22:40:37.565 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (2ms) Error n°78, false, 0 occurrences
22:40:37.565 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°80, false, 0 occurrences
22:40:37.565 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°81, false, 0 occurrences
22:40:37.565 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°83, false, 0 occurrences
22:40:37.565 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°85, false, 0 occurrences
22:40:37.565 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°86, false, 0 occurrences
22:40:37.565 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°88, false, 0 occurrences
22:40:37.566 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°89, false, 0 occurrences
22:40:37.573 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (7ms) Error n°90, false, 0 occurrences
22:40:37.754 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (180ms) Error n°91, false, 0 occurrences
22:40:37.755 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (2ms) Error n°93, false, 0 occurrences
22:40:37.755 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°94, false, 0 occurrences
22:40:37.755 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°95, false, 0 occurrences
22:40:37.758 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (3ms) Error n°96, false, 0 occurrences
22:40:37.758 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°97, false, 0 occurrences
22:40:37.758 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°98, false, 0 occurrences
22:40:37.758 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°99, false, 0 occurrences
22:40:37.758 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°100, false, 0 occurrences
22:40:37.758 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°101, false, 0 occurrences
22:40:37.759 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°102, false, 0 occurrences
22:40:37.760 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°103, false, 0 occurrences
22:40:37.768 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (8ms) Error n°104, false, 0 occurrences
22:40:37.778 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (10ms) Error n°105, false, 0 occurrences
22:40:37.778 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°106, false, 0 occurrences
22:40:37.778 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°107, false, 0 occurrences
22:40:37.778 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°108, false, 0 occurrences
22:40:37.778 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°109, false, 0 occurrences
22:40:37.779 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°112, false, 0 occurrences
22:40:37.786 [Thread-2] INFO  PERF - PageAnalysis.level6Analysis: Begin
22:40:37.821 [Thread-2] INFO  PERF - PageAnalysis.level6Analysis: End (35ms)
22:40:50.514 [Thread-2] INFO  PERF - Slow regular expression: Typo AWB -fully:(?<=\b(?:[A-Z][a-z]*|[a-z]+))fuly\b(12607ms)
22:41:21.127 [Thread-2] INFO  PERF - Slow regular expression: Typo AWB -itely:(?<=\b(?:[A-Z][a-z]*|[a-z]+)[lnst])(?<![qQ]ual)itly\b(30554ms)
22:41:46.163 [Thread-2] INFO  PERF - Slow regular expression: Typo AWB -nally:(?<=\b(?:[A-Z][a-z]*|[a-z]+)[a-mo-z])(?:anlly|nalyl)\b(24740ms)
22:41:58.558 [Thread-2] INFO  PERF - Slow regular expression: Typo AWB -acious:(?<=\b(?:[A-Z][a-z]*|[a-z]+))acitous(?<!anthracitous)(ly|ness(?:es)?)?\b(12303ms)
22:42:12.434 [Thread-2] INFO  PERF - Slow regular expression: Typo AWB -bility:(?<=\b(?:[A-Z][a-z]*|[a-z]+))b(?:il|li)(?:li?)?t(ies|y)\b(13845ms)
22:43:22.159 [Thread-2] INFO  PERF - Slow regular expression: Typo AWB -ally (2):(?<=\b(?:(?:[A-Z][a-z-]*|[a-z-]+)(?:[enu]|ic?)))alyl?\b(?<!(?:Ann?|B(?:allyhe|i|on|ri)|br?i|C(?:onne|re)|D(?:e|o[nu])|F(?:e|in)|G(?:lene|re)|He|K(?:an|e(?:nn?e)?|i(?:lte|nn?s?e))|M(?:cNealy|e)|me|N(?:an|e)|Que?|S(?:e|[hm]e|pezi)|Vit|Whe)aly|[lL]inalyl|oualy|[sS]ialyl)(69717ms)
22:43:36.822 [Thread-2] INFO  PERF - Slow regular expression: Typo AWB -ively:(?<=\b(?:[A-Z][a-z]*|[a-z]+))ivly\b(14644ms)
22:43:49.429 [Thread-2] INFO  PERF - Slow regular expression: Typo AWB -eaning:(?<=\b(?:[A-Z][a-z]*|[a-z]+))ean(?:in|ni)ng\b(12597ms)
22:44:02.905 [Thread-2] INFO  PERF - Slow regular expression: Typo AWB -ictive:(?<=\b(?:[A-Z][a-z]*|[a-z]+))icitve(ly|s?)\b(13333ms)
22:44:15.890 [Thread-2] INFO  PERF - Slow regular expression: Typo AWB -fering:(?<=\b(?:[A-Z][a-z]*|[a-z]+))fereing(s)?\b(12916ms)
22:44:28.421 [Thread-2] INFO  PERF - Slow regular expression: Typo AWB -geni(s/z)e:(?<=\b(?:[A-Z][a-z]*|[a-z]+))genei([sz][a-z]+)\b(12485ms)
22:46:37.495 [Thread-2] INFO  PERF - Slow regular expression: Typo AWB -ally (1):(?<=\b(?:(?:[A-Z][a-z]*|[a-z]+)(?:[cd]i|er|gi|i(?:[cn]|on)|li|n[it]|ot|son|[tv]i)))aly\b(?<!Finaly|qualy)(129067ms)
22:46:52.062 [Thread-2] INFO  PERF - Slow regular expression: Typo AWB -acity:(?<=\b(?:[A-Z][a-z]*|[a-z]+))act?iy\b(14482ms)
22:47:04.739 [Thread-2] INFO  PERF - Slow regular expression: Typo AWB -solutely:(?<=\b(?:[A-Z][a-z]*|[a-z]+))solutly\b(12451ms)
22:47:18.853 [Thread-2] INFO  PERF - Slow regular expression: Typo AWB -ology:(?<=\b(?:[A-Z][a-z]*|[a-z]+))ol(?:[ai]?|ol)g(y(?<![vV]olgy\b)|i(?:c[a-z]*|es|sts?))\b(13997ms)
22:47:49.058 [Thread-2] INFO  PERF - Slow regular expression: Typo AWB -(c/l/t)ious:(?<=\b(?:[A-Z][a-z]*|[a-z]+)[clt])ioous([a-z]*)\b(30168ms)
22:48:04.443 [Thread-2] INFO  PERF - Slow regular expression: Typo AWB -wed/-wing:(?<=\b(?:[A-Z][a-z]*|[a-z]+))ww(ed|ing|s)\b(15382ms)
22:48:19.303 [Thread-2] INFO  PERF - Slow regular expression: Typo AWB -ining:(?<=\b(?:[A-Z][a-z]*|[a-z]+))inig(ly|s?)\b(?<!\b(?:Bre|He|K(?:le|urt)|Lap|Me|Nar(?:ir)?|Re|Stee|[tT]|We)inig\b)(14783ms)
22:48:31.512 [Thread-2] INFO  PERF - Slow regular expression: Typo AWB -(g/p)ressive:(?<=\b(?:[A-Z][a-z]*|[a-z]+))([gp]res)i(ons?|ve[a-z]*)\b(12150ms)
22:49:01.829 [Thread-2] INFO  PERF - Slow regular expression: Typo AWB -ately_:(?<=\b(?:[A-Z][a-z]*|[a-z]+)[bcdgimstv])atly\b(30149ms)
22:49:37.375 [Thread-2] INFO  PERF - Slow regular expression: Typo AWB -(a/e/i/o/u)(c/n/o/r/s)king:(?<=\b(?:[A-Z][a-z]*|[a-z]+)[aeiou][cnors])kign\b(35020ms)
22:49:49.535 [Thread-2] INFO  PERF - Slow regular expression: Typo AWB -tional(ly):(?<=\b(?:[A-Z][a-z]*|[a-z]+))tion(?:a(ly)|nal(ly)?)\b(12113ms)
22:50:04.381 [Thread-2] INFO  PERF - Slow regular expression: Typo AWB -XXX(ed/er/ing/ive):(?<=\b(?:[A-Z][a-z]*|[a-z]+))([aeiou])([bdfgklmnprstvz])\2{2,}(e(?:d|rs?)|i(?:ngs?|ons?|ves?)|ors?)\b(14837ms)
22:50:17.912 [Thread-2] INFO  PERF - Slow regular expression: Typo AWB -ation:(?<=\b(?:[A-Z][a-z]*|[a-z]+))ati?oin(al(?:ly)?|ed|ing|s?)\b(13431ms)
22:50:31.527 [Thread-2] INFO  PERF - Slow regular expression: Typo AWB -vement:(?<=\b(?:[A-Z][a-z]*|[a-z]+))vment(al|ed|ing|s?)\b(13358ms)
22:50:43.184 [Thread-2] INFO  PERF - Slow regular expression: Typo AWB -ilities:(?<=\b(?:[A-Z][a-z]*|[a-z]+))ill+ities\b(11652ms)
22:51:12.089 [Thread-2] INFO  PERF - Slow regular expression: Typo AWB -tally:(?<=\b(?:[A-Z][a-z]*|[a-z]+)[b-eghj-z])talyl?\b(28823ms)
22:51:25.835 [Thread-2] INFO  PERF - Slow regular expression: Typo AWB -tion(s):(?<=\b(?:[A-Z][a-z]*|[a-z]+))tio(?:i|(s))n\b(13585ms)
22:51:38.309 [Thread-2] INFO  PERF - Slow regular expression: Typo AWB -soning:(?<=\b(?:[A-Z][a-z]*|[a-z]+))soninig\b(12372ms)
22:51:59.917 [Thread-2] INFO  PERF - Slow regular expression: Typo AWB High-profile:\b(?<!(?:[bB]ecause\s+of\s+(?:h(?:er|is)|its|their)|(?:achiev(?:e[ds]?|ing)|creat(?:e[ds]?|ing)|display(?:ed|ing|s?)|ha(?:s|ve)|ke(?:ep(?:ing|s?)|pt)|maintain(?:ed|ing|s?)|retain(?:ed|ing|s?)|with)\s+a)\s+)([hH])igh(?<![A-Z][A-Za-z]+\s+High|specified\s+High|the\s+High)\s+profile\b(?!,|\s+(?:a(?:nd|s)|for|in|of)\b)(21470ms)
22:51:59.949 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (682170ms) Error n°501, false, 0 occurrences
22:51:59.955 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (6ms) Error n°521, false, 0 occurrences
22:51:59.956 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°524, false, 0 occurrences
22:51:59.956 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°527, false, 0 occurrences
22:51:59.956 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°532, false, 0 occurrences
22:51:59.956 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°533, false, 0 occurrences
22:51:59.956 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°534, false, 0 occurrences
22:51:59.956 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°535, false, 0 occurrences
22:51:59.957 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°536, false, 0 occurrences
22:51:59.957 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°537, false, 0 occurrences
22:51:59.957 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°538, false, 0 occurrences
22:51:59.965 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (8ms) Error n°539, false, 0 occurrences
22:51:59.978 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (13ms) Error n°540, false, 0 occurrences
22:51:59.979 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°542, false, 0 occurrences
22:51:59.979 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°543, false, 0 occurrences
22:51:59.980 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°545, false, 0 occurrences
22:51:59.981 [Thread-2] INFO  PERF - CheckError.analyzeErrors: End (682867ms)
22:52:00.044 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: Begin
22:52:00.044 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°1, false, 0 occurrences
22:52:00.045 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°2, false, 0 occurrences
22:52:00.045 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°3, false, 0 occurrences
22:52:00.045 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°4, false, 0 occurrences
22:52:00.045 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°5, false, 0 occurrences
22:52:00.045 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°6, false, 0 occurrences
22:52:00.045 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°7, false, 0 occurrences
22:52:00.045 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°8, false, 0 occurrences
22:52:00.045 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°9, false, 0 occurrences
22:52:00.046 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°10, false, 0 occurrences
22:52:00.046 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°12, false, 0 occurrences
22:52:00.046 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°13, false, 0 occurrences
22:52:00.046 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°14, false, 0 occurrences
22:52:00.046 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°15, false, 0 occurrences
22:52:00.046 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°16, false, 0 occurrences
22:52:00.046 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°17, false, 0 occurrences
22:52:00.047 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°19, false, 0 occurrences
22:52:00.047 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°20, false, 0 occurrences
22:52:00.047 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°23, false, 0 occurrences
22:52:00.047 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°24, false, 0 occurrences
22:52:00.047 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°25, false, 0 occurrences
22:52:00.047 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°26, false, 0 occurrences
22:52:00.048 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°28, false, 0 occurrences
22:52:00.048 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°29, false, 0 occurrences
22:52:00.048 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°31, false, 0 occurrences
22:52:00.048 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°32, false, 0 occurrences
22:52:00.048 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°34, false, 0 occurrences
22:52:00.048 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°36, false, 0 occurrences
22:52:00.049 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°37, false, 0 occurrences
22:52:00.049 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°38, false, 0 occurrences
22:52:00.049 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°39, false, 0 occurrences
22:52:00.049 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°40, false, 0 occurrences
22:52:00.049 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°42, false, 0 occurrences
22:52:00.049 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°43, false, 0 occurrences
22:52:00.050 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°44, false, 0 occurrences
22:52:00.050 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°45, false, 0 occurrences
22:52:00.050 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°46, false, 0 occurrences
22:52:00.050 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°47, false, 0 occurrences
22:52:00.050 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°48, false, 0 occurrences
22:52:00.050 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°49, false, 0 occurrences
22:52:00.050 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°51, false, 0 occurrences
22:52:00.050 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°52, false, 0 occurrences
22:52:00.050 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°53, false, 0 occurrences
22:52:00.051 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°54, false, 0 occurrences
22:52:00.051 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°55, false, 0 occurrences
22:52:00.051 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°57, false, 0 occurrences
22:52:00.051 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°58, false, 0 occurrences
22:52:00.051 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°59, false, 0 occurrences
22:52:00.051 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°60, false, 0 occurrences
22:52:00.051 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°61, false, 0 occurrences
22:52:00.051 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°62, false, 0 occurrences
22:52:00.051 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°63, false, 0 occurrences
22:52:00.051 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°64, false, 0 occurrences
22:52:00.051 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°65, false, 0 occurrences
22:52:00.051 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°66, false, 0 occurrences
22:52:00.052 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°69, false, 0 occurrences
22:52:00.052 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°70, false, 0 occurrences
22:52:00.052 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°71, false, 0 occurrences
22:52:00.052 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°72, false, 0 occurrences
22:52:00.052 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°73, false, 0 occurrences
22:52:00.052 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°74, false, 0 occurrences
22:52:00.052 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°76, false, 0 occurrences
22:52:00.052 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°78, false, 0 occurrences
22:52:00.052 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°80, false, 0 occurrences
22:52:00.052 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°81, false, 0 occurrences
22:52:00.053 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°83, false, 0 occurrences
22:52:00.053 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°85, false, 0 occurrences
22:52:00.053 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°86, false, 0 occurrences
22:52:00.053 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°88, false, 0 occurrences
22:52:00.053 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°89, false, 0 occurrences
22:52:00.053 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°90, false, 0 occurrences
22:52:00.053 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°91, false, 0 occurrences
22:52:00.053 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°93, false, 0 occurrences
22:52:00.054 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°94, false, 0 occurrences
22:52:00.054 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°95, false, 0 occurrences
22:52:00.054 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°96, false, 0 occurrences
22:52:00.054 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°97, false, 0 occurrences
22:52:00.054 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°98, false, 0 occurrences
22:52:00.054 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°99, false, 0 occurrences
22:52:00.054 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°100, false, 0 occurrences
22:52:00.054 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°101, false, 0 occurrences
22:52:00.054 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°102, false, 0 occurrences
22:52:00.054 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°103, false, 0 occurrences
22:52:00.054 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°104, false, 0 occurrences
22:52:00.055 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°105, false, 0 occurrences
22:52:00.055 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°106, false, 0 occurrences
22:52:00.055 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°107, false, 0 occurrences
22:52:00.055 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°108, false, 0 occurrences
22:52:00.055 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°109, false, 0 occurrences
22:52:00.055 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°112, false, 0 occurrences
22:52:00.055 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°501, false, 0 occurrences
22:52:00.055 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°521, false, 0 occurrences
22:52:00.055 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°524, false, 0 occurrences
22:52:00.056 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°527, false, 0 occurrences
22:52:00.056 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°532, false, 0 occurrences
22:52:00.056 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°533, false, 0 occurrences
22:52:00.056 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°534, false, 0 occurrences
22:52:00.056 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°535, false, 0 occurrences
22:52:00.056 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°536, false, 0 occurrences
22:52:00.056 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°537, false, 0 occurrences
22:52:00.056 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°538, false, 0 occurrences
22:52:00.056 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°539, false, 0 occurrences
22:52:00.056 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°540, false, 0 occurrences
22:52:00.056 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°542, false, 0 occurrences
22:52:00.056 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°543, false, 0 occurrences
22:52:00.057 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°545, false, 0 occurrences
22:52:00.057 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: End (13ms)
Jerod Lycett (talk) 03:55, 8 January 2020 (UTC)
Thanks Jerod Lycett! Apparently, it took 11 minutes and 24 seconds for you, almost all time spent (11 minutes and 22 seconds) on spelling and typography with about 30 slow regular expressions from Wikipedia:AutoWikiBrowser/Typos. They seem to have the same problems has the 4 ones that I've fixed (first part of the regular expression is complex and slow). I will look into them to speed them up, and it should be well better after that. --NicoV (Talk on frwiki) 07:03, 8 January 2020 (UTC)
Hi Jerod Lycett. I've made the 30 optimizations to AWB's regular expressions. What's the result for you? Fingers crossed, but I really hope for a drastic performance improvement...
Everyone: if you see again some slowness on page analysis for big pages (ones big enough for syntax highlighting to be disabled, because syntax highlighting if really time consuming...), try activating the detailed logs to see if there's a slow regular expression causing the trouble, and tell me, I can help optimizing them... --NicoV (Talk on frwiki) 08:46, 8 January 2020 (UTC)
@NicoV: It seems to have helped quite a bit. Hopefully those are all of them.
Post-fix log
03:47:56.159 [Thread-0] INFO  API - GET  https://en.wikipedia.org/w/api.php?meta=tokens&continue=&format=json&action=query&type=login
03:47:56.815 [Thread-0] INFO  API - POST https://en.wikipedia.org/w/api.php?format=xml&action=login&lgname=Jerodlycett
03:47:57.690 [Thread-0] WARN  o.w.api.request.BasicApiResult - Warning reported: main - Subscribe to the mediawiki-api-announce mailing list at <https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce> for notice of API deprecations and breaking changes. Use [[Special:ApiFeatureUsage]] to see usage of deprecated features by your application.
03:47:57.690 [Thread-0] WARN  o.w.api.request.BasicApiResult - Warning reported: login - Main-account login via "action=login" is deprecated and may stop working without warning. To continue login with "action=login", see [[Special:BotPasswords]]. To safely continue using main-account login, see "action=clientlogin".
03:47:57.692 [Thread-0] INFO  API - GET  https://en.wikipedia.org/w/api.php?usprop=groups|rights&continue=&ususers=Jerodlycett&format=xml&action=query&list=users
03:47:57.755 [Thread-0] INFO  API - GET  https://en.wikipedia.org/w/api.php?meta=tokens&continue=&format=json&action=query&type=csrf
03:47:57.827 [Thread-0] INFO  API - GET  https://en.wikipedia.org/w/api.php?siprop=general|namespaces|namespacealiases|languages|interwikimap|magicwords|specialpagealiases&meta=siteinfo&continue=&format=xml&action=query
03:47:58.031 [Thread-0] INFO  API - GET  https://en.wikipedia.org/w/api.php?continue=&prop=revisions|info&inprop=protection&format=xml&rvslots=main&action=query&titles=User:NicoV/WikiCleanerConfiguration|User:Jerodlycett/WikiCleanerConfiguration&rvprop=content|ids|timestamp
03:47:58.165 [Thread-0] INFO  API - GET  https://en.wikipedia.org/w/api.php?continue=&prop=revisions|info&inprop=protection&format=xml&rvslots=main&action=query&titles=Wikipedia:AutoWikiBrowser/Typos&rvprop=content|ids|timestamp
03:47:58.333 [Thread-0] INFO  PERF - PageAnalysis.level1Analysis: Begin
03:47:58.347 [Thread-0] INFO  PERF - PageAnalysis.level1Analysis: End (14ms)
03:47:58.348 [Thread-0] INFO  PERF - PageAnalysis.level2Analysis: Begin
03:47:58.394 [Thread-0] INFO  PERF - PageAnalysis.level2Analysis: End (46ms)
03:47:58.396 [Thread-0] INFO  PERF - PageAnalysis.level3Analysis: Begin
03:47:58.407 [Thread-0] INFO  PERF - PageAnalysis.level3Analysis: End (11ms)
03:47:58.407 [Thread-0] INFO  PERF - PageAnalysis.level3Analysis:   analyze1Equal(1ms)
03:47:58.408 [Thread-0] INFO  PERF - PageAnalysis.level3Analysis:   addAreas(1ms)
03:47:58.408 [Thread-0] INFO  PERF - PageAnalysis.level3Analysis:   nextIndex(2ms)
03:47:58.408 [Thread-0] INFO  PERF - PageAnalysis.level3Analysis:   analyze2CurlyBrackets(6ms)
03:47:58.408 [Thread-0] INFO  PERF - PageAnalysis.level3Analysis:   analyze2SquareBrackets(1ms)
03:47:58.417 [Thread-0] WARN  o.w.api.data.Suggestion - Incorrect pattern syntax for [\b(?=[hH])igh)(?<!(?:[bB]ecause\s+of\s+(?:h(?:er|is)|its|their)|(?:achiev(?:e[ds]?|ing)|creat(?:e[ds]?|ing)|display(?:ed|ing|s?)|ha(?:s|ve)|ke(?:ep(?:ing|s?)|pt)|maintain(?:ed|ing|s?)|retain(?:ed|ing|s?)|with)\s+a)\s+)([hH])igh(?<![A-Z][A-Za-z]+\s+High|specified\s+High|the\s+High)\s+profile\b(?!,|\s+(?:a(?:nd|s)|for|in|of)\b)]: Unmatched closing ')' near index 12
\b(?=[hH])igh)(?<!(?:[bB]ecause\s+of\s+(?:h(?:er|is)|its|their)|(?:achiev(?:e[ds]?|ing)|creat(?:e[ds]?|ing)|display(?:ed|ing|s?)|ha(?:s|ve)|ke(?:ep(?:ing|s?)|pt)|maintain(?:ed|ing|s?)|retain(?:ed|ing|s?)|with)\s+a)\s+)([hH])igh(?<![A-Z][A-Za-z]+\s+High|specified\s+High|the\s+High)\s+profile\b(?!,|\s+(?:a(?:nd|s)|for|in|of)\b)
            ^
03:47:58.442 [Thread-0] WARN  o.w.api.data.Suggestion - Incorrect pattern syntax for [\b([iI])n[aeiou]?d[aeiou]?[aeiou]?v[aeiou]?[aeiou]?d?[aeiou]?[dl]?[aeiou]?[aeiou]?l(?<!nd(?:avl|evel))(?!e[s\b]|l(?:e|os))[aeou]?(?<!ndividu[ae]l)([a-z-\´???’???`']{0,99})]: Illegal/unsupported escape sequence near index 109
\b([iI])n[aeiou]?d[aeiou]?[aeiou]?v[aeiou]?[aeiou]?d?[aeiou]?[dl]?[aeiou]?[aeiou]?l(?<!nd(?:avl|evel))(?!e[s\b]|l(?:e|os))[aeou]?(?<!ndividu[ae]l)([a-z-\´???’???`']{0,99})
                                                                                                             ^
03:47:58.445 [Thread-0] WARN  o.w.api.data.Suggestion - Incorrect pattern syntax for [\b([fF]|[pP]ref|[rR]ef|[uU]nf)omat(?!\s[mM]artin|[mM]artin)(t?(?:a(?:ble|nks?)|e(?:d?|rs?)|i(?:ngs?|on(?:als?|[s\b])|v(?:e(?:ly|s?)|ity))|k(?:ii|y)|or(?:ies|y)|s(?:k(?:ii|y))?))?]: Illegal/unsupported escape sequence near index 113
\b([fF]|[pP]ref|[rR]ef|[uU]nf)omat(?!\s[mM]artin|[mM]artin)(t?(?:a(?:ble|nks?)|e(?:d?|rs?)|i(?:ngs?|on(?:als?|[s\b])|v(?:e(?:ly|s?)|ity))|k(?:ii|y)|or(?:ies|y)|s(?:k(?:ii|y))?))?
                                                                                                                 ^
03:47:58.498 [Thread-0] WARN  o.w.api.data.Suggestion - Incorrect pattern syntax for [(?=[aeiou][cnors])kign)(?<=\b(?:[A-Z][a-z]*|[a-z]+)[aeiou][cnors])kign\b]: Unmatched closing ')' near index 21
(?=[aeiou][cnors])kign)(?<=\b(?:[A-Z][a-z]*|[a-z]+)[aeiou][cnors])kign\b
                     ^
03:47:58.510 [Thread-0] INFO  API - GET  https://en.wikipedia.org/w/api.php?continue=&prop=revisions|info&inprop=protection&format=xml&rvslots=main&action=query&titles=Wikipedia:WikiProject Check Wikipedia/Translation&rvprop=content|ids|timestamp
03:47:58.628 [Thread-0] INFO  API - GET  https://en.wikipedia.org/w/api.php?continue=&prop=links&pllimit=max&format=xml&action=query&titles=Wikipedia:WikiProject_Check_Wikipedia/Error_103_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_048_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_060_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_101_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_062_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_014_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_054_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_112_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_031_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_046_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_065_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_006_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_095_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_038_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_089_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_025_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_090_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_076_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_097_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_071_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_049_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_087_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_004_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_010_whitelist
03:47:58.753 [Thread-0] INFO  API - GET  https://en.wikipedia.org/w/api.php?continue=&prop=links&pllimit=max&format=xml&action=query&titles=Wikipedia:WikiProject_Check_Wikipedia/Error_019_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_085_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_040_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_015_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_098_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_034_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_028_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_002_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_061_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_047_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_032_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_039_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_058_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_070_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_100_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_026_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_043_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_024_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_105_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_037_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_069_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_005_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_091_whitelist|Wikipedia:WikiProject_Check_Wikipedia/Error_064_whitelist
03:47:58.959 [Thread-0] INFO  API - GET  https://en.wikipedia.org/w/api.php?ammessages=duplicate-args-category|linter-heading-high-priority|linter-category-deletable-table-tag|linter-category-html5-misnesting|linter-category-misc-tidy-replacement-issues|linter-category-multiline-html-table-in-list|linter-category-multiple-unclosed-formatting-tags|linter-category-pwrap-bug-workaround|linter-category-self-closed-tag|linter-category-tidy-font-bug|linter-category-tidy-whitespace-bug|linter-category-unclosed-quotes-in-heading|linter-heading-medium-priority|linter-category-bogus-image-options|linter-category-fostered|linter-category-misnested-tag|linter-category-multi-colon-escape|linter-category-wikilink-in-extlink|linter-heading-low-priority|linter-category-missing-end-tag|linter-category-obsolete-tag|linter-category-stripped-tag&meta=allmessages&continue=&format=xml&action=query
03:48:04.578 [Thread-2] INFO  API - GET  https://en.wikipedia.org/w/api.php?continue=&prop=pageprops|info&format=xml&action=query&generator=links&gpllimit=max&titles=2019 reasons of the Supreme Court of Canada&ppprop=disambiguation&gplnamespace=0
03:48:04.578 [MW-1] INFO  API - GET  https://en.wikipedia.org/w/api.php?continue=&prop=revisions|info&inprop=protection&format=xml&rvslots=main&action=query&titles=2019 reasons of the Supreme Court of Canada&rvprop=content|ids|timestamp
03:48:04.696 [Thread-2] INFO  API - GET  https://en.wikipedia.org/w/api.php?redirects=&continue=&prop=pageprops&format=xml&action=query&titles=Clement Gascon&ppprop=disambiguation
03:48:04.764 [Thread-2] INFO  API - GET  https://en.wikipedia.org/w/api.php?continue=&prop=revisions&format=xml&rvslots=main&action=query&titles=Clement Gascon&rvprop=content
03:48:04.835 [Thread-2] INFO  PERF - CheckError.analyzeErrors: Begin
03:48:04.835 [Thread-2] INFO  PERF - PageAnalysis.level1Analysis: Begin
03:48:04.836 [Thread-2] INFO  PERF - PageAnalysis.level1Analysis: End (1ms)
03:48:04.836 [Thread-2] INFO  PERF - PageAnalysis.level2Analysis: Begin
03:48:04.841 [Thread-2] INFO  PERF - PageAnalysis.level2Analysis: End (5ms)
03:48:04.841 [Thread-2] INFO  PERF - PageAnalysis.level3Analysis: Begin
03:48:04.871 [Thread-2] INFO  PERF - PageAnalysis.level3Analysis: End (30ms)
03:48:04.871 [Thread-2] INFO  PERF - PageAnalysis.level3Analysis:   analyze1Equal(1ms)
03:48:04.871 [Thread-2] INFO  PERF - PageAnalysis.level3Analysis:   addAreas(1ms)
03:48:04.871 [Thread-2] INFO  PERF - PageAnalysis.level3Analysis:   nextIndex(13ms)
03:48:04.872 [Thread-2] INFO  PERF - PageAnalysis.level3Analysis:   analyze2CurlyBrackets(11ms)
03:48:04.872 [Thread-2] INFO  PERF - PageAnalysis.level3Analysis:   analyze2SquareBrackets(4ms)
03:48:04.873 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (38ms) Error n°1, false, 0 occurrences
03:48:05.097 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (224ms) Error n°2, false, 0 occurrences
03:48:05.098 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°3, false, 0 occurrences
03:48:05.098 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°4, false, 0 occurrences
03:48:05.104 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (6ms) Error n°5, false, 0 occurrences
03:48:05.104 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°6, false, 0 occurrences
03:48:05.105 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°7, false, 0 occurrences
03:48:05.107 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (2ms) Error n°8, false, 0 occurrences
03:48:05.107 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°9, false, 0 occurrences
03:48:05.108 [Thread-2] INFO  PERF - PageAnalysis.level4Analysis: Begin
03:48:05.149 [Thread-2] INFO  PERF - PageAnalysis.level4Analysis: End (41ms)
03:48:05.150 [Thread-2] INFO  PERF - PageAnalysis.level4Analysis:   analyzeText(41ms)
03:48:05.150 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (43ms) Error n°10, false, 0 occurrences
03:48:05.150 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°12, false, 0 occurrences
03:48:05.151 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°13, false, 0 occurrences
03:48:05.151 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°14, false, 0 occurrences
03:48:05.151 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°15, false, 0 occurrences
03:48:05.170 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (19ms) Error n°16, false, 0 occurrences
03:48:05.170 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°17, false, 0 occurrences
03:48:05.171 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°19, false, 0 occurrences
03:48:05.171 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°20, false, 0 occurrences
03:48:05.171 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°23, false, 0 occurrences
03:48:05.171 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°24, false, 0 occurrences
03:48:05.171 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°25, false, 0 occurrences
03:48:05.172 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°26, false, 0 occurrences
03:48:05.178 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (6ms) Error n°28, false, 0 occurrences
03:48:05.178 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°29, false, 0 occurrences
03:48:05.179 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°31, false, 0 occurrences
03:48:05.179 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°32, false, 0 occurrences
03:48:05.187 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (8ms) Error n°34, false, 0 occurrences
03:48:05.191 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (4ms) Error n°36, false, 0 occurrences
03:48:05.194 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (3ms) Error n°37, false, 0 occurrences
03:48:05.194 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°38, false, 0 occurrences
03:48:05.194 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°39, false, 0 occurrences
03:48:05.195 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°40, false, 0 occurrences
03:48:05.195 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°42, false, 0 occurrences
03:48:05.195 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°43, false, 0 occurrences
03:48:05.196 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°44, false, 0 occurrences
03:48:05.196 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°45, false, 0 occurrences
03:48:05.198 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (2ms) Error n°46, false, 0 occurrences
03:48:05.199 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°47, false, 0 occurrences
03:48:05.200 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (2ms) Error n°48, false, 0 occurrences
03:48:05.201 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°49, false, 0 occurrences
03:48:05.203 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (2ms) Error n°51, false, 0 occurrences
03:48:05.203 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°52, false, 0 occurrences
03:48:05.203 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°53, false, 0 occurrences
03:48:05.204 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°54, false, 0 occurrences
03:48:05.204 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°55, false, 0 occurrences
03:48:05.204 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°57, false, 0 occurrences
03:48:05.204 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°58, false, 0 occurrences
03:48:05.205 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°59, false, 0 occurrences
03:48:05.205 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°60, false, 0 occurrences
03:48:05.207 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (2ms) Error n°61, false, 0 occurrences
03:48:05.207 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°62, false, 0 occurrences
03:48:05.207 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°63, false, 0 occurrences
03:48:05.209 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (2ms) Error n°64, false, 0 occurrences
03:48:05.209 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°65, false, 0 occurrences
03:48:05.210 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°66, false, 0 occurrences
03:48:05.210 [Thread-2] INFO  PERF - PageAnalysis.level5Analysis: Begin
03:48:05.285 [Thread-2] INFO  PERF - PageAnalysis.level5Analysis: End (75ms)
03:48:05.285 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (75ms) Error n°69, false, 0 occurrences
03:48:05.285 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°70, false, 0 occurrences
03:48:05.285 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°71, false, 0 occurrences
03:48:05.286 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°72, false, 0 occurrences
03:48:05.286 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°73, false, 0 occurrences
03:48:05.286 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°74, false, 0 occurrences
03:48:05.286 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°76, false, 0 occurrences
03:48:05.288 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (2ms) Error n°78, false, 0 occurrences
03:48:05.288 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°80, false, 0 occurrences
03:48:05.289 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°81, false, 0 occurrences
03:48:05.289 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°83, false, 0 occurrences
03:48:05.289 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°85, false, 0 occurrences
03:48:05.289 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°86, false, 0 occurrences
03:48:05.289 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°88, false, 0 occurrences
03:48:05.289 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°89, false, 0 occurrences
03:48:05.300 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (11ms) Error n°90, false, 0 occurrences
03:48:05.476 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (176ms) Error n°91, false, 0 occurrences
03:48:05.477 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°93, false, 0 occurrences
03:48:05.477 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°94, false, 0 occurrences
03:48:05.477 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°95, false, 0 occurrences
03:48:05.479 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (2ms) Error n°96, false, 0 occurrences
03:48:05.479 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°97, false, 0 occurrences
03:48:05.479 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°98, false, 0 occurrences
03:48:05.479 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°99, false, 0 occurrences
03:48:05.479 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°100, false, 0 occurrences
03:48:05.480 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°101, false, 0 occurrences
03:48:05.480 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°102, false, 0 occurrences
03:48:05.480 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°103, false, 0 occurrences
03:48:05.488 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (8ms) Error n°104, false, 0 occurrences
03:48:05.497 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (9ms) Error n°105, false, 0 occurrences
03:48:05.497 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°106, false, 0 occurrences
03:48:05.497 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°107, false, 0 occurrences
03:48:05.497 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°108, false, 0 occurrences
03:48:05.498 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°109, false, 0 occurrences
03:48:05.498 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°112, false, 0 occurrences
03:48:05.505 [Thread-2] INFO  PERF - PageAnalysis.level6Analysis: Begin
03:48:05.539 [Thread-2] INFO  PERF - PageAnalysis.level6Analysis: End (34ms)
03:48:09.274 [Thread-2] INFO  PERF - Slow regular expression: Typo AWB -bility:(?=b)(?<=\b(?:[A-Z][a-z]*|[a-z]+))b(?:il|li)(?:li?)?t(ies|y)\b(1565ms)
03:48:10.566 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (5067ms) Error n°501, false, 0 occurrences
03:48:10.571 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (6ms) Error n°521, false, 0 occurrences
03:48:10.572 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°524, false, 0 occurrences
03:48:10.572 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°527, false, 0 occurrences
03:48:10.572 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°532, false, 0 occurrences
03:48:10.573 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°533, false, 0 occurrences
03:48:10.573 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°534, false, 0 occurrences
03:48:10.573 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°535, false, 0 occurrences
03:48:10.573 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°536, false, 0 occurrences
03:48:10.573 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°537, false, 0 occurrences
03:48:10.573 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°538, false, 0 occurrences
03:48:10.580 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (7ms) Error n°539, false, 0 occurrences
03:48:10.594 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (14ms) Error n°540, false, 0 occurrences
03:48:10.594 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°542, false, 0 occurrences
03:48:10.594 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°543, false, 0 occurrences
03:48:10.595 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°545, false, 0 occurrences
03:48:10.595 [Thread-2] INFO  PERF - CheckError.analyzeErrors: End (5760ms)
03:48:10.666 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: Begin
03:48:10.667 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°1, false, 0 occurrences
03:48:10.667 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°2, false, 0 occurrences
03:48:10.667 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°3, false, 0 occurrences
03:48:10.667 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°4, false, 0 occurrences
03:48:10.667 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°5, false, 0 occurrences
03:48:10.667 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°6, false, 0 occurrences
03:48:10.668 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°7, false, 0 occurrences
03:48:10.668 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°8, false, 0 occurrences
03:48:10.668 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°9, false, 0 occurrences
03:48:10.668 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°10, false, 0 occurrences
03:48:10.668 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°12, false, 0 occurrences
03:48:10.668 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°13, false, 0 occurrences
03:48:10.668 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°14, false, 0 occurrences
03:48:10.668 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°15, false, 0 occurrences
03:48:10.669 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°16, false, 0 occurrences
03:48:10.669 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°17, false, 0 occurrences
03:48:10.669 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°19, false, 0 occurrences
03:48:10.669 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°20, false, 0 occurrences
03:48:10.669 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°23, false, 0 occurrences
03:48:10.669 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°24, false, 0 occurrences
03:48:10.669 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°25, false, 0 occurrences
03:48:10.670 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°26, false, 0 occurrences
03:48:10.670 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°28, false, 0 occurrences
03:48:10.670 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°29, false, 0 occurrences
03:48:10.670 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°31, false, 0 occurrences
03:48:10.670 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°32, false, 0 occurrences
03:48:10.670 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°34, false, 0 occurrences
03:48:10.670 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°36, false, 0 occurrences
03:48:10.671 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°37, false, 0 occurrences
03:48:10.671 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°38, false, 0 occurrences
03:48:10.671 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°39, false, 0 occurrences
03:48:10.671 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°40, false, 0 occurrences
03:48:10.671 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°42, false, 0 occurrences
03:48:10.671 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°43, false, 0 occurrences
03:48:10.671 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°44, false, 0 occurrences
03:48:10.672 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°45, false, 0 occurrences
03:48:10.672 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°46, false, 0 occurrences
03:48:10.672 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°47, false, 0 occurrences
03:48:10.672 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°48, false, 0 occurrences
03:48:10.672 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°49, false, 0 occurrences
03:48:10.672 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°51, false, 0 occurrences
03:48:10.672 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°52, false, 0 occurrences
03:48:10.673 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°53, false, 0 occurrences
03:48:10.673 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°54, false, 0 occurrences
03:48:10.673 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°55, false, 0 occurrences
03:48:10.673 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°57, false, 0 occurrences
03:48:10.673 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°58, false, 0 occurrences
03:48:10.673 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°59, false, 0 occurrences
03:48:10.673 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°60, false, 0 occurrences
03:48:10.674 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°61, false, 0 occurrences
03:48:10.674 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°62, false, 0 occurrences
03:48:10.674 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°63, false, 0 occurrences
03:48:10.674 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°64, false, 0 occurrences
03:48:10.674 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°65, false, 0 occurrences
03:48:10.674 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°66, false, 0 occurrences
03:48:10.674 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°69, false, 0 occurrences
03:48:10.675 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°70, false, 0 occurrences
03:48:10.675 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°71, false, 0 occurrences
03:48:10.675 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°72, false, 0 occurrences
03:48:10.675 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°73, false, 0 occurrences
03:48:10.675 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°74, false, 0 occurrences
03:48:10.675 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°76, false, 0 occurrences
03:48:10.675 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°78, false, 0 occurrences
03:48:10.675 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°80, false, 0 occurrences
03:48:10.676 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°81, false, 0 occurrences
03:48:10.676 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°83, false, 0 occurrences
03:48:10.676 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°85, false, 0 occurrences
03:48:10.676 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°86, false, 0 occurrences
03:48:10.676 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°88, false, 0 occurrences
03:48:10.676 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°89, false, 0 occurrences
03:48:10.676 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°90, false, 0 occurrences
03:48:10.676 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°91, false, 0 occurrences
03:48:10.676 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°93, false, 0 occurrences
03:48:10.676 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°94, false, 0 occurrences
03:48:10.676 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°95, false, 0 occurrences
03:48:10.677 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°96, false, 0 occurrences
03:48:10.677 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°97, false, 0 occurrences
03:48:10.677 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°98, false, 0 occurrences
03:48:10.677 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°99, false, 0 occurrences
03:48:10.677 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°100, false, 0 occurrences
03:48:10.677 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°101, false, 0 occurrences
03:48:10.677 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°102, false, 0 occurrences
03:48:10.677 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°103, false, 0 occurrences
03:48:10.677 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°104, false, 0 occurrences
03:48:10.677 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°105, false, 0 occurrences
03:48:10.677 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°106, false, 0 occurrences
03:48:10.677 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°107, false, 0 occurrences
03:48:10.678 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°108, false, 0 occurrences
03:48:10.678 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°109, false, 0 occurrences
03:48:10.678 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°112, false, 0 occurrences
03:48:10.678 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°501, false, 0 occurrences
03:48:10.678 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°521, false, 0 occurrences
03:48:10.678 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°524, false, 0 occurrences
03:48:10.678 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°527, false, 0 occurrences
03:48:10.678 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°532, false, 0 occurrences
03:48:10.678 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°533, false, 0 occurrences
03:48:10.679 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°534, false, 0 occurrences
03:48:10.679 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°535, false, 0 occurrences
03:48:10.679 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°536, false, 0 occurrences
03:48:10.679 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°537, false, 0 occurrences
03:48:10.679 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°538, false, 0 occurrences
03:48:10.679 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°539, false, 0 occurrences
03:48:10.680 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (1ms) Error n°540, false, 0 occurrences
03:48:10.680 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°542, false, 0 occurrences
03:48:10.680 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°543, false, 0 occurrences
03:48:10.680 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (0ms) Error n°545, false, 0 occurrences
03:48:10.680 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: End (14ms)
Some of the warnings may be relevant, and there's a single regex slow perf bit in there from an AWB typo. Jerod Lycett (talk) 08:56, 8 January 2020 (UTC)
Very good Jerod Lycett, down from 11 minutes to 6 seconds! I've done another optimization for the last regex, it should hopefully gain another second... --NicoV (Talk on frwiki) 09:07, 8 January 2020 (UTC)
Jerod Lycett. After this one, I think each regex will be under the second on a page like 2019 reasons of the Supreme Court of Canada. If you think we should check for other regex that takes under the second, there's an option in WPCleaner to set the limit for reporting slow regex. --NicoV (Talk on frwiki) 09:12, 8 January 2020 (UTC)

Everything is loading quickly, even on large articles. Thank you so much. Johnny Au (talk/contributions) 02:09, 15 January 2020 (UTC)

br with newline undetected

  Resolved

I noticed while working on error 2 of checkwiki that WPCleaner can't seem to detect the error if it's due to a newline. I don't know if it actually matters to fix it or not. If it's checkwiki that's wrong and a newline is treated as normal whitespace by parser then I'll bring it up there, if it makes a difference then I request that WPCleaner be able to detect (and a simple step to fixing) it. You can see an example here. Jerod Lycett (talk) 17:30, 30 December 2019 (UTC)

Hi Jerod Lycett. For this one, I don't know: it works in wiki to use a newline in br, like
this, but I don't know if it's valid HTML or not... I should check. --NicoV (Talk on frwiki) 10:23, 2 January 2020 (UTC)
Hi Jerod Lycett. I checked HTML specification, and I believe the newline should be treated as a normal whitespace after a tag name. --NicoV (Talk on frwiki) 14:48, 3 January 2020 (UTC)
@NicoV: I'll have to raise this over on Checkwiki then, as it is a false positive on their end. Jerod Lycett (talk) 19:43, 3 January 2020 (UTC)

Date format in template false positive

  Resolved

Not a huge deal, and not sure if it's here or Check that I need to report this at, but {{Infobox person}} accepts {{Birth based on age as of date}} as valid. You can see it in use at Jonny Kim. Jerod Lycett (talk) 18:35, 1 January 2020 (UTC)

Hi Jerod Lycett. It's here, it's error #521 (errors above #500 are only handled by WPC). It can be configured in Wikipedia:WikiProject_Check_Wikipedia/Translation in error_521_templates_enwiki. I will see to add it, if GoingBatty doesn't do it before me (he did most of the configuration for #521). --NicoV (Talk on frwiki) 10:19, 2 January 2020 (UTC)
@NicoV and GoingBatty: I have also run into dates on books or the like that are of the format January 1, 2020 - January 2, 2020 and DMY of that too. Are they kosher given the coins thing? Jerod Lycett (talk) 19:29, 2 January 2020 (UTC)
@Jerod Lycett: I have updated Wikipedia:WikiProject Check Wikipedia/Translation to include that {{Birth based on age as of date}} is valid for {{Infobox person}}. Could you please give me an example for books question? Thanks! GoingBatty (talk) 00:26, 3 January 2020 (UTC)
@GoingBatty: I haven't run into it since, I'll remember to ping it here the next time I see it. I do run into YYYYa/b/c a lot though. I almost feel like doing an RFC on those given the coins data thing. Jerod Lycett (talk) 05:58, 8 January 2020 (UTC)
@GoingBatty: Found one. 25 December 1991 – 7 January 1992 on reference 23 of Vietnam Airlines. Jerod Lycett (talk) 02:34, 15 January 2020 (UTC)
@Jerod Lycett: I updated Wikipedia:WikiProject Check Wikipedia/Translation to include that d MMM yyyy – d MMM yyyy is a valid date format for the |date= field of {{cite journal}}. GoingBatty (talk) 03:08, 15 January 2020 (UTC)

Six second Regex

  Resolved

Found this one:

11:29:48.598 [AWT-EventQueue-0] INFO  PERF - Slow regular expression: Typo AWB -XXX(ed/er/ing/ive):(?=[aeiou][bdfgklmnprstvz])(?<=\b(?:[A-Z][a-z]*|[a-z]+))([aeiou])([bdfgklmnprstvz])\2{2,}(e(?:d|rs?)|i(?:ngs?|ons?|ves?)|ors?)\b(2133ms)
11:29:49.409 [AWT-EventQueue-0] INFO  PERF - CheckError.analyzeErrors: (6616ms) Error n°501, true, 2 occurrences

Jerod Lycett (talk) 16:34, 8 January 2020 (UTC)

Thanks Jerod Lycett. It takes 2s (6s is the total for all the regex). I already optimized it (it was 14837ms in your previous report). I'm not sure how I can optimize it more... If I understand correctly, it looks for words with somewhere after the first character : 1 vowel (among "aeiou") followed by 3 or more of the same consonant (among "bdfgklmnprstvz"), then by "ed","er","ers","ing","ings","ion","ions","ive","ives","or","ors", then the end of the word => and it replaces the 3 or more of the same consonant by 2 of them. Seems right? The thing that is looked for is complex in itself, maybe I can try something, but I'm not really sure what the result will be (faster or slower...) :
<Typo word="-XXX(ed/er/ing/ive)" find="(?=[aeiou](?:b{3,}|d{3,}|f{3,}|g{3,}|k{3,}|l{3,}|m{3,}|n{3,}|p{3,}|r{3,}|s{3,}|t{3,}|v{3,}|z{3,}))(?<=\b(?:[A-Z][a-z]*|[a-z]+))([aeiou])([bdfgklmnprstvz])\2{2,}(e(?:d|rs?)|i(?:ngs?|ons?|ves?)|ors?)\b" replace="$1$2$2$3"/><!--cheapened expensive beginning-->
Would you be interested in testing it? --NicoV (Talk on frwiki) 17:17, 8 January 2020 (UTC)
12:33:48.717 [Thread-2] INFO  PERF - PageAnalysis.level6Analysis: Begin
12:33:48.760 [Thread-2] INFO  PERF - PageAnalysis.level6Analysis: End (43ms)
12:33:54.728 [Thread-2] INFO  PERF - Slow regular expression: Typo AWB -XXX(ed/er/ing/ive):(?=[aeiou][bdfgklmnprstvz])(?<=\b(?:[A-Z][a-z]*|[a-z]+))([aeiou])([bdfgklmnprstvz])\2{2,}(e(?:d|rs?)|i(?:ngs?|ons?|ves?)|ors?)\b(2409ms)
12:33:55.627 [Thread-2] INFO  PERF - CheckError.analyzeErrors: (6918ms) Error n°501, false, 0 occurrences
Juneau, Alaska is the page I found this on BTW. Jerod Lycett (talk) 17:36, 8 January 2020 (UTC)
Sorry Jerod Lycett, I didn't put the modified regex before... I've just added 2 other versions of this regex, can you try again and post the logs, so I can see if one is faster? I can't test myself, this regex is already fast enough not to register on the slow ones... What is your operating system and Java version? --NicoV (Talk on frwiki) 18:19, 8 January 2020 (UTC)
@NicoV: Windows 10 1909 (18353.535) with Java 13.0.1 (build 13.0.1+9)
14:52:08.291 [Thread-3] INFO  PERF - PageAnalysis.level6Analysis: End (39ms)
14:52:14.481 [Thread-3] INFO  PERF - Slow regular expression: Typo AWB -XXX(ed/er/ing/ive):(?=[aeiou][bdfgklmnprstvz])(?<=\b(?:[A-Z][a-z]*|[a-z]+))([aeiou])([bdfgklmnprstvz])\2{2,}(e(?:d|rs?)|i(?:ngs?|ons?|ves?)|ors?)\b(2603ms)
14:52:15.277 [Thread-3] INFO  PERF - CheckError.analyzeErrors: (7037ms) Error n°501, false, 0 occurrences
Close enough that it could just be my computer isn't as nice as your laptop, and that's causing the issue. Jerod Lycett (talk) 19:57, 8 January 2020 (UTC)
Thanks Jerod Lycett. I kept the last version, I hope it should be better now. Don't hesitate to report other slow regex. I doubt that it's the computer, maybe Java version ? (I'm still with Java 8). --NicoV (Talk on frwiki) 21:02, 8 January 2020 (UTC)

Update request by Johnny Au

It has been over a year since the last update. Johnny Au (talk/contributions) 00:53, 1 August 2018 (UTC)
Hi Johnny Au. Yes, I know, I have been busy the last few months. My code signing certificate has expired last year, and the process to get a new one was too complex (it required me to gather several documents and have an appointment with a lawyer)... so I decided to change the process for releasing new versions, but didn't find the time to do it: it's some work, I've made some progress, I hope to have enough free time this weekend. Follow this talk page, once I've managed to do it, I will ask for testers to do it. --NicoV (Talk on frwiki) 08:01, 1 August 2018 (UTC)
I will look forward to see the upcoming progress. Johnny Au (talk/contributions) 02:40, 1 September 2018 (UTC)
WPCleaner 2.0 is up, but may be slow. Johnny Au (talk/contributions) 00:13, 1 October 2018 (UTC)
It's so much faster now. Thank you so much. Johnny Au (talk/contributions) 02:46, 1 February 2020 (UTC)

URL access returned Bad Request

  Additional information needed

I got this following error when trying to fix some lint errors with my bot:

An error occurred: URL access returned Bad Request

Please help fix this error so that my bot can continue fixing lint errors. Pkbwcgs (talk) 15:04, 24 November 2019 (UTC)

Hi Pkbwcgs. Could you provide examples leading to this error message or a way to reproduce? I've just tested linter analysis on 20 random pages on frwiki and 20 more on enwiki and I didn't get any error message. --NicoV (Talk on frwiki) 21:08, 28 November 2019 (UTC)
Hi Pkbwcgs. Do you still have the problem? If yes, can you provide examples? --NicoV (Talk on frwiki) 14:31, 3 January 2020 (UTC)

WPCleaner wouldn't open

  Additional information needed

I having trouble opening WPCleaner today. The login page wouldn't open and the whole WPCleaner interface wouldn't open at all. Pkbwcgs (talk) 19:51, 8 December 2019 (UTC)

Hi Pkbwcgs. On which operating system? Does it work now? How do you run WPCleaner? --NicoV (Talk on frwiki) 07:49, 9 December 2019 (UTC)
@NicoV: WPCleaner still wouldn't open on Windows 10 which is causing a lot of problems because my bot can't do its daily ISBN and ISSN error updates. The login page doesn't open and WPCleaner doesn't want to open at all. I open it using the .bat file and it says that it is "checking for update" but then nothing opens. Pkbwcgs (talk) 21:09, 10 December 2019 (UTC)
I am currently updating the ISBN errors using the command line but I would prefer to do it from the WPCleaner interface as it is easier and less time consuming. Pkbwcgs (talk) 21:23, 10 December 2019 (UTC)
Hi Pkbwcgs. You can try opening a command line in the folder where you have installed WPCleaner, and run the following command java -jar libs/getdown-launcher-1.8.2.jar . client. You can also check the content of WPCleaner.bat : does it reference getdown-launcher-1.8.2.jar or getdown-launcher.jar? If it's the second one, go in the libs directory and copy/paste getdown-launcher-1.8.2.jar to getdown-launcher.jar. --NicoV (Talk on frwiki) 21:53, 10 December 2019 (UTC)
Hi Pkbwcgs. Do you still have the problem? If yes, can you provide the requested information? --NicoV (Talk on frwiki) 14:32, 3 January 2020 (UTC)
@NicoV: Yes, it is still a problem and because of this, I haven't ran my bot tasks for a while. Can you please help me out. Pkbwcgs (talk) 21:37, 20 January 2020 (UTC)
The method also doesn't help. Here is the error:

C:\Users\Username>java -jar libs/getdown-launcher-1.8.2.jar . client
Error: Unable to access jarfile libs/getdown-launcher-1.8.2.jar

Have you tried downloading a separate folder of it? this can help if it's a permissions error.
C:\Users\arenlor\WPCleaner>java -jar getdown.jar .
works for me. Jerod Lycett (talk) 00:46, 21 January 2020 (UTC)
Pkbwcgs. In the libs directory, what files do you have (especially the getdown-launcher...)? Otherwise, have you tried installing WPCleaner again with the installer? --NicoV (Talk on frwiki) 06:49, 21 January 2020 (UTC)
@NicoV: I had tried reinstalling WPCleaner but it still won't open. The application opens but it won't show up at all. Pkbwcgs (talk) 16:43, 21 January 2020 (UTC)
Ok Pkbwcgs, but please answer my questions if you want help, just saying it wouldn't open doesn't help me understand the problem... In what directory do you have installed WPCleaner? How did you install it? What files are in the directory in which you installed WPCleaner (and in the sub-directories)? How do you run WPCleaner? If you open a command line, change to the directory where WPCleaner is installed, and then run the command java -jar getdown.jar ., what happens? --NicoV (Talk on frwiki) 16:53, 21 January 2020 (UTC)
@NicoV:
  • In what directory do you have installed WPCleaner? C:\Users\Username\Documents\WPCleaner
  • How did you install it? I installed from online as specified at Wikipedia:WPCleaner/Installation
  • What files are in the directory in which you installed WPCleaner (and in the sub-directories)? Plenty of files. There are two folders: getdown and libs. The files are: appbase.txt, bot.batv, bot.sh, bot.shv, credentials.txt, digest.txt, digest2.txt, getdown.jar, getdown.txt, gettingdown.lock, launcher.txt, logback.xml, logback.xmlv, proxy.txt, WPCleaner.2019-01-27.gz, WPCleaner.2019-04-12.gz, WPCleaner.2019-11-17.gz, WPCleaner.2019-11-18.gz, WPCleaner.2019-12-11.gz, WPCleaner.bat, WPCleaner.batv, WPCleaner (icon - don't know file format), WPCleaner.icov, WPCleaner.jar, WPCleaner.jarv, WPCleaner.txt, WPCleaner.pngv, WPCleaner.sh and WPCleaner.shv
  • How do you run WPCleaner? I click on WPCleaner.bat
  • If you open a command line, change to the directory where WPCleaner is installed, and then run the command java -jar getdown.jar ., what happens? It says Usage: java -jar getdown.jar [app_dir] [app_id] [app args]

I hope this answers all the questions you asked. Pkbwcgs (talk) 18:17, 21 January 2020 (UTC)

Thanks Pkbwcgs. For the command you ran, did you include the dot as the last argument? Can you try instead with the command java -jar getdown.jar . client (WPCleaner window should be displayed) or java -jar getdown.jar . bot (it should display no window and no message). --NicoV (Talk on frwiki) 18:42, 21 January 2020 (UTC)
@NicoV: Another error; "the configuration file is missing the 'appbase'" came when trying to open WPCleaner using your method. Pkbwcgs (talk) 18:56, 21 January 2020 (UTC)
@Pkbwcgs: Can you confirm that you included the dot in the command, that is between getdown.jar and client? Can you check in the file getdown.txt if there's a line that looks like appbase = https://tools.wmflabs.org/wpcleaner/wpcleaner/? (if not, can you paste here its contents?) --NicoV (Talk on frwiki) 19:01, 21 January 2020 (UTC)
@NicoV: The file getdown.txt has the line that you specified. Getdown.txt looks like this:
getdown.txt
# Configuration file for running WPCleaner through getdown

# General configuration
appbase = https://tools.wmflabs.org/wpcleaner/wpcleaner/
allow_offline = true

# Configure the update UI
ui.name = WPCleaner
ui.icon = commons-nuvola-web-broom-64px.png
ui.icon = commons-nuvola-web-broom.png
# ui.error_background =
# ui.progress_bar =
# ui.progress_text =
# ui.status =
# ui.status_text =
ui.install_error = https://tools.wmflabs.org/wpcleaner/
ui.hide_decorations = true

# Code
code = WPCleaner.jar
code = libs/commons-codec.jar
code = libs/commons-compress.jar
code = libs/commons-httpclient.jar
code = libs/commons-lang3.jar
code = libs/commons-logging.jar
code = libs/gettext-commons.jar
code = libs/jackson-annotations.jar
code = libs/jackson-core.jar
code = libs/jackson-databind.jar
code = libs/jaxen.jar
code = libs/jdom.jar
code = libs/xercesImpl.jar
code = libs/xml-apis.jar
code = libs/logback-classic.jar
code = libs/logback-core.jar
code = libs/slf4j-api.jar
code = logback.xml

# Resources
resource = WPCleaner.png
resource = WPCleaner.ico
resource = Bot.bat
resource = WPCleaner.bat
resource = Bot.sh
resource = WPCleaner.sh
resource = libs/LICENSE_commons-codec.txt
resource = libs/NOTICE_commons-codec.txt
resource = libs/LICENSE_commons-compress.txt
resource = libs/NOTICE_commons-compress.txt
resource = libs/LICENSE_commons-httpclient.txt
resource = libs/NOTICE_commons-httpclient.txt
resource = libs/LICENSE_commons-lang3.txt
resource = libs/NOTICE_commons-lang3.txt
resource = libs/LICENSE_commons-logging.txt
resource = libs/NOTICE_commons-logging.txt
resource = libs/LICENSE_gettext-commons.txt
resource = libs/LICENSE_jackson.txt
resource = libs/LICENSE_jdom.txt
resource = libs/LICENSE_jaxen.txt
resource = libs/LICENSE_xerces.txt
resource = libs/NOTICE_xerces.txt
resource = libs/getdown-launcher-1.8.2.jar

# Requirements on Java
java_min_version = 1070000
# java_location = [windows] /java_vm/java_windows.jar
# java_location = [linux] /java_vm/java_linux.jar

# Parameters passed to the JVM
jvmarg = -Xmx1024M
optimum_jvmargs = -Xmx4096M
jvmarg = -Dlogback.configurationFile=logback.xml

# The main Java class
class = org.wikipediacleaner.WikipediaCleaner

# Lets us pass "client" as the app id and use the rest of the command line as app arguments
client.class = org.wikipediacleaner.WikipediaCleaner

# Lets us pass "bot" as the app id and use the rest of the command line as app arguments
bot.class = org.wikipediacleaner.Bot

# We don't pass any argument
# apparg =

Pkbwcgs (talk) 19:58, 21 January 2020 (UTC)

There is also a dot between getdown.jar and client in the command. Pkbwcgs (talk) 19:59, 21 January 2020 (UTC)
Thanks Pkbwcgs. The getdown.txt file is correct... Let's try a few things, but I don't know what happens:
  • In the C:\Users\Username\Documents\WPCleaner\libs folder, is there a getdown-launcher-1.8.2.jar file? (or with a similar name)
  • What's your java version? Run command java -version (mine says 1.8.0_211). If you have an older version, try updating.
  • Create a new folder C:\Users\Username\Documents\WPCleaner2
  • Copy in the new folder the files getdown.txt and credentials.txt from the old folder
  • Copy in the new folder the file getdown-launcher-1.8.2.jar from libs in the old folder
  • In a command prompt, change directory to the new folder and run the command java -jar getdown-launcher-1.8.2.jar . client: what happens?
--NicoV (Talk on frwiki) 20:25, 21 January 2020 (UTC)
@NicoV: My java version is more recent at 1.8.0_221. Pkbwcgs (talk) 20:29, 21 January 2020 (UTC)
@NicoV: I tried all your steps above and it is still giving the same error. "The configuration file is missing the 'appbase'". Pkbwcgs (talk) 20:33, 21 January 2020 (UTC)
@Pkbwcgs: Was there a file getdown-launcher-1.8.2.jar in the libs folder? (or similar name: which name?) What are now the files in the folder you created? If you open the getdown.txt file in Notepad, is it properly formatted (as in the collapsible box above)? --NicoV (Talk on frwiki) 21:04, 21 January 2020 (UTC)
@NicoV:
1. getdown.txt is properly formatted
2. The files in the folder that I created are credentials.txt, getdown.txt and getdown-launcher-1.8.2.jar
3. The same error is still persisting Pkbwcgs (talk) 21:12, 21 January 2020 (UTC)
@Pkbwcgs: I really don't understand what's happening with your installation. Can you try the following steps:
  • In the new folder you created before, delete the file getdown.txt
  • In a command prompt, change directory to the new folder, and run the command java -Dappbase=https://tools.wmflabs.org/wpcleaner/wpcleaner/ -jar getdown.jar . client. Does something different happens?
--NicoV (Talk on frwiki) 21:29, 21 January 2020 (UTC)
@NicoV: I ran the command java -Dappbase=https://tools.wmflabs.org/wpcleaner/wpcleaner/ -jar C:\Users\Username\Documents\WPCleaner2/getdown-launcher-1.8.2.jar . client and WPCleaner didn't open. The application is opening but it is not displaying; it is displaying nothing when I click onto it. I don't understand why it is not opening and my bot hasn't been running for a while. Pkbwcgs (talk) 16:57, 22 January 2020 (UTC)
@Pkbwcgs: You managed to do some edits with WPCleaner: another installation? After the execution that brought up the application but display nothing, what is the content of the C:\Users\Username\Documents\WPCleaner2 folder? Is there any log file (launcher.log, WPCleaner.log) in this folder? If yes, what's their content? What happens if you run the following command java -cp WPCleaner.jar;libs/* org.wikipediacleaner.WikipediaCleaner in a command line in C:\Users\Username\Documents\WPCleaner2 folder? --NicoV (Talk on frwiki) 10:37, 23 January 2020 (UTC)
@NicoV: I did the edits from the command line. I couldn't open WPCleaner so I made a script that does only ISBN updates and ran it from the command line. Pkbwcgs (talk) 16:38, 23 January 2020 (UTC)
@NicoV: This should help you fix the problems. I found out that WPCleaner is getting some errors when trying to open. I don't know how to fix them but this should help you.

2020/01/20 21:58:00:908 WARNING Failed to load image [path=C:\Users\Username\Documents\WPCleaner\commons-nuvola-web-broom-64px.png, error=javax.imageio.IIOException: Can't read input file!] 2020/01/20 21:58:00:909 WARNING Error loading icon image [path=commons-nuvola-web-broom-64px.png] 2020/01/20 21:58:00:910 WARNING Failed to load image [path=C:\Users\Username\Documents\WPCleaner\commons-nuvola-web-broom.png, error=javax.imageio.IIOException: Can't read input file!] 2020/01/20 21:58:00:910 WARNING Error loading icon image [path=commons-nuvola-web-broom.png] 2020/01/20 21:58:00:910 WARNING Failed to load any icons [iconImages=[commons-nuvola-web-broom-64px.png, commons-nuvola-web-broom.png]]

Your command didn't open WPCleaner. It opened the application but it is not displaying like it wasn't before. Pkbwcgs (talk) 16:44, 23 January 2020 (UTC)

@Pkbwcgs: The errors show a problem in what I deploy, I will fix it, but I doubt it's causing the problem. You can try downloading the 2 missing files (commons-nuvola-web-broom-64px.png and commons-nuvola-web-broom.png) and put them in WPCleaner's folder. Does it change anything?
Apart from this, is there any message in the log files (launcher.log, WPCleaner.log...)? --NicoV (Talk on frwiki) 11:10, 24 January 2020 (UTC)
@NicoV: There is a failure in launcher.log and I have added it below.

2020/01/24 16:42:37:004 INFO Failed to find proxy settings in Windows registry [error=java.lang.UnsatisfiedLinkError: no jRegistryKey in java.library.path] I think that this error could be causing WPCleaner not to open. Pkbwcgs (talk) 16:45, 24 January 2020 (UTC)

@Pkbwcgs: Thanks for the error message. I asked a question about a similar issue with getdown, we'll see the answer. Do you use a proxy for internet access?
Otherwise, I've done some modifications to include the images, and log things in case of problems at WPCleaner's startup (after getdown). Can you try the following actions:
--NicoV (Talk on frwiki) 14:09, 27 January 2020 (UTC)
@NicoV: I am really sorry for the delayed reply but I am currently very busy. WPCleaner is still not opening but I haven't got the time right now to try the instructions you gave me but I will do it as soon as I get the time. Thank you. Pkbwcgs (talk) 21:40, 6 February 2020 (UTC)

Unable to install WPCleaner

  Resolved

If I try the first method, I get the following error inmediatly after pressing the "Install" button:

  • Unable to download file getdown.txt.
    Error: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

If I try the getdown method i get the same error but in a different window. --Ninovolador (talk) 14:15, 15 January 2020 (UTC)

@Ninovolador: I know there were other services that were having issues, and it appears that it's working fine now for me, see if it still has this issue for you. If it is still occurring then knowing your OS and Java versions will be useful most likely. Jerod Lycett (talk) 21:04, 15 January 2020 (UTC)
@Jerodlycett: I am using Windows 10, Java build 1.8.0_45-b14, and have been trying to install WPCleaner for the past three or four days. I will try to update Java and post the results. --Ninovolador (talk) 21:49, 15 January 2020 (UTC)
Updated Java and it worked out fine. Thanks. --Ninovolador (talk) 21:53, 15 January 2020 (UTC)
Sorry for the long delay in answering Ninovolador, but it seems you have a found a way to install it by updating Java first. If I understand correctly, the problem is that Java uses by default its own list of root certificates to validate HTTPS certificates, but old versions may lack recent root certificates. I think the installer should display a message to suggest updating Java if it is unable to validate the certificate. --NicoV (Talk on frwiki) 18:47, 21 January 2020 (UTC)
I've modified the installer to suggest upgrading Java version in case of a CertificateException (parent class of ValidatorException). --NicoV (Talk on frwiki) 20:03, 6 March 2020 (UTC)

Unable to install WPCleanerInstaller.jar

  Resolved

@NicoV: I just bought a new Windows 10 PC, installed Java Version 8 Update 241 (build 1.8.0_241-b07), and then downloaded WPCleanerInstaller.jar. When I tried running it, I receive an error stating "Unable to install Java. There are errors in the following switches: "C:\WPCleaner\WPCleanerInstaller.jar";. Check that the commands are valid and try again." However, the getdown method worked well. Thanks! GoingBatty (talk) 22:29, 21 March 2020 (UTC)

Hello GoingBatty. Are you sure Java is properly installed, even for running .jar files? Try double-clicking on WPCleanerInstaller.jar: what's the result? Try opening a command line, and running the command java -jar [PATH_TO_INSTALLER]/WPCleanerInstaller.jar: what's the result? --NicoV (Talk on frwiki) 14:42, 23 March 2020 (UTC)
Or maybe look at this thread, where they gave tips for fixing problems with .jar files not correctly assigned to Java. --NicoV (Talk on frwiki) 14:47, 23 March 2020 (UTC)
This tool may help (if double-clicking didn't work, but the command with java -jar did). --NicoV (Talk on frwiki) 14:52, 23 March 2020 (UTC)
@NicoV: I ran the Java install program several times. When I double click on WPCleanerInstaller.jar, I receive an error stating "Unable to install Java. There are errors in the following switches: "C:\WPCleaner\WPCleanerInstaller.jar";. Check that the commands are valid and try again." When I open a command line and run the command java -jar C:\WPCleaner\WPCleanerInstaller.jar, the installer works properly. After running jarfix, double clicking on WPCleanerInstaller.jar works properly. Thanks! GoingBatty (talk) 16:30, 23 March 2020 (UTC)
Thanks GoingBatty for the heads up. Do you think this explanation is good? --NicoV (Talk on frwiki) 16:38, 23 March 2020 (UTC)
@NicoV: Your additional explanation is helpful - thank you! GoingBatty (talk) 16:40, 23 March 2020 (UTC)

Installation Won't Work

  Resolved

I've been trying to install WPCleaner on Mac OS X 10.15.4 with Java 1.8.0_191. I keep getting the following error: "The application has failed to launch due to the following error: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target" --ArchonBoi (talk) 20:52, 8 April 2020 (UTC)

Possible answer, or links to answers, here. – Jonesey95 (talk) 22:09, 8 April 2020 (UTC)
@Jonesey95: So do I save the SSL certificate from Wikipedia? --ArchonBoi (talk) 01:43, 9 April 2020 (UTC)
I don't know. If WPCleaner or Java has a log that you can look at (maybe in the Mac OS Console app), see if you can find the URL it is having trouble with. Then you may be able to go to that URL in a browser and follow the instructions on the page above, or here, or one of the other pages linked from that stackoverflow page. – Jonesey95 (talk) 03:02, 9 April 2020 (UTC)
Also see the thread above where someone had the same problem. That thread suggests updating Java. I see pages on the web that refer to Java version 1.8.0_241 for Mac OS, so yours may be out of date. A simple update may fix it. The latest version might be available here, but Java's versioning is very confusing, so I could be totally wrong. – Jonesey95 (talk) 03:10, 9 April 2020 (UTC)
So I tried installing it using the terminal and that seemed to work. Not sure why or how, but it works now. -- ArchonBoi(Talk) 03:15, 9 April 2020 (UTC)
@ArchonBoi: Good to hear that you resolved the issue for installation. Were you using the latest version of the installer ? (it's supposed to display a message suggesting to update Java in such cases as certificate validation, but I couldn't test it as I never had the problem). --NicoV (Talk on frwiki) 08:31, 9 April 2020 (UTC)
No it never suggested to update Java. Just gave me that error. -- ArchonBoi(Talk) 11:31, 9 April 2020 (UTC)
@ArchonBoi: When did you see the error message? Just after double-clicking the installer .jar or later when you clicked on the installation button? --NicoV (Talk on frwiki) 12:08, 9 April 2020 (UTC)
I ran the installer, it said installation was successful in a second window, and then gave me the PKIX error in a third window. -- ArchonBoi(Talk) 13:06, 9 April 2020 (UTC)
@ArchonBoi: Ok, it's not exactly the same problem as the above thread (the problem was during the installation). The cause is probably similar, Java version too old to have a root certificate of one of the servers, but probably not the same servers... In the directory where you have installed WPCleaner, do you have a launcher.log and a WPCleaner.log files? If so, do they contain the error your reported? If so, can you post here the surrounding lines (stack trace if possible)? --NicoV (Talk on frwiki) 14:41, 9 April 2020 (UTC)
There's no launcher.log file, but there is a WPCleaner.log file. Although it does not include the error, as far as I can tell. -- ArchonBoi(Talk) 14:52, 9 April 2020 (UTC)
@ArchonBoi: Too bad... unless the error was yesterday, then the log is a .gz file renamed with the date in the name. --NicoV (Talk on frwiki) 14:57, 9 April 2020 (UTC)
No, I moved the files from the directory when I attempted the method that worked. The log file just shows the getdown files being downloaded, creating the credentials file, doing the installation, and then starting WPCleaner. -- ArchonBoi(Talk) 15:02, 9 April 2020 (UTC)
@ArchonBoi: I meant WPCleaner.log file being copied each day to .gz file. --NicoV (Talk on frwiki) 15:09, 9 April 2020 (UTC)
There is no .gz file. I wiped the WPCleaner directory before I used the terminal method. So the log files that were generated during my first attempt are sitting in the trash folder and not in a .gz file. -- ArchonBoi(Talk) 15:13, 9 April 2020 (UTC)

Meta is not a configuration option?

  Resolved

I just downloaded this and have found commons, but meta is not a configuration option? Am I somehow just missing (not seeing) it? If it isn't there, that is surprising. --TheSandDoctor Talk 07:15, 26 April 2020 (UTC)

@TheSandDoctor: I add a wiki when someone ask me to  , and nobody asked me about meta yet. See Wikipedia:WPCleaner/Wikis for the process, but I can help for the initial configuration. --NicoV (Talk on frwiki) 07:44, 26 April 2020 (UTC)
@TheSandDoctor: I've just added meta in the list of wikis managed by WPCleaner. I've done a basic initial version of configuration (WPCleaner and Check Wiki), but it needs to be adapted for meta. You also suggested to bring some of the bot tasks to meta, dp you know how to apply for bot approval over there? --NicoV (Talk on frwiki) 17:48, 4 June 2020 (UTC)
Thank you. I was confused as to how it worked given the cross-wiki nature and no clear "template" as I pictured them, so thank you for doing this. I have responded on your talk page regarding the meta suggestion. My apologies for the delay. --TheSandDoctor Talk 23:08, 6 June 2020 (UTC)

Deprecated parameters - tracklisting

  Resolved

A while ago, i got someone to add in a fix for wikicleaner to check pages in the category "Track listings with deprecated parameters". Today I was fixing articles in this category, and the program picks up lyric_credits and writing_credit as deprecated, but doesn't pick up music_credit as deprecated. Could this be added? --Mjs1991 (talk) 03:07, 7 May 2020 (UTC)

Hi Mjs1991. Configuration is done in Wikipedia:WikiProject_Check_Wikipedia/Translation#Errors_541_to_550 with error_545_templates_enwiki, there was an error (music_creditsc instead of music_credits), I fixed it. --NicoV (Talk on frwiki) 07:11, 7 May 2020 (UTC)

Small Suggestion

  Resolved

What about being able to setup a customised short string/signature which is added automatically to the automatic comment?! CommanderWaterford (talk) 11:11, 4 June 2020 (UTC)

Hi CommanderWaterford. When you run as a bot script or with the graphical interface? In bot script, it's already possible with the "Set Prefix" command (see example). --NicoV (Talk on frwiki) 11:14, 4 June 2020 (UTC)
NicoV, with the GUI.... CommanderWaterford (talk) 11:19, 4 June 2020 (UTC)
Ok CommanderWaterford. I will add this, it shouldn't be too much work. --NicoV (Talk on frwiki) 11:25, 4 June 2020 (UTC)
NicoV, Thumbs up! Awesome. CommanderWaterford (talk) 11:27, 4 June 2020 (UTC)
CommanderWaterford. I've just uploaded a new version that includes this setting in the options (General tab). It works for the full analysis window. Is it what you were looking for? --NicoV (Talk on frwiki) 13:59, 4 June 2020 (UTC)
NicoV, Well, not exactly...my procedure is "Project Check Wiki", Load Errors XYZ, select Page on the left side, due a short analysis, correct things and then sent ... so I am not entering into full analysis CommanderWaterford (talk) 14:55, 4 June 2020 (UTC)
Ok, I will add it there also then   --NicoV (Talk on frwiki) 15:03, 4 June 2020 (UTC)
CommanderWaterford, the setting should now be taken into account also in Project Check Wiki. --NicoV (Talk on frwiki) 16:24, 4 June 2020 (UTC)

CHECKWIKI #6 (2018-08-05)

  Resolved

WPCleaner does not detect {{DEFAULTSORT:2017 FIBA 3x3 Europe Cup|M}} as being a violation of CHEKWIKI #6, when it actually is. Pipes are not allowed in defaultsorts. (tJosve05a (c)

Related edit. --NicoV (Talk on frwiki) 17:23, 5 August 2018 (UTC)

Incomplete typo fix

  Resolved

Just ran into this. I should stop using this so heavily, I keep running into oddities and breaking things. I also have a report for AWB that I'm delaying making :P Jerod Lycett (talk) 17:56, 9 January 2020 (UTC)

Thanks Jerod Lycett. Indeed, it's a bug in WPC with the ">" in the replace part for <Typo word="km²" find="\b(?<!\{)[sS][qQ][-\.\s]+[kK][mM][sS]?\b" replace="km<sup>2</sup>"/>... Will have to work on my parser. And no problem if you find other things, I just don't know when I will have time to fix them. --NicoV (Talk on frwiki) 19:16, 9 January 2020 (UTC)

Error 8 and ref after header

  Resolved

This shows the result of someone doing it without previewing, but WPCleaner doesn't catch it. Jerod Lycett (talk) 05:55, 15 January 2020 (UTC)

Typos suggestions page

  Resolved

@NicoV: I was reading Wikipedia:WPCleaner/Spelling and typography and see that it's possible to have a typo correction format dedicated to WPCleaner and a format shared with AWB at the same time. I think creating a typo correction format dedicated to WPCleaner would be good for typos that have multiple possibilities for corrections, since AWB doesn't handle that well. (e.g. "alse" could be "also" or "else") I created Wikipedia:WPCleaner/Suggestions based on the French equivalent. Since the English Wikipedia already has a {{Suggestion}} template, how do you suggest we configure this to work on the English Wikipedia? Thanks! GoingBatty (talk) 00:59, 5 July 2020 (UTC)

@GoingBatty: Yes, I added this option because AWB format is too restricted: no multiple possibilities, no way of saying a fix can be automatic, no way of applying it to special parts of the wikitext... I think the best way is to create a dedicated template here (like {{Suggestion WPC}}), based on the French template. The template can have any rendering you want, WPC doesn't rely on the rendering. Then you can configure general_suggestions in User:NicoV/WikiCleanerConfiguration (see example in French configuration). Each line is a pipe separated list containing:
  • Page name containing the suggestions
  • Name of the template defining a suggestion
  • Parameter name for the regular expression to look for
  • Comma separated list of parameter names for the possible replacements
  • Parameter name for a comment that will be visible in WPC
  • Parameter name for configuring the replacement as automatic
  • Value of the parameter for configuring the replacement as automatic
--NicoV (Talk on frwiki) 11:25, 5 July 2020 (UTC)
@NicoV: Thanks! Could you please create that template? Once that's done, I can start adding a few to Wikipedia:WPCleaner/Suggestions to test it. Thanks! GoingBatty (talk) 13:31, 5 July 2020 (UTC)
@GoingBatty: I've created the template and the configuration, so you can add suggestions in Wikipedia:WPCleaner/Suggestions to test. For the template: I've left the French examples, feel free to use English examples. And I had to remove the use of {{nowiki}} in the template compared to the French version, so I'm not sure what the result will be with complex regexp/replacements. --NicoV (Talk on frwiki) 14:28, 5 July 2020 (UTC)
@NicoV: It works - try Synchronous optical networking. Thank you! GoingBatty (talk) 20:41, 5 July 2020 (UTC)
@NicoV: It even works for complex regex - try Hot Latin Songs. Thanks! GoingBatty (talk) 22:07, 5 July 2020 (UTC)

Download Issue Comment

  Resolved

Hi All,

I am trying to install WPCleaner at a different folder on my computer and it fails download during installation for https://wpcleaner.toolforge.org/wpcleaner/getdown.txt as the page is not found. Bakertheacre Chat/My Contibutions 17:29, 5 July 2020 (UTC)

Hi Bakertheacre. Apparently, I made a mistake when changing the URL due to the recent modifications on toolforge. Can you download again the installer and try? --NicoV (Talk on frwiki) 18:22, 5 July 2020 (UTC)
No NicoV still broken :( Bakertheacre Chat/My Contibutions 19:12, 5 July 2020 (UTC)
What's the message? --NicoV (Talk on frwiki) 19:32, 5 July 2020 (UTC)
BTW, if it's already installed in another folder, you can copy/paste the folder and manage the desktop shortcut manually. --NicoV (Talk on frwiki) 19:33, 5 July 2020 (UTC)
NicoV I am trying a fresh install to test the preview. I still get a 404 error at the link in the beginning of the post. Bakertheacre Chat/My Contibutions 01:14, 6 July 2020 (UTC)
Bakertheacre Have you downloaded again the installer? Because, the current version doesn't have this URL in it... --NicoV (Talk on frwiki) 05:46, 6 July 2020 (UTC)
NicoV - I will try tomorrow as I’m in bed for the night and let you know. I’m pretty sure I downloaded it from the main install page {{Wikipedia:WPCleaner/Installation}} changed my directory to c:\wpcleaner2 to run the install. I installed the original in this folder too but it was c:\wpcleaner and that worked no issue. I can try it in the morning. Thanks for the help! Bakertheacre Chat/My Contibutions 06:17, 6 July 2020 (UTC)
NicoV NicoV, No dice buddy. Here is my log from one attempt:

08:02:07.462 [main] INFO org.wikipediacleaner.Installer - Starting WPCleaner installer

08:02:08.006 [AWT-EventQueue-0] INFO org.wikipediacleaner.Installer - Operating system - Windows 10 - 10.0 - x86 Java - Oracle Corporation - 1.8.0_251 - 52.0 Java VM - Java HotSpot(TM) Client VM - 25.251-b08 - Oracle Corporation - mixed mode Java home=C:\Program Files (x86)\Java\jre1.8.0_251 Java runtime - Java(TM) SE Runtime Environment - 1.8.0_251-b08 08:02:23.852 [Thread-4] INFO org.wikipediacleaner.Installer - Downloading getdown.txt 08:02:24.672 [Thread-4] ERROR org.wikipediacleaner.Installer - Unable to download file getdown.txt.

Error: https://wpcleaner.toolforge.org/wpcleaner/getdown.txt

Thanks - Bakertheacre Chat/My Contibutions 15:17, 6 July 2020 (UTC)

Bakertheacre I don't see how it's possible if you downloaded again the installer and ran the new installer... I just tried myself on a computer, both with the normal version and the beta version, and it worked like a charm, WPCleaner successfully installed both times. --NicoV (Talk on frwiki) 15:51, 6 July 2020 (UTC)


UPDATE - I did the getdown installation via cmd and it worked with installation, however, took substantially longer. Bakertheacre Chat/My Contibutions 15:29, 6 July 2020 (UTC)

eeekkkk so Chrome wasn't liking it. I did it in FireFox and no issues......Bakertheacre Chat/My Contibutions 16:08, 6 July 2020 (UTC)

New Issue Comment

  Resolved

Hey NicoV, so wiped my computer all up to date went to install WPCleaner and now I get this:

0% The Digest file is invalid.

--Bakertheacre Chat/My Contibutions 22:03, 7 July 2020 (UTC)

This is due to the migration of WMF Labs servers to a new domain, which causes issues with redirects. Please follow Phabricator task to see progress (but it's a really busy day for me, so not sure when I will be able to find a solution). --NicoV (Talk on frwiki) 10:27, 8 July 2020 (UTC)
Hi Bakertheacre. See my comment on Phabricator for a way to bypass the problem. --NicoV (Talk on frwiki) 14:17, 8 July 2020 (UTC)
Hi Bakertheacre. See below or the Phabricator task, it should work. --NicoV (Talk on frwiki) 19:51, 8 July 2020 (UTC)
NicoV, Yes it works and installed like a charm. Still cannot use the preview though.Bakertheacre Chat/My Contibutions 19:53, 8 July 2020 (UTC)

Since yesterday getdown installer exit code 1

  Resolved

Had been working for weeks without any probs... any issues?! CommanderWaterford (talk) 09:29, 8 July 2020 (UTC)

This is due to the migration of WMF Labs servers to a new domain, which causes issues with redirects. Please follow Phabricator task to see progress (but it's a really busy day for me, so not sure when I will be able to find a solution). --NicoV (Talk on frwiki) 10:27, 8 July 2020 (UTC)
Hi CommanderWaterford. See my comment on Phabricator for a way to bypass the problem. --NicoV (Talk on frwiki) 14:18, 8 July 2020 (UTC)
NicoV, thanks but this will not work because i run the .jar every time again (MacOS) .... CommanderWaterford (talk) 14:22, 8 July 2020 (UTC)
Hi CommanderWaterford. I don't understand. Do you mean you're running the Installer every time? If that's the case, just download again the installer, it should work (I tried to do a fresh install, and it worked). The installer has also been modified to handle the domain migration of WMF Labs servers. --NicoV (Talk on frwiki) 14:49, 8 July 2020 (UTC)
NicoV, hahah...:-) you need to modify the download link here...it still points to wmflabs... "404 - not found" .... CommanderWaterford (talk) 17:03, 8 July 2020 (UTC)
Hi CommanderWaterford. The link on Wikipedia:WPCleaner/Installation works now : https://wpcleaner.toolforge.org/install/WPCleanerInstaller.jar . The problem should hopefully be fixed... --NicoV (Talk on frwiki) 17:32, 8 July 2020 (UTC)
Wait 10mn... there's still a problem. With the moving URL, it's hard to keep track of the correct ones... --NicoV (Talk on frwiki) 17:34, 8 July 2020 (UTC)
NicoV, relax, I am not in a hurry :) take your time... CommanderWaterford (talk) 17:43, 8 July 2020 (UTC)
Hi CommanderWaterford. I managed to do a full installation after downloading the latest installer. --NicoV (Talk on frwiki) 17:50, 8 July 2020 (UTC)
NicoV, yes, that worked fine for me, also - thanks a lot! CommanderWaterford (talk) 19:25, 8 July 2020 (UTC)

Phabricator

Hi everyone. I've decided to use Phabricator for bug tracking and feature requests. If possible, can you use Phabricator to submit a bug report or a feature request. A dashboard is handled by Phabricator. --NicoV (Talk on frwiki) 11:13, 24 June 2020 (UTC)

Translation of WPCleaner

Hi. If anyone is interested in translating WPCleaner to other languages, it's now possible on Translatewiki.net. --NicoV (Talk on frwiki) 19:28, 7 July 2020 (UTC)

Spacing

  Resolved

Hi @NicoV: - I noticed that on some articles when something like "goalkeeper1910 Copa del Rey" the program does not suggest any spacing so it would appear like "goalkeeper 1910 Copa del Rey". Is there a way to have the program do this, or a code or something I can use to do this with? Thanks Bakertheacre Chat/What I Baked 21:12, 12 July 2020 (UTC)

Hi Bakertheacre. Currently, there's nothing for such cases. One way would be to add a dedicated algorithm to detect text before an internal link. If you're interested, please open a Phabricator task. --NicoV (Talk on frwiki) 08:36, 13 July 2020 (UTC)

Spanish

  Resolved

I have a question. So in this article 2020 in Mexico WPCleaner throws spelling errors due to the references being in Spanish. Is there a way I can whitelist this page for those spellings so it will stop coming up in my system for spelling errors? As of the time of this writing, there are 24 errors showing all refs.

Thanks, Bakertheacre Chat/What I Baked 17:02, 17 July 2020 (UTC)

{{lang}} or {{Not a typo}} depending on the context. Jerod Lycett (talk) 00:18, 18 July 2020 (UTC)
Text in another language should be put in {{lang}} I think. --NicoV (Talk on frwiki) 05:39, 18 July 2020 (UTC)
Occasionally it's a single non-English word used in a phrase or title, books for example that are English resources on a non-English subject. In those cases I would mark it as not a typo as it's part of English. Jerod Lycett (talk) 07:43, 18 July 2020 (UTC)
Ok. I thought it mostly depends on how it should be pronounced: for me, if it's to be pronounced as a foreign word, it should be {{lang}}, but if it's should be pronounced as an English word, {{not a typo}} is better. Because for screen readers, {{lang}} gives the correct language. --NicoV (Talk on frwiki) 09:04, 18 July 2020 (UTC)

Misspelling of "its"

  Resolved

It would be great if WPCleaner were to flag instances of its' (with the apostrophe after its). The correct spelling (when used as a possessive) has no apostrophe anywhere. For example, I had to fix that typo manually in this edit as WPCleaner did not detect it. Johnny Au (talk/contributions) 00:36, 28 July 2020 (UTC)

@Johnny Au: All detections about spelling are managed through regular expressions, defined either in Wikipedia:AutoWikiBrowser/Typos (WPCleaner uses the definitions made for AWB) or in Wikipedia:WPCleaner/Suggestions (which was created recently by GoingBatty and is specific to WPCleaner, see Wikipedia_talk:WPCleaner/Archive_2020#Typos suggestions page). I suggest adding a typo fix in one of them. --NicoV (Talk on frwiki) 07:47, 28 July 2020 (UTC)
Added to the AWB list. Johnny Au (talk/contributions) 14:03, 28 July 2020 (UTC)

Installation issue

  Additional information needed

Just a heads up: the Windows installer was unable to work (Java on Windows 8.1) and seems to have created an issue with a DLL file somewhere that is now affecting other programs. Might want to look into the problem. SounderBruce 00:40, 27 May 2020 (UTC)

Hi SounderBruce. Do you have more details? Any error message? What DLL? --NicoV (Talk on frwiki) 04:54, 27 May 2020 (UTC)

Important: manual upgrade of WPCleaner

  Resolved

Hi, due to the migration of Toolforge domain, WPCleaner is currently unable to update itself from 2.02 to 2.03. I'm talking with WMF to see if they can do something on their side, but if you want to upgrade to 2.03 (minor improvements for the moment), you can do it in several ways:

Tell me if anything goes wrong. --NicoV (Talk on frwiki) 15:39, 10 July 2020 (UTC)

It works beautifully for Mac. After I installed WPCleaner 2.03, I created an Automator script to open it. Johnny Au (talk/contributions) 00:55, 11 July 2020 (UTC)

Hi everyone: a hack has been put in place on the Toolforge side until September 15th. Normally, by running WPCleaner at least once before this date, it should update itself to 2.03 (and be able to keep updating whether the hack is still there or not). Tell me if you see any issues. --NicoV (Talk on frwiki) 17:12, 24 July 2020 (UTC)

That is great and it has been updated from my end as stated earlier. Johnny Au (talk/contributions) 01:27, 1 August 2020 (UTC)

Misspelling of "its" (update)

I have added the typo of its' [sic] to AWB, but it does not recognize it when used in Target Canada given that the typo is found within the Gallery. Johnny Au (talk/contributions) 03:10, 20 September 2020 (UTC)

Hi Johnny Au. Can you give me more details? Which regexp is used? I tried removing the gallery tags, but it made no difference, so which text should be detected? --NicoV (Talk on frwiki) 07:45, 23 September 2020 (UTC)
I used these regexp:
<Typo word="Its (after)" find="\b(?=it)(?<=\b(?:[aA](?:bove|[lm]ong(?:st)?|r(?:e|ound)|t)|[bB](?:e(?:low|tween|yond)?|oth|y)|[cC]elebrat(?:e[ds]?|ing)|[dD]uring|[fF]rom|[hH][eo]ld|[iI]n(?:to)?|[kK]eep|[mM]ade|[oO](?:f|n(?:to)?|ver)|[tT](?:hrough(?:out)?|o)|[uU](?:nder(?:neath)?|p(?:on)?)|[wW]ith(?:in|out)?)\s+)it[´ˈ׳᾿‘’′Ꞌꞌ`;']s\b" replace="its"/>
<Typo word="Its (after)" find="\b(?=it)(?<=\b(?:[aA](?:bove|[lm]ong(?:st)?|r(?:e|ound)|t)|[bB](?:e(?:low|tween|yond)?|oth|y)|[cC]elebrat(?:e[ds]?|ing)|[dD]uring|[fF]rom|[hH][eo]ld|[iI]n(?:to)?|[kK]eep|[mM]ade|[oO](?:f|n(?:to)?|ver)|[tT](?:hrough(?:out)?|o)|[uU](?:nder(?:neath)?|p(?:on)?)|[wW]ith(?:in|out)?)\s+)its[´ˈ׳᾿‘’′Ꞌꞌ`;']\b" replace="its"/>
<Typo word="Its (before)" find="\b([iI])t[´ˈ׳᾿‘’′Ꞌꞌ`;']s\s+(apex|causes?|do(?:ors|wnfall)|founders?|inceptions?|o(?:rigins?|wn)|p(?:innacle|olicies)|reasons?|zenith)\b" replace="$1ts $2"/>
<Typo word="Its (before)" find="\b([iI])ts[´ˈ׳᾿‘’′Ꞌꞌ`;']\s+(apex|causes?|do(?:ors|wnfall)|founders?|inceptions?|o(?:rigins?|wn)|p(?:innacle|olicies)|reasons?|zenith)\b" replace="$1ts $2"/>
Here's the text in question:
<gallery> File:TargetCenterpointMall.JPG|The mall entrance to the Target in [[Centerpoint Mall (Toronto)|Centerpoint Mall]] in [[North York]], [[Toronto]], [[Ontario]] in 2014. This store closed in 2015 and became a [[Lowe's]] in 2016 or 2017. However, [[Lowe's]] closed in 2019. As of 2020, the space now sits vacant. File:Target Merivale Rd Nepean (Ottawa) ON 2 (16430277613).jpg|A Target store in [[Nepean, Ontario|Nepean]], [[Ottawa]], [[Ontario]] in 2015 during its closing sale. Closed in 2015 and became a [[FreshCo]] in 2017. File:Target Canada Shoppers World Brampton SAM 0720 23.JPG|The mall entrance to the Target at [[Shoppers World Brampton]] in [[Brampton]], [[Ontario]], during its grand opening in 2013. Closed in 2015, and later expanded and became a [[Jysk]], [[Staples Inc.|Staples]], [[GoodLife Fitness]], and a [[Giant Tiger]] in 2017 or 2018. File:Target Canada Shoppers World Brampton SAM 0720 20.JPG|The outside entrance of the Target at [[Shoppers World Brampton]]. File:Target Cambridge Centre Cambridge, ON, Canada 3 (24718883568).jpg|The abandoned Target at [[Cambridge Centre]] in [[Cambridge, Ontario|Cambridge]], [[Ontario]] in 2017. The store sat abandoned for 3 and a half years until [[Marshalls]] took over the space in 2018. File:Target Cloverdale Mall Etobicoke, ON. Canada 2 (38558394542).jpg|The abandoned Target at [[Cloverdale Mall]] in [[Etobicoke]], [[Ontario]] in 2017. As of 2020, the space still sits abandoned. File:Target Boulevard Newman, Lasalle, QC 3 (16759503571).jpg|The Target at [[Carrefour Angrignon]] in [[Lasalle, Quebec]] during its' closing sale in 2015. Closed that year and became a [[Hudson's Bay (retailer)|La Baie D'Hudson]] in 2018. File:Target Boulevard Newman, Lasalle, QC 4 (16140731573).jpg|The mall entrance to the Target in [[Carrefour Angrignon]]. </gallery>
More specifically, it's this string: during its' closing. Johnny Au (talk/contributions) 14:24, 23 September 2020 (UTC)
Hi Johnny Au. I tried the expression on regexplanet and it doesn't work there, so I think there's a problem with the regular expression. If I understand correctly, you expect the second regular expression to match.
What I understand of the regular expression \b(?=it)(?<=\b(?:[aA](?:bove|[lm]ong(?:st)?|r(?:e|ound)|t)|[bB](?:e(?:low|tween|yond)?|oth|y)|[cC]elebrat(?:e[ds]?|ing)|[dD]uring|[fF]rom|[hH][eo]ld|[iI]n(?:to)?|[kK]eep|[mM]ade|[oO](?:f|n(?:to)?|ver)|[tT](?:hrough(?:out)?|o)|[uU](?:nder(?:neath)?|p(?:on)?)|[wW]ith(?:in|out)?)\s+)its[´ˈ׳᾿‘’′Ꞌꞌ`;']\b:
  • \b: starts at a word boundary
  • (?=it): positive constraint on the following text (must be "it"), but doesn't move the parser
  • (?<=...): positive constraint on the preceding text:
    • \b: must have a word boundary at its beginning
    • (?:...|...|...): non capturing group, consisting of either:
      • [aA](?:bove|[lm]ong(?:st)?|r(?:e|ound)|t): several words beginning by letter "a"
      • [bB](?:e(?:low|tween|yond)?|oth|y): several words beginning by letter "b"
      • [cC]elebrat(?:e[ds]?|ing): several words beginning by letter "c"
      • [dD]uring: "during"
      • ...
    • \s+: at least one whitespace character
  • its[´ˈ׳᾿‘’′Ꞌꞌ`;']\b: "its" + punctuation ending at a word boundary => It seems the position between the single quote and the whitespace is not a word boundary, that's why the regular expression doesn't work...
Can you fix the regular expressions, and try again: it should at least work outside of gallery tags, we'll see if it works also in them --NicoV (Talk on frwiki) 11:16, 26 September 2020 (UTC)
Let me summon Certes. Can you take a look? Thank you. Johnny Au (talk/contributions) 15:34, 26 September 2020 (UTC)
\b matches a boundary between word and non-word characters. Apostrophe and space are both non-word, so \b doesn't match. The regex would only match something like its'foo, or its' at the end of a string. Can we just remove the \b?Certes (talk) 17:24, 26 September 2020 (UTC)
@Certes and Johnny Au: I think removing the \b or adding a \s* before would do the trick. --NicoV (Talk on frwiki) 11:57, 27 September 2020 (UTC)
Instead, we might check for (?!'), so we don't remove one of the two or three apostrophes which end an italic or bold section, as in It (pronoun)#Usage. Certes (talk) 12:34, 27 September 2020 (UTC)
How often does a bolded or italicized section end on the word "its"? Johnny Au (talk/contributions) 15:55, 27 September 2020 (UTC)
I found 113 cases before the search timed out. Certes (talk) 16:19, 27 September 2020 (UTC)
Given that practically all correct examples of its' all have a quotation mark apostrophe before it as well, it would be great if there were another regexp for its' while ignoring 'its'. Johnny Au (talk/contributions) 00:43, 1 October 2020 (UTC)
We have seven cases of 'its' without further apostrophes, plus K'its'i in Georgia and the Navajo cultural figure Ts'its'tsi'nako. All seem correct. (?!') should cover the rest. The one false positive I found was the its's/its distinction in Template:Did you know nominations/Dylan Penn, which we shouldn't be correcting anyway. There's also an its's in Michigan Park (Washington, D.C.), which this regex should detect but might suggest itss. Certes (talk) 12:17, 1 October 2020 (UTC)
Good catch. Johnny Au (talk/contributions) 00:24, 14 October 2020 (UTC)

The typo has been fixed manually by LilHelpa without any tools. Johnny Au (talk/contributions) 00:16, 1 November 2020 (UTC)

I appreciate the acknowlegement. I probably should have referred it for someone to add. There was a significan number of instances. --LilHelpa (talk) 14:06, 1 November 2020 (UTC)

CHECKWIKI #37 (and #6?) 2018-07-09

Hello!

Could & automaically be replaced with and? I've yet to see one instance where it hasn't been replaced in this way, manually. (tJosve05a (c) 14:37, 9 July 2018 (UTC)

Hi Josve05a. Maybe in a later version (not soon, I still haven't done the work to be able to release new versions), but that will be dependent on the language... --NicoV (Talk on frwiki) 14:51, 9 July 2018 (UTC)
Great hearing from you again NicoV, btw. Been a long time since I was last active around here ^^ (tJosve05a (c) 14:55, 9 July 2018 (UTC)

Load list of All pages with prefix?

Is it possible to get WPCleaner to load a list like https://en.wikipedia.org/wiki/Special:PrefixIndex/Portal:Rock_music/ ? GoingBatty (talk) 20:49, 15 September 2019 (UTC)

Hi GoingBatty. In the current version, there's no way to retrieve a list from Special/PrefixIndex in WPC. For punctual needs, it can be done manually in a few steps:
  1. Use the API Sandbox, to have the list of pages in JSON: query for your need.
  2. Use a tool like JSON Query Tester to convert this complete JSON to a JSON list of page titles: copy the result from the API Sandbox in the JSON edit area, enter the query ($.query.prefixsearch..title in your case)
  3. Use a text editor to have a simple list of page names :
    • Remove the initial [
    • Remove the final ]
    • Replace all     " by nothing
    • Replace all ", by nothing (and also the last quote)
  4. Finally, use the "Load list from drive" feature in WPCleaner to load this list (unformatted list of page names)
  • As the list is more than 500 pages, you will have to do it again for the next batch of pages (click on Continue on the API Sandbox to have the next batch). Or if you have bot rights, you can go to 5000 pages in a request.
Unformatted list of page names for the first 500 pages
Portal:Rock music/Selected albums
Portal:Rock music/Selected articles
Portal:Rock music/Selected songs
Portal:Rock music/Selected biographies
Portal:Rock music/Selected pictures
Portal:Rock music/Selected genres
Portal:Rock music/box-header
Portal:Rock music/Selected audio
Portal:Rock music/Selected articles/4
Portal:Rock music/Selected articles/5
Portal:Rock music/Selected articles/2
Portal:Rock music/Selected articles/1
Portal:Rock music/Selected articles/7
Portal:Rock music/Selected articles/10
Portal:Rock music/Selected articles/6
Portal:Rock music/Selected articles/8
Portal:Rock music/Topics
Portal:Rock music/Intro
Portal:Rock music/Selected pictures/8
Portal:Rock music/Selected pictures/3
Portal:Rock music/Selected pictures/9
Portal:Rock music/Selected pictures/2
Portal:Rock music/Selected pictures/6
Portal:Rock music/Selected pictures/4
Portal:Rock music/Selected pictures/1
Portal:Rock music/Selected articles/9
Portal:Rock music/Selected pictures/7
Portal:Rock music/Selected articles/3
Portal:Rock music/Selected pictures/5
Portal:Rock music/OnThisDay/May 12
Portal:Rock music/OnThisDay/November 29
Portal:Rock music/OnThisDay/September 23
Portal:Rock music/OnThisDay/December 1
Portal:Rock music/OnThisDay/August 25
Portal:Rock music/OnThisDay/February 18
Portal:Rock music/OnThisDay/September 29
Portal:Rock music/OnThisDay/October 1
Portal:Rock music/OnThisDay/October 10
Portal:Rock music/OnThisDay/May 3
Portal:Rock music/OnThisDay/April 2
Portal:Rock music/OnThisDay/October 9
Portal:Rock music/OnThisDay/July 7
Portal:Rock music/OnThisDay/April 12
Portal:Rock music/OnThisDay/October 15
Portal:Rock music/OnThisDay/October 25
Portal:Rock music/OnThisDay/March 14
Portal:Rock music/OnThisDay/August 11
Portal:Rock music/OnThisDay/October 22
Portal:Rock music/OnThisDay/June 15
Portal:Rock music/OnThisDay/September 24
Portal:Rock music/OnThisDay/March 2
Portal:Rock music/OnThisDay/February 23
Portal:Rock music/OnThisDay/February 24
Portal:Rock music/OnThisDay/September 21
Portal:Rock music/OnThisDay/August 16
Portal:Rock music/OnThisDay/May 6
Portal:Rock music/OnThisDay/September 10
Portal:Rock music/OnThisDay/August 20
Portal:Rock music/OnThisDay/July 22
Portal:Rock music/OnThisDay/June 24
Portal:Rock music/OnThisDay/May 31
Portal:Rock music/OnThisDay/October 2
Portal:Rock music/OnThisDay/March 28
Portal:Rock music/OnThisDay/May 26
Portal:Rock music/OnThisDay/October 7
Portal:Rock music/OnThisDay/November 22
Portal:Rock music/OnThisDay/March 11
Portal:Rock music/OnThisDay/August 9
Portal:Rock music/OnThisDay/July 21
Portal:Rock music/OnThisDay/January 31
Portal:Rock music/OnThisDay/September 27
Portal:Rock music/OnThisDay/March 23
Portal:Rock music/OnThisDay/September 8
Portal:Rock music/OnThisDay/November 5
Portal:Rock music/OnThisDay/January 11
Portal:Rock music/OnThisDay/April 20
Portal:Rock music/OnThisDay/September 14
Portal:Rock music/OnThisDay/October 5
Portal:Rock music/OnThisDay/February 22
Portal:Rock music/OnThisDay/August 8
Portal:Rock music/OnThisDay/August 1
Portal:Rock music/OnThisDay/October 18
Portal:Rock music/OnThisDay/November 9
Portal:Rock music/OnThisDay/February 5
Portal:Rock music/OnThisDay/April 28
Portal:Rock music/News
Portal:Rock music/OnThisDay/March 26
Portal:Rock music/OnThisDay/July 16
Portal:Rock music/OnThisDay/October 19
Portal:Rock music/OnThisDay/January 1
Portal:Rock music/OnThisDay/February 2
Portal:Rock music/OnThisDay/February 28
Portal:Rock music/OnThisDay/February 10
Portal:Rock music/OnThisDay/November 4
Portal:Rock music/OnThisDay/November 6
Portal:Rock music/OnThisDay/August 31
Portal:Rock music/OnThisDay/February 16
Portal:Rock music/OnThisDay/May 16
Portal:Rock music/OnThisDay/July 3
Portal:Rock music/OnThisDay/July 25
Portal:Rock music/OnThisDay/May 1
Portal:Rock music/OnThisDay/January 4
Portal:Rock music/OnThisDay/August 3
Portal:Rock music/OnThisDay/August 27
Portal:Rock music/OnThisDay/January 15
Portal:Rock music/OnThisDay/April 5
Portal:Rock music/OnThisDay/January 28
Portal:Rock music/OnThisDay/March 1
Portal:Rock music/OnThisDay/January 27
Portal:Rock music/OnThisDay/January 7
Portal:Rock music/Selected pictures/Layout
Portal:Rock music/OnThisDay/September 20
Portal:Rock music/OnThisDay/June 13
Portal:Rock music/OnThisDay/December 2
Portal:Rock music/OnThisDay/May 21
Portal:Rock music/OnThisDay/June 7
Portal:Rock music/OnThisDay/May 10
Portal:Rock music/Current Events
Portal:Rock music/OnThisDay/June 1
Portal:Rock music/Wikimedia
Portal:Rock music/Did you know
Portal:Rock music/OnThisDay
Portal:Rock music/WikiProjects
Portal:Rock music/Sub portals
Portal:Rock music/Categories
Portal:Rock music/Related portals
Portal:Rock music/Selected articles/19
Portal:Rock music/Selected biographies/29
Portal:Rock music/Selected articles/46
Portal:Rock music/Selected albums/18
Portal:Rock music/Selected biographies/35
Portal:Rock music/Selected songs/39
Portal:Rock music/Selected articles/30
Portal:Rock music/Selected articles/37
Portal:Rock music/Selected songs/34
Portal:Rock music/Selected songs/33
Portal:Rock music/Selected pictures/13
Portal:Rock music/Selected albums/23
Portal:Rock music/Selected articles/34
Portal:Rock music/Selected biographies/3
Portal:Rock music/Selected albums/29
Portal:Rock music/Selected songs/48
Portal:Rock music/Selected albums/39
Portal:Rock music/Selected articles/50
Portal:Rock music/Selected albums/11
Portal:Rock music/Selected articles/14
Portal:Rock music/Selected songs/1
Portal:Rock music/Selected albums/17
Portal:Rock music/Selected pictures/16
Portal:Rock music/Selected biographies/20
Portal:Rock music/Selected albums/26
Portal:Rock music/Selected articles/42
Portal:Rock music/Selected biographies/9
Portal:Rock music/Selected songs/18
Portal:Rock music/Selected albums/15
Portal:Rock music/Selected genres/4
Portal:Rock music/Selected albums/46
Portal:Rock music/Selected albums/50
Portal:Rock music/Selected songs/40
Portal:Rock music/Selected articles/45
Portal:Rock music/Selected genres/2
Portal:Rock music/Selected albums/27
Portal:Rock music/Selected songs/31
Portal:Rock music/Selected biographies/27
Portal:Rock music/Selected albums/45
Portal:Rock music/Selected pictures/15
Portal:Rock music/Selected songs/15
Portal:Rock music/Selected songs/19
Portal:Rock music/Selected albums/9
Portal:Rock music/Selected albums/41
Portal:Rock music/Selected albums/53
Portal:Rock music/Selected albums/57
Portal:Rock music/Selected articles/21
Portal:Rock music/Selected biographies/7
Portal:Rock music/Selected articles/32
Portal:Rock music/Selected articles/13
Portal:Rock music/Selected songs/2
Portal:Rock music/Selected articles/11
Portal:Rock music/Selected songs/32
Portal:Rock music/Selected articles/55
Portal:Rock music/Selected genres/3
Portal:Rock music/Selected articles/56
Portal:Rock music/Selected articles/47
Portal:Rock music/Selected biographies/24
Portal:Rock music/Selected biographies/6
Portal:Rock music/Selected albums/3
Portal:Rock music/Selected albums/21
Portal:Rock music/Selected albums/20
Portal:Rock music/Selected albums/36
Portal:Rock music/Selected songs/35
Portal:Rock music/Selected audio/5
Portal:Rock music/Selected genres/9
Portal:Rock music/Selected albums/2
Portal:Rock music/Selected albums/60
Portal:Rock music/Selected songs/59
Portal:Rock music/Selected songs/58
Portal:Rock music/Selected articles/60
Portal:Rock music/Selected songs/6
Portal:Rock music/Selected albums/19
Portal:Rock music/Selected articles/23
Portal:Rock music/Selected biographies/12
Portal:Rock music/Selected articles/16
Portal:Rock music/Selected biographies/15
Portal:Rock music/Selected articles/26
Portal:Rock music/Selected songs/29
Portal:Rock music/Selected biographies/28
Portal:Rock music/Selected albums/59
Portal:Rock music/Selected albums/48
Portal:Rock music/Selected albums/25
Portal:Rock music/Selected pictures/11
Portal:Rock music/Selected albums/12
Portal:Rock music/Selected genres/1
Portal:Rock music/Selected albums/7
Portal:Rock music/Selected articles/31
Portal:Rock music/Selected songs/51
Portal:Rock music/Selected biographies/34
Portal:Rock music/Selected articles/41
Portal:Rock music/Selected articles/36
Portal:Rock music/Selected biographies/10
Portal:Rock music/Selected biographies/1
Portal:Rock music/Selected albums/44
Portal:Rock music/Selected articles/51
Portal:Rock music/Selected songs/23
Portal:Rock music/Selected albums/56
Portal:Rock music/Selected songs/55
Portal:Rock music/Selected genres/8
Portal:Rock music/Selected articles/29
Portal:Rock music/Selected articles/Layout
Portal:Rock music/Selected songs/22
Portal:Rock music/Selected biographies/4
Portal:Rock music/Selected albums/37
Portal:Rock music/Selected biographies/17
Portal:Rock music/Selected genres/13
Portal:Rock music/Selected songs/3
Portal:Rock music/Selected biographies/11
Portal:Rock music/Selected albums/38
Portal:Rock music/Selected articles/40
Portal:Rock music/Selected biographies/39
Portal:Rock music/Selected biographies/22
Portal:Rock music/Selected pictures/20
Portal:Rock music/Selected genres/12
Portal:Rock music/Selected biographies/8
Portal:Rock music/Selected biographies/37
Portal:Rock music/Selected songs/11
Portal:Rock music/Selected articles/22
Portal:Rock music/Selected songs/14
Portal:Rock music/Selected articles/28
Portal:Rock music/Selected articles/54
Portal:Rock music/Selected articles/38
Portal:Rock music/Selected songs/57
Portal:Rock music/Selected biographies/33
Portal:Rock music/Selected genres/6
Portal:Rock music/Selected songs/28
Portal:Rock music/Selected albums/35
Portal:Rock music/Selected songs/38
Portal:Rock music/Selected pictures/10
Portal:Rock music/Selected pictures/12
Portal:Rock music/Selected pictures/19
Portal:Rock music/Selected songs/7
Portal:Rock music/Selected albums/40
Portal:Rock music/Selected albums/54
Portal:Rock music/Selected albums/30
Portal:Rock music/Selected articles/43
Portal:Rock music/Selected songs/49
Portal:Rock music/Selected articles/18
Portal:Rock music/Selected genres/10
Portal:Rock music/Selected albums/34
Portal:Rock music/Selected songs/53
Portal:Rock music/Selected songs/36
Portal:Rock music/Selected pictures/14
Portal:Rock music/Selected songs/46
Portal:Rock music/Selected biographies/19
Portal:Rock music/Selected genres/11
Portal:Rock music/Selected albums/55
Portal:Rock music/Selected biographies/26
Portal:Rock music/Selected albums/16
Portal:Rock music/Selected albums/22
Portal:Rock music/Selected songs/10
Portal:Rock music/Selected articles/39
Portal:Rock music/Selected albums/32
Portal:Rock music/Selected biographies/13
Portal:Rock music/Selected biographies/23
Portal:Rock music/Selected songs/24
Portal:Rock music/Selected songs/37
Portal:Rock music/Selected biographies/40
Portal:Rock music/Selected albums/6
Portal:Rock music/Selected songs/27
Portal:Rock music/Selected biographies/18
Portal:Rock music/Selected albums/4
Portal:Rock music/Selected songs/16
Portal:Rock music/Selected songs/21
Portal:Rock music/Selected songs/44
Portal:Rock music/Selected songs/8
Portal:Rock music/Selected albums/58
Portal:Rock music/Selected songs/56
Portal:Rock music/Selected articles/59
Portal:Rock music/Selected articles/25
Portal:Rock music/Selected articles/49
Portal:Rock music/Selected articles/24
Portal:Rock music/Selected albums/10
Portal:Rock music/Selected songs/20
Portal:Rock music/Selected albums/24
Portal:Rock music/Selected albums/49
Portal:Rock music/Selected biographies/31
Portal:Rock music/Selected albums/1
Portal:Rock music/Selected songs/9
Portal:Rock music/Selected songs/13
Portal:Rock music/Selected albums/5
Portal:Rock music/Selected songs/54
Portal:Rock music/Selected articles/53
Portal:Rock music/Selected songs/30
Portal:Rock music/Selected biographies/14
Portal:Rock music/Selected biographies/2
Portal:Rock music/Selected articles/52
Portal:Rock music/Selected biographies/5
Portal:Rock music/Selected articles/15
Portal:Rock music/Selected albums/33
Portal:Rock music/Selected pictures/18
Portal:Rock music/Selected biographies/30
Portal:Rock music/Selected albums/42
Portal:Rock music/Selected biographies/21
Portal:Rock music/Selected albums/14
Portal:Rock music/Selected songs/12
Portal:Rock music/Selected biographies/32
Portal:Rock music/Selected albums/52
Portal:Rock music/Selected songs/26
Portal:Rock music/Selected albums/8
Portal:Rock music/Selected songs/25
Portal:Rock music/Selected articles/33
Portal:Rock music/Selected songs/41
Portal:Rock music/Selected songs/50
Portal:Rock music/Selected genres/5
Portal:Rock music/Selected songs/47
Portal:Rock music/Selected articles/17
Portal:Rock music/Selected biographies/38
Portal:Rock music/Selected biographies/25
Portal:Rock music/Selected albums/51
Portal:Rock music/Selected articles/27
Portal:Rock music/Selected albums/47
Portal:Rock music/Selected pictures/17
Portal:Rock music/Selected articles/20
Portal:Rock music/Selected biographies/16
Portal:Rock music/Selected songs/17
Portal:Rock music/Selected articles/35
Portal:Rock music/Selected audio/3
Portal:Rock music/Selected genres/7
Portal:Rock music/Selected songs/60
Portal:Rock music/Selected biographies/36
Portal:Rock music/Selected albums/43
Portal:Rock music/Selected albums/31
Portal:Rock music/Selected songs/45
Portal:Rock music/Selected songs/43
Portal:Rock music/Selected songs/52
Portal:Rock music/Selected articles/48
Portal:Rock music/Selected articles/57
Portal:Rock music/Selected albums/13
Portal:Rock music/Selected songs/4
Portal:Rock music/Selected songs/5
Portal:Rock music/Selected articles/12
Portal:Rock music/Selected articles/44
Portal:Rock music/Selected albums/28
Portal:Rock music/Selected articles/58
Portal:Rock music/Selected songs/42
Portal:Rock music/Selected albums/63
Portal:Rock music/OnThisDay/December 31
Portal:Rock music/OnThisDay/January 3
Portal:Rock music/OnThisDay/January 9
Portal:Rock music/OnThisDay/October 28
Portal:Rock music/OnThisDay/November 25
Portal:Rock music/OnThisDay/September 15
Portal:Rock music/OnThisDay/August 30
Portal:Rock music/OnThisDay/August 7
Portal:Rock music/OnThisDay/January 21
Portal:Rock music/OnThisDay/November 12
Portal:Rock music/OnThisDay/January 25
Portal:Rock music/OnThisDay/February 15
Portal:Rock music/OnThisDay/September 4
Portal:Rock music/Selected songs/64
Portal:Rock music/OnThisDay/March 30
Portal:Rock music/OnThisDay/March 27
Portal:Rock music/OnThisDay/April 8
Portal:Rock music/Selected articles/61
Portal:Rock music/OnThisDay/October 26
Portal:Rock music/OnThisDay/December 18
Portal:Rock music/OnThisDay/August 5
Portal:Rock music/OnThisDay/December 14
Portal:Rock music/OnThisDay/December 5
Portal:Rock music/OnThisDay/November 28
Portal:Rock music/Selected albums/73
Portal:Rock music/OnThisDay/March 15
Portal:Rock music/OnThisDay/March 25
Portal:Rock music/OnThisDay/December 28
Portal:Rock music/Selected albums/65
Portal:Rock music/OnThisDay/September 7
Portal:Rock music/OnThisDay/September 9
Portal:Rock music/OnThisDay/March 8
Portal:Rock music/OnThisDay/March 13
Portal:Rock music/OnThisDay/September 11
Portal:Rock music/OnThisDay/October 21
Portal:Rock music/OnThisDay/November 30
Portal:Rock music/OnThisDay/December 12
Portal:Rock music/OnThisDay/December 30
Portal:Rock music/OnThisDay/February 6
Portal:Rock music/OnThisDay/January 5
Portal:Rock music/OnThisDay/February 20
Portal:Rock music/OnThisDay/March 4
Portal:Rock music/OnThisDay/January 29
Portal:Rock music/OnThisDay/March 29
Portal:Rock music/OnThisDay/March 19
Portal:Rock music/OnThisDay/August 28
Portal:Rock music/OnThisDay/October 24
Portal:Rock music/OnThisDay/August 10
Portal:Rock music/OnThisDay/January 20
Portal:Rock music/OnThisDay/February 11
Portal:Rock music/OnThisDay/February 21
Portal:Rock music/OnThisDay/February 1
Portal:Rock music/Selected biographies/Layout
Portal:Rock music/Selected albums/70
Portal:Rock music/OnThisDay/September 30
Portal:Rock music/OnThisDay/September 12
Portal:Rock music/OnThisDay/November 11
Portal:Rock music/OnThisDay/November 16
Portal:Rock music/OnThisDay/November 21
Portal:Rock music/OnThisDay/October 31
Portal:Rock music/OnThisDay/November 2
Portal:Rock music/OnThisDay/November 1
Portal:Rock music/OnThisDay/August 23
Portal:Rock music/OnThisDay/April 1
Portal:Rock music/Selected songs/61
Portal:Rock music/Selected audio/6
Portal:Rock music/OnThisDay/October 16
Portal:Rock music/OnThisDay/September 1
Portal:Rock music/OnThisDay/September 25
Portal:Rock music/OnThisDay/September 26
Portal:Rock music/OnThisDay/January 10
Portal:Rock music/OnThisDay/December 15
Portal:Rock music/OnThisDay/December 22
Portal:Rock music/OnThisDay/August 12
Portal:Rock music/OnThisDay/August 15
Portal:Rock music/OnThisDay/January 23
Portal:Rock music/OnThisDay/March 5
Portal:Rock music/OnThisDay/March 24
Portal:Rock music/OnThisDay/April 7
Portal:Rock music/OnThisDay/September 16
Portal:Rock music/OnThisDay/September 2
Portal:Rock music/OnThisDay/February 27
Portal:Rock music/OnThisDay/November 19
Portal:Rock music/OnThisDay/December 19
Portal:Rock music/OnThisDay/December 13
Portal:Rock music/OnThisDay/December 24
Portal:Rock music/OnThisDay/August 6
Portal:Rock music/OnThisDay/February 7
Portal:Rock music/OnThisDay/January 12
Portal:Rock music/OnThisDay/December 3
Portal:Rock music/OnThisDay/August 26
Portal:Rock music/OnThisDay/January 18
Portal:Rock music/Selected albums/61
Portal:Rock music/Selected songs/62
Portal:Rock music/Selected albums/77
Portal:Rock music/Selected genres/Layout
Portal:Rock music/Selected articles/64
Portal:Rock music/OnThisDay/October 14
Portal:Rock music/Selected articles/63
Portal:Rock music/OnThisDay/February 12
Portal:Rock music/OnThisDay/February 13
Portal:Rock music/OnThisDay/February 3
Portal:Rock music/OnThisDay/March 18
Portal:Rock music/OnThisDay/April 10
Portal:Rock music/Selected songs/Layout
Portal:Rock music/Selected albums/67
Portal:Rock music/Selected albums/62
Portal:Rock music/OnThisDay/September 19
Portal:Rock music/OnThisDay/January 6
Portal:Rock music/Did you know/Archive
Portal:Rock music/OnThisDay/November 14
Portal:Rock music/OnThisDay/December 9
Portal:Rock music/OnThisDay/December 23
Portal:Rock music/OnThisDay/January 16
Portal:Rock music/Selected articles/62
Portal:Rock music/OnThisDay/March 12
Portal:Rock music/OnThisDay/October 13
Portal:Rock music/OnThisDay/November 24
Portal:Rock music/OnThisDay/December 7
Portal:Rock music/OnThisDay/December 10
Portal:Rock music/OnThisDay/December 21
Portal:Rock music/OnThisDay/August 24
Portal:Rock music/OnThisDay/January 14
Portal:Rock music/OnThisDay/January 24
Portal:Rock music/OnThisDay/February 26
Portal:Rock music/Selected songs/66
Portal:Rock music/Selected songs/65
Portal:Rock music/OnThisDay/September 22
Portal:Rock music/OnThisDay/October 23
Portal:Rock music/OnThisDay/October 4
Portal:Rock music/Selected audio/4
Portal:Rock music/OnThisDay/March 17
Portal:Rock music/OnThisDay/October 17
Portal:Rock music/OnThisDay/October 12
Portal:Rock music/OnThisDay/October 30
Portal:Rock music/box-footer
--NicoV (Talk on frwiki) 13:25, 16 September 2019 (UTC)

Encoding issue

I have tried using WPCleaner today for Telugu Wikipedia. Instead of showing Telugu characters, it is showing boxes -evidently due to encoding issue. Could not locate the encoding option in the Options menu of the application. Searched the archives here for a possible discussion but could not find any. Can somebody help me. Thanks __Chaduvari (talk) 09:08, 21 December 2019 (UTC)

Hello Chaduvari. I'm not sure it's an encoding issue, rather a font issue (the font used probably doesn't know how to display Telugu characters: in this example, they're using a specific font). I will try to check soon. --NicoV (Talk on frwiki) 10:33, 21 December 2019 (UTC)
Hi NicoV, I used Gautami font in the application - the same one used in that link. It was showing fine, when used in Micrsoft Word.__Chaduvari (talk) 12:40, 21 December 2019 (UTC)
Hi Chaduvari. How did you use Gautami font in WPCleaner? I'm not sure the settings for the font work correctly... If you open a page for Telugu Wikipedia in WPCleaner full analysis window, what parts are correctly displayed and what parts are not ? For me, the window title bar correctly displays Telugu, but not the rest (Page :, contents, list of errors...). --NicoV (Talk on frwiki) 13:04, 21 December 2019 (UTC)
@NicoV: Gautami font is available in the Fonts drop down list of the Options window (Formatting tab). When I first selected the font and applied it, I could see only boxes every where. But I did not restart the application. Now, I restarted the application and the current status is this:
  • Telugu characters are appearing in Full Analysis window but with serious distortions. The glyphs are seperated.
  • Analysis Window title bar shows Telugu perfectly, without any distortions.
  • But the Page name in the content header of the Analysis Window (just after "Page :") shows boxes.
  • "All Disambiguation pages" window shows only boxes not the characters.
  • In the "Disambiguation" window, Window title is perfectly showing Telugu
  • In the "Disambiguation" window, the left navigation panel shows boxes
  • In the "Disambiguation" window, the content area shows telugu but with distortions
  • In the "Disambiguation" window, the content header after "Page :" shows boxes.
  • When the check article is clicked, the next window contents show boxes.
__Chaduvari (talk) 13:30, 21 December 2019 (UTC)
Thanks Chaduvari. I see several problems:
  • WPCleaner lacks an option to change the font used for each element, not only the content area. So, I have to add this option.
  • Even with the Gautami font, the display is not good. I will check what I can do about it...
Hopefully, if I find a solution for both problems, it should be good. --NicoV (Talk on frwiki) 23:56, 21 December 2019 (UTC)
Hi Chaduvari.
  • The option to change the font used for each element is now available.
  • I don't see what I can do about the display with the Gautami font, because it's pure Java Swing that displays the font in the various components. Apart from trying another font, like Noto Sans Telegu, or trying another Java version, I see no solution. --NicoV (Talk on frwiki) 22:27, 17 March 2023 (UTC)

Error #534 possible false positive

As found on Fouad Laroui there is {{largethumb}}. This one does make me frown a bit as it makes things unclear on editing. Jerod Lycett (talk) 06:02, 8 January 2020 (UTC)

Thanks Jerod Lycett. I know there are a lot of false positives for the image attributes, but not sure how to avoid them all... This one will be typically very difficult... --NicoV (Talk on frwiki) 08:55, 8 January 2020 (UTC)

WP:BOLDAVOID Data Dump Request

Per Wikipedia:Bot requests#WP:BOLDAVOID search, is it possible for you to add a feature that would search the English Wikipedia and create a data dump of articles that do not follow WP:BOLDAVOID? Specifically, the search would need to find if there is any use of linking ([[ ]]) within the bolded (''' ''') portion of the first sentence of the article. Thanks! « Gonzo fan2007 (talk) @ 15:33, 29 January 2020 (UTC)

@Gonzo fan2007: Can you give me several examples of this? I'm trying to come up with a regex that should work and want to test it against them. Jerod Lycett (talk) 19:26, 29 January 2020 (UTC)
Jerodlycett, Assassination of Rajiv Gandhi, List of tropical cyclones, List of rivers of Ontario, List of lakes of Norway, List of Guinean films, and List of Russian artists are the only ones I could quickly find (one of the reasons I am looking for the tool, cause they are not easy to find unless you stumble upon one).
Also, here are some diffs of me fixing the problem: [1][2][3][4][5][6][7]. As you will see with the diffs, it takes a little bit of human input to fix the problem, which is why I just want the data dump and no auto-fixes. « Gonzo fan2007 (talk) @ 19:55, 29 January 2020 (UTC)
@Gonzo fan2007: Looking at those, determining what the first sentence of an article is would be the issue. That said, there may be false positives, but the following (unless I missed some punctuation marks) should find any sentence where it occurs. @NicoV: what improvements are there for it?
[\p{L}\p{M}\p{N}\p{Pd},'() ]*?'{3,5}[\p{L}\p{M}\p{N}\p{Pd},'() ]*?(?:\[{2}[\p{L}\p{M}\p{N}\p{Pd}'() ]+?\]{2}[\p{L}\p{M}\p{N}\p{Pd},'() ]*?)+?'{3,5}[^.]*?\.
Hopefully that's at least a small start. Jerod Lycett (talk) 20:48, 29 January 2020 (UTC)
Jerodlycett, honestly, there are very few times that a link should be bolded in the lead as a whole. If that makes it easier to perform the search, you could just grab the first paragraph of text. « Gonzo fan2007 (talk) @ 21:14, 29 January 2020 (UTC)
Jerodlycett and @NicoV:, any update or eta on this? Cheers, « Gonzo fan2007 (talk) @ 18:59, 31 January 2020 (UTC)
@Gonzo fan2007: For WPCleaner, some time in February, not before the second week at best, more likely the third. --NicoV (Talk on frwiki) 20:37, 31 January 2020 (UTC)
Thanks NicoV. Is there a way to see the initial database dump before that? Although I think it is a great idea to include it in the WPCleaner tool, I am really just curious (at first) so see the extent of the problem (i.e. how many pages may run afoul of this issue). Please excuse my ignorance on these things, as I have no expertise with bots/coding/etc. « Gonzo fan2007 (talk) @ 20:49, 31 January 2020 (UTC)
@Gonzo fan2007: I don't think so, I've to code the detection in WPCleaner first, and after that I will be able to run a analysis of the database dump. --NicoV (Talk on frwiki) 10:13, 1 February 2020 (UTC)
@Gonzo fan2007: Lastest dump as found at https://dumps.wikimedia.org/enwiki/latest/. Get permission to run WP:AWB, Make list from the dump as your source. Browse to the dump file, under Namespace tab check Main/Article. Under the text tab check contains and Regex, paste in the regex I put there. That will generate a list of the pages. Jerod Lycett (talk) 19:01, 1 February 2020 (UTC)
Jerodlycett, I followed your steps and here was the result: User:Gonzo_fan2007/bold. Not sure I got the results I was looking for. « Gonzo fan2007 (talk) @ 19:37, 2 February 2020 (UTC)
Jerodlycett, any ideas? It looks like the regex captured a larger swath of articles than expected. « Gonzo fan2007 (talk) @ 21:54, 6 February 2020 (UTC)
@Gonzo fan2007: Sorry, no. I'm not a regex user really, that's just what I wrote that would work. In all cases you would have to review the results yourself anyway. Jerod Lycett (talk) 22:22, 6 February 2020 (UTC)
Jerodlycett No problem with reviewing myself, I just want to make sure that false positives are limited. So far only 5 or so of the 550+ in the results have had an issue. For example, Dallas Cowboys came up in the regex results. Not sure how that is possible. « Gonzo fan2007 (talk) @ 22:25, 6 February 2020 (UTC)
Jerodlycett, now that I know what I am looking for, I have found more correct results. I am sorting them as I fix them and go through the list. I will let you know when I am done and maybe you can take a look at it to see if there is any way to tighten up the regex. « Gonzo fan2007 (talk) @ 22:41, 6 February 2020 (UTC)
Jerodlycett, so far I have checked 110 articles from the dump. Only 28 of those have had issues with bolding in the lead. You can see the list of false positives here: User:Gonzo fan2007/bold. One thing that I should have told you is that disambiguation pages are exempt from WP:BOLDAVOID, so any disambig pages can be removed from the search (there were about 70 in the original dump that I removed). Not sure if this info helps with your regex/tool creation. « Gonzo fan2007 (talk) @ 20:05, 11 February 2020 (UTC)
Thanks for the feature request. Johnny Au (talk/contributions) 00:38, 1 December 2020 (UTC)

Hi,

I am translating WPCleaner in translatewiki. There is this message: "Select &next links".

What is the ampersand doing there? --Amir E. Aharoni (talk) 16:58, 19 December 2020 (UTC)

Hi Amir E. Aharoni. Ampersand are for shortcuts : "Atl + N" should select next links. --NicoV (Talk on frwiki) 17:32, 19 December 2020 (UTC)
Can it be any letter?
What if the ampersand doesn't appear anywhere in the message? --Amir E. Aharoni (talk) 18:00, 19 December 2020 (UTC)
Hi Amir E. Aharoni. It can be any letter, there's just the risk of having the same letter in several messages. If there's no ampersand, then there's just no shortcut. — Preceding unsigned comment added by NicoV (talkcontribs) 19:05, 19 December 2020 (UTC)
Hi Amir E. Aharoni. I forgot to sign my previous answer. --NicoV (Talk on frwiki) 18:53, 1 January 2021 (UTC)

Bigg boss (Telugu Season 4)

  Resolved

The article Bigg Boss (Telugu season 4) has a lot of punctuation mistakes. Could you activate this bot on that page? — Preceding unsigned comment added by Vamsi20 (talkcontribs) 16:52, 7 January 2021 (UTC)

@Vamsi20: I have run WPCleaner on this article and made some other edits. Happy editing! GoingBatty (talk) 03:12, 15 February 2021 (UTC)