[18:36:57] Saving edit on [[MediaWiki:Gadget-massdelete.js]] (incubator.wikimedia.org)... [18:36:57] Skipped (Error returned by API: Editing of sitewide CSS/JS/JSON files has recently been limited to members of the [[Incubator:Interface administrators|Interface administrators]] group. See [[m:Creation of separate user group for editing sitewide CSS/JS]] for more information.) Loading next subject... [18:37:01] this has come up on a couple of other wikis too [18:37:33] but it should be fine: https://meta.wikimedia.org/wiki/Special:GlobalGroupPermissions/global-interface-editor [18:38:37] I don't get any warnings when I browse to https://incubator.wikimedia.org/w/index.php?title=MediaWiki:Gadget-massdelete.js&action=edit suggesting I can't edit [18:39:21] and indeed I can save that just fine if I do it manually through index.php [18:39:26] but tourbot hitting the API fails? [19:57:19] https://gerrit.wikimedia.org/r/#/c/mediawiki/core/+/447490/4/includes/Title.php [19:57:29] thing is I think I have all of those rights [19:58:14] maybe my BotPasswords setup doesn't include the right [20:00:44] Krenair: yep, that's it [20:00:57] I had to redo the bot password as well [20:01:07] It's a new grant afaik [20:01:10] ugh to get into BotPasswords I need to provide my 2FA token [20:01:36] * Krenair goes to get key [20:03:02] yeah "Edit sitewide and user CSS/JS" was not set [20:04:10] that did the trick [20:09:41] Krinkle, https://af.wiktionary.org/w/index.php?title=MediaWiki:Gadgets-definition&diff=prev&oldid=150444 [20:09:52] that... isn't valid is it? [20:10:54] hm apparently enwiki uses noinclude there [20:11:00] ok [20:11:31] tourbot really does not like this [20:11:33] The diff looks weird on mobile, I'm switching to the mathematician view [20:11:47] Which is Afrikaans for computer / desktop [20:12:13] Interesting those "Dutch" like words [20:12:58] Krenair: what happened with tourbot? [20:13:17] Yeah noinclude is unexpected on definition pages [20:13:22] as someone who speaks neither Dutch nor Afrikaans I have to say it is difficult to tell which is which :) [20:13:22] Also missing a closing bracket [20:13:49] MediaWiki:Gadgets-definition (af.wiktionary.org) [20:13:50] SyntaxError: Unexpected token (1:0) [20:13:50] [20:14:05] Right [20:14:24] When editing non-js pages, ignore the parse sanity check [20:14:56] maybe we could make it check the last three chars [20:15:06] only interpret it as JS if it's ending .js [20:15:28] I added a acorn.parse() call before reading and before saving so that you can skip broken pages and also catch if the bot made it broken syntax [20:16:30] Krenair: aye, I considered that. It does skip the check on .css already, but need to support .js/en [20:16:48] ugh right [20:17:36] The only case I found this with is definition pages though, and those only end up in mwgrep results when bypassing the default title filter it has, so I tend to do them in a separate batch [20:17:51] I don't recall if I added a cli option to skip the check? [20:18:11] Also, if you haven't already, be sure to use -x and --xt 0 [20:18:29] It'll still ask before saving in that case [20:18:43] But it'll remember your previous decision for similar diffs [20:18:59] It'll never save without your input though [20:19:45] oh right because mwgrep has a built in thing for .js too [20:33:54] Krinkle, want to update your mwgrep files? [20:35:41] they should be done now [20:44:33] Nice! [20:46:38] Krenair: so there's --quick-skip, but that's the opposite [20:48:29] I think ElasticSearch updates are lagged for some of the smaller wikis. [20:48:54] There's a couple wikis for which consistently, mwgrep updates remain unchanged, eventhough the page was edited to not match anymore [20:49:07] Using the onwiki search insource:// it also doesn't match [20:49:19] which suggests ... I don't know, something specific to the way mwgrep queries it [20:49:41] Krenair: updated the mwgrep index [20:59:18] hm that's less removed than I expectef [20:59:20] expected* [21:01:58] woah [21:03:12] Krinkle, https://phabricator.wikimedia.org/P8010$21 [21:03:41] it goes quite happily through the remaining wikis after this [21:05:16] Yeah, the ctrl-C handling is a bit buggy because it ends up captured by the readline [21:05:36] so you have to try a few times and try to land a keypress when it's not in a prompt, then it'll exit. [21:06:30] and yeah, it doesn't currently distinguish between errors from the API, e.g. abusefilter, merge conflict, or invalid credentials [21:06:40] unless it's for the first request (sitematrix), then it'll stop cleanly [21:06:48] But I think I made that request un-authed. [21:07:22] I don't think I Ctrl+C'd [21:08:01] it won't be getting abusefilter or merge conflict errors at this point [21:15:08] Once Node.js follow through on their DEP0018 threat, it'll work as expected :P [21:19:58] ah [21:20:30] so it's actually nodejs throwing "DeprecationWarning: Unhandled promise rejections are deprecated" and then this is interpreted as a login failure by tourbot?