Module talk:Requested move

This is an old revision of this page, as edited by Wbm1058 (talk | contribs) at 14:22, 10 May 2017 (Format of "new title to be determined by discussion" requests: new section). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Missing error check

Hi, Mr. Stradivarius. In case you didn't notice, I redirected template:move-multitemplate:move-multi to {{requested move}}, so we are now fully live with your module. I've been busy updating redirects and documentation. I just noticed that while you check the currentn parameters and report

Invalid title detected in parameter "current2"; check for invalid characters and incorrectly formatted interwiki prefixes

errors, you didn't do a similar check on the newn parameters, and the module doesn't handle them gracefully, e.g., John Green (author) → [[:John Gr>een]] in a test I did. I created Module:Requested move/sandbox to work on this, but thought that you could do it in a fraction of the time it would take me. One of these days I'll take some more time to study Lua. Thanks, Wbm1058 (talk) 19:37, 29 April 2014 (UTC)Reply

This wouldn't be hard to do, but there's a hidden penalty. At the moment, I'm checking for invalid titles by creating a title object with mw.title.new. That is an expensive function - every time it is called on a new page, the expensive parser function count is increased. And if the expensive function count for the whole page goes over 500 while the module is running, it will produce a script error. On a blank page, this would give us a limit of 250 pages (250 current + 250 new), and on a page that already contains lots of expensive parser functions, that number will be less. We can use pcall to avoid the script error, but the fallback behaviour would be to treat valid titles as if they were invalid, which is just as bad. This would only be a problem if someone made a move request involving hundreds of pages, though - are you aware of any such requests that have happened in the past?

An alternative would be to not use mw.title.new, but to just check for bad characters in the title. This wouldn't increase the expensive function count, but it also wouldn't catch invalid interwiki prefixes. It would, however, have the advantage that we could tell the user exactly what character was invalid, e.g. 'invalid character ">" found in the "new3" parameter'. We could also check the currentn parameters with this check, as it seems like it might be useful. Do you think this is a good idea, and if so, what wording would you like for the error message? — Mr. Stradivarius ♪ talk ♪ 04:50, 30 April 2014 (UTC)Reply

Recall that we had to hard-code each parameter in move-multi when it was a template, and thus the limit was 30 because that's where we stopped adding parameters. I've seen someone request about 90 moves by putting together three sets of 30-move requests, but don't want to encourage that type of request, which probably is better handled as a proposal to change a naming convention on some guideline's or WikiProject's talk page. I've noticed that the module seems to run a bit slower than the template did, but that trade-off seems worth it compared to the time it takes to manually fix mistakes, and this template isn't used that frequently. Yes, telling the editor which character is invalid seems helpful – 'invalid character ">" found in the "new3" parameter' works for me. I wouldn't worry about the interwiki prefixes as I've never seen anyone request moves for other wikis. Just checking for File: Category: Talk: etc. like we already do is probably enough. Thanks, Wbm1058 (talk) 05:26, 30 April 2014 (UTC)Reply
In that case, we could add both checks. I'll do that in the sandbox so that you can take a look. As for the execution speed, we should be able to improve that by only using arguments from the parent frame instead of from both the current frame and parent frames as we do now. This would mean that {{subst:#invoke:requested move|main|new=Foo}} wouldn't work, but {{subst:requested move|new=Foo}} would still work. That will halve the number of wikitext argument lookups we need to make, which is often a cause of performance bottlenecks in Lua. If the bottleneck is the increased amount of error checking, though, then there's not much we can do, but we won't know which it is without trying it. — Mr. Stradivarius ♪ talk ♪ 05:47, 30 April 2014 (UTC)Reply
@Wbm1058: Ok, the new checks are now in place in the sandbox. I've also added a duplicate title check for the new titles, and limited the template to use arguments from the parent frame. I've also updated {{requested move/sandbox}} so that you can test it out. — Mr. Stradivarius ♪ talk ♪ 10:26, 30 April 2014 (UTC)Reply
What would be an example of an "incorrectly formatted interwiki prefix" that was also an invalid title? Any "invalid namespace" is still a valid title, e.g., I can create User chat:John Green, which is still a valid mainspace title. And if I put an "invalid interwiki prefix" on it, e.g., mega:User chat:John Green, it's still a valid, albeit unlikely, title. Wbm1058 (talk) 17:35, 30 April 2014 (UTC)Reply
That would be something like C:\Windows or Meatball: The Italian Food, as "C:" and "Meatball:" are reserved for interwiki prefixes. I suppose that means they are "valid" interwiki prefixes rather than "invalid" - what's the best way to word this? — Mr. Stradivarius ♪ talk ♪ 21:39, 30 April 2014 (UTC)Reply
I see. Interesting. I just updated Wikipedia:Namespace and Wikipedia:Page name. C: and meatball: still don't throw errors. To get an error you would need to find them on the list at m:Special:Interwiki. Looking at a practical example, Q: Are We Not Men? A: We Are Devo! doesn't give an error either (see Are We Not Men? We Are Devo!). If it isn't easy to check the interwiki table then it's probably not worth the trouble as this scenario is quite rare. Maybe just omit the part about "incorrectly formatted interwiki prefix" as it might just confuse people. Actually with the new check invalidChar = page:match('[#<>%[%]|{}]') I'm wondering what still falls through to get caught by the next check "for invalid titles that aren't covered by the previous check." I haven't found any examples that trigger that error yet. – Wbm1058 (talk) 02:17, 1 May 2014 (UTC)Reply
Mr. Stradivarius, I just found that [[Q./.]] triggers the "Invalid title detected in parameter "new1"; check for invalid characters and incorrectly formatted interwiki prefixes" error. That's covered by the invalid characters link. Wbm1058 (talk) 02:28, 1 May 2014 (UTC)Reply

Ah yes, you're quite right about the interwiki prefixes. That was a bug, as title objects with interwikis are valid, but the page cannot be created on the local wiki. I've added an extra check for interwiki prefixes and altered the error messages, so this should be fixed in the sandbox now. — Mr. Stradivarius ♪ talk ♪ 09:38, 1 May 2014 (UTC)Reply

Super! The sandbox code is now live, and I updated the documentation. Thanks! Wbm1058 (talk) 13:59, 1 May 2014 (UTC)Reply

Moving over a disambiguation page implies that a multi-move request should be submitted

This move request was submitted as a single move over a disambiguation page. With this edit I converted it to a multi-move request. Just wondering if it might be possible for this module to detect requests to move over disambiguation pages and automatically create a multi-move request that includes the implied move of the dab page, i.e. automatically convert to a multi-move request as I did manually. – Wbm1058 (talk) 02:29, 30 April 2014 (UTC)Reply

That's going to be hard to do. You can grab the page source, but the problem is that you have to then parse the source to find whether it has a disambiguation template in it. You would have to keep an up-to-date list of all disambig templates and their redirects, and you would probably have to keep tabs on the amount of string processing being done if many lengthy pages need to be parsed, so that we can keep execution time down to a reasonable amount. (If we go over 10 seconds in Lua on a given page, we get a script error.) And might there not be situations where you want to move a page over a disambiguation page, but not move the disambiguation page as well? — Mr. Stradivarius ♪ talk ♪ 05:03, 30 April 2014 (UTC)Reply
Right, at Talk:Converge (band)#Requested page move there is a request to move over a 2-item dab Converge, which could possibly be eliminated in favor of hatnotes (if there is a primary topic). Maybe we would limit automatic multi-conversion to dabs with more than two or three items in them. Look at Help:Magic words#Behavior switches:
Would that be easier than checking for templates? Wbm1058 (talk) 05:48, 30 April 2014 (UTC)Reply
The check itself would be easier, but again, there's a problem. Often __DISAMBIG__ is inside a template, so detecting it would require us to use frame:preprocess with every page. That involves expanding all the templates and parser functions on the page, and will probably put us over the 10-second limit after just two or three pages, depending on what templates they use. We could reduce the load by using some criteria to decide which part of the page to parse, but deciding which part isn't easy, and it may put us over the limit anyway depending on what we end up processing. — Mr. Stradivarius ♪ talk ♪ 06:00, 30 April 2014 (UTC)Reply

Ireland (one more request)

@Mr. Stradivarius: In the Wikipedia:Requested moves/Lead section there is a note[1] that is just distracting to editors trying to learn how to submit move requests. I'd like to move it to Wikipedia:Requested moves/Closing instructions, which may be a better place for its intended audience to read it, but was wondering if you might modify this module to blacklist those three pages. If an editor attempted to use {{requested move}} on a talk page in the blacklist, then give an error:

Discussions relating to the naming of Ireland articles must occur at Wikipedia:WikiProject Ireland Collaboration by order of the Arbitration Committee.

I've seen comments suggesting that the WP:RM instructions are too long or complicated, and this would be a way to shorten them a bit. Note that there's a template for that: {{IECOLL-talk}} – that's just transcluded on the three banned talk pages. They did have a discussion here as recently as January. Which of course was started on one of the banned talkpages, in spite of that banner ... say what? (sigh) This is what it looked like just before closing (they got inventive to make it work: current1=?|new1=?), and amazingly enough the bot did not choke on that. I've been asked in the past about supporting (multi-)move discussions on WikiProject talk pages. I suppose that wouldn't be too hard to do—I mean to support it in an official and more graceful way. Maybe by setting new1 = talkonly to indicate that there is no desire to move Wikipedia:WikiProject Ireland Collaboration, or something like that. Thanks again, Wbm1058 (talk) 02:13, 2 May 2014 (UTC)Reply

  1. ^ Note to closers: according to an ArbCom ruling of June 2009, confirmed in September 2011, discussions relating to the naming of Ireland articles (Ireland, Republic of Ireland, Ireland (disambiguation)) must occur at Wikipedia talk:WikiProject Ireland Collaboration, unless it is agreed there to hold the discussion elsewhere. Any requested move affecting these articles that is opened on the article talk pages or any other venue should be speedily closed, with a pointer to the ArbCom ruling.

@Mr. Stradivarius: Upon further review, I think it best not to put error checks in the module to prevent RMs of the Ireland titles, unless there is a specific consensus for that. Given the caveat "unless it is agreed there to hold the discussion elsewhere", I suppose "elsewhere" could be one of the ArbCom-blocked pages, i.e., there could be a discussion at Talk:Ireland if that is prior agreed to by a consensus at Wikipedia talk:WikiProject Ireland Collaboration. I moved the notice from the WP:RM lead to the closing instructions. Wbm1058 (talk) 17:55, 8 May 2014 (UTC)Reply

Format of "new title to be determined by discussion" requests

A link is being created to the question mark: {{no redirect|?}}

This is local defaultNewPagename = '?' -- Name of new pages that haven't been specified

As this is not the literal meaning of the request, this should be changed to just boldface the ? without linking: '''?'''

Thanks. wbm1058 (talk) 14:22, 10 May 2017 (UTC)Reply