Wikipedia:User scripts/Requests/Archive 9

Feedback on user script chatbot


I wrote a user script called WikiChatbot to assist editors. It can summarize, reformulate, copyedit, and provide suggestions on additional topics, images, and wikilinks as well as assess factual accuracy and bias. It is used by selecting text in an article and then clicking one of the buttons on the right to enquire about the selected text. The chatbot can also be used by typing specific questions about the selected text or the topic in general in the chat panel.

The script uses the AI model GPT 3.5. It requires an API key from OpenAI. New OpenAI accounts can use it freely for the first 3 months with certain limitations. The AI model was not designed to assess or improve encyclopedic articles. Editors should always question its responses and rely on their own judgment and reliable sources instead. For a more detailed description of all these issues and examples of how the script can be used, see the documentation at User:Phlsph7/WikiChatbot.

I was hoping to get some feedback on the script in general and how it may be improved. I'm not sure how difficult it is to follow the instructions so it would be great if someone could try to set up the script, use it, and explain which steps were confusing. My OpenAI account is already older than 3 months so I was not able to verify the claims about the free period and how severe the limitations are. If someone has a younger account or is willing to open a new account to try it, that would be helpful. Other feedback on the idea in general, its problems, new features to implement, or the documentation is also welcome. Phlsph7 (talk) 07:45, 16 July 2023 (UTC)


 * @Phlsph7: You may want to ask for feedback at WP:VPM because I'm afraid this page isn't very heavily watched. &#8212;CX Zoom[he/him] (let's talk • {C•X}) 08:00, 19 July 2023 (UTC)
 * Thanks for letting me know. I followed your suggestions, see Village_pump_(miscellaneous). Phlsph7 (talk) 09:08, 19 July 2023 (UTC)

byte filter on contributions page
I found this from 2008 while searching for a script for this: User scripts/Requests/Archive 2

Is there a script to make same thing on Special:Contributions page? Tehonk (talk) 10:03, 22 July 2023 (UTC)


 * @Tehonk Never felt the need to do/have something like that, but one could use pl:User:Nux/LongTableFilters.js as a base for that.
 * The `prepareTable` would need to be changed (especially `itemProperty` and selector in `init`).
 * `itemToText` is overcomplicated there. It could simply return number of edits there.
 * I guess I should publish ViewFilter to npm... Somedaytm ;). Nux (talk) 11:01, 22 July 2023 (UTC)

Calculation bot for editors contributions to an article for credits
This came up in a discussion at ITN on the idea of crediting updaters. I'd say top 3 or all above 20% but it might help to first find a broader consensus who is to be credited. Paradise Chronicle (talk) 05:44, 25 July 2023 (UTC)


 * This page is for requesting scripts only. You should try asking in Bot requests. – Material  Works  10:35, 25 July 2023 (UTC)
 * Uhh, thanks Paradise Chronicle (talk) 10:48, 25 July 2023 (UTC)

PROD review tool
Reviewing proposed deletions comes with a lot of secondary tasks, and it would be great to have a userscript to help automate the process. I am suggesting something like User:Jackmcbarn/editProtectedHelper, where the script activates whenever a page has an active PROD, and provides the reviewer with buttons for the actions they can take, such as seconding the PROD or contesting the PROD.

If you second the PROD, the script should add to the page and update the  on the talk page accordingly. If you contest the PROD, it should remove the PROD template from the article, notify the nominator on their Talk page with, and again update the on the talk page accordingly.

It doesn't need to cover the PROD nomination process since that can already be automated through Twinkle. –– Formal Dude  (talk)  01:16, 3 August 2023 (UTC)


 * One other small point, contesting should remove prod and any prod 2 instances (zero or more of these may exist) from the article. ~Kvng (talk) 02:07, 3 August 2023 (UTC)

external css for a user script?
Is that possible?

This question comes from. It is possible to override the styling applied by that script but to do so requires the  keyword. Is it possible to get a .js to read an external stylesheet?

If yes, how is that done? My .js skills are rudimentary at best so a detailed answer would be much appreciated. Extending this just a bit, would it be possible to use a .css TemplateStyles page so that the .css could be shared by a lua module?

—Trappist the monk (talk) 23:21, 20 August 2023 (UTC)
 * In my less-than-rudimentary js, what if we had two classes on the error message line, with the first class defined in a &lt;style> block inserted onto the page by the script (right before ?) and defining the default color, leaving the second class undefined and available for override at common.css, is that doable in js so that an external sheet wouldn't be needed? Mathglot (talk) 00:02, 21 August 2023 (UTC)
 * You can use . But that means loading an extra resource after the script is loaded, so I for one prefer just embedding the CSS within the script with  . Nardog (talk) 02:50, 21 August 2023 (UTC)
 * Doc pages: mw.loader load method, mw.loader Methods, and mw.loader addStyleTag method . Mathglot (talk) 03:12, 21 August 2023 (UTC)
 * was the easier so I did that; see lines 5–8. Seems to work except that to override the default color in user css the   keyword is still required.  Any way around that?
 * —Trappist the monk (talk) 15:18, 21 August 2023 (UTC)
 * See my message of 00:02: I believe if you change your style tags in the new code to blah_blah_dflt, and change line 32:
 * it should work without ; i.e., this should be sufficient in common.js:
 * Naturally, the other defaults and error lines to be done similarly. Mathglot (talk) 17:35, 21 August 2023 (UTC)
 * Trying it in html, and didn't work as expected; trying something else... Mathglot (talk) 17:52, 21 August 2023 (UTC)
 * Ported your script to User:Mathglot/HarvErrors.js and tried a couple of things there; failed in the same way (that is, it doesn't work without, but your original version already did that). Still thinking, but so far at least, I don't see a way to work around the style priority cascade *without*  . Mathglot (talk) 22:08, 21 August 2023 (UTC)
 * Take addStyleTag outside the callback to . Otherwise it would be adding the tags every time the hook is fired (e.g. previewing). You also don't need it for each declaration, it should be just one tag. Nardog (talk) 00:33, 22 August 2023 (UTC)
 * Thanks for that tip. Done.
 * —Trappist the monk (talk) 01:06, 22 August 2023 (UTC)
 * The reason you can't just override the styles is that the script adds them after user CSS. I guess you could make it not take precedence by passing e.g. whatever is the first in the document as the second argument to addStyleTag, but that seems overkill; instructing those who want to override the default styles to use higher specificity (e.g.  ) strikes me as the obvious solution, as that's the usual way of overriding CSS so it's applicable in most other situations. Nardog (talk) 00:49, 22 August 2023 (UTC)
 * More specificity works without :
 * Could make it even more specific, right? Something like this:
 * That is be more in keeping with cs1|2 overrides.
 * Thank you.
 * —Trappist the monk (talk) 01:06, 22 August 2023 (UTC)
 * is in fact less specific than  because   is subordinate to , but as long as it's more specific than whatever the script inserts, it works. Nardog (talk) 01:12, 22 August 2023 (UTC)
 * I was starting to look at adding two lines to load two css files, one the default, living with the script, and the other, a user file (if it exists) something like this:
 * where loadcssfile would be a function adapted mostly from lines 7–14 here, so that the default css defined in the script userspace is loaded first, followed by the user css (if it exists) at Special:MyPage /HarvErrors.css. Is this still worth pursuing at all, or is the approach that you are developing close to bearing fruit (or already there)? Btw, I don't know how to interpret Special:MyPage in js, do I just add brackets around it, as usual? Escape them? Mathglot (talk) 01:34, 22 August 2023 (UTC)
 * Not worth it. Querying the server if a page exists and then loading an external resource on top of the script itself would be unnecessarily slow and traffic-wasting. Nardog (talk) 01:39, 22 August 2023 (UTC)
 * Thank you. Mathglot (talk) 01:46, 22 August 2023 (UTC)
 * —Trappist the monk (talk) 01:06, 22 August 2023 (UTC)
 * is in fact less specific than  because   is subordinate to , but as long as it's more specific than whatever the script inserts, it works. Nardog (talk) 01:12, 22 August 2023 (UTC)
 * I was starting to look at adding two lines to load two css files, one the default, living with the script, and the other, a user file (if it exists) something like this:
 * where loadcssfile would be a function adapted mostly from lines 7–14 here, so that the default css defined in the script userspace is loaded first, followed by the user css (if it exists) at Special:MyPage /HarvErrors.css. Is this still worth pursuing at all, or is the approach that you are developing close to bearing fruit (or already there)? Btw, I don't know how to interpret Special:MyPage in js, do I just add brackets around it, as usual? Escape them? Mathglot (talk) 01:34, 22 August 2023 (UTC)
 * Not worth it. Querying the server if a page exists and then loading an external resource on top of the script itself would be unnecessarily slow and traffic-wasting. Nardog (talk) 01:39, 22 August 2023 (UTC)
 * Thank you. Mathglot (talk) 01:46, 22 August 2023 (UTC)
 * Thank you. Mathglot (talk) 01:46, 22 August 2023 (UTC)

Script similar to Green Redirects but for piped links
Green Redirects makes redirects green. Please write a similar script for piped links (making piped links green). Thanks. --Mann Mann (talk) 07:51, 16 January 2023 (UTC)


 * @Mann Mann: Hi. Try User:Jeeputer/highlightPiped. You can use This page for testing. If you have GreenRedirects installed, or have enabled, piped links to redirect and/or disambiguation pages will appear like "'Link" and "'Link" respectively. Note that links like   are also considered as piped links as there's no way for the script to distinguish them from piped links. Let me know if you have any suggestions or encountered any problems.  Jeeputer  Talk  06:25, 24 August 2023 (UTC)


 * Hi. Thank you very much. Cheers! --Mann Mann (talk) 12:44, 24 August 2023 (UTC)
 * @Mann Mann: You're very welcome. :) I also added custom color. See User:Jeeputer/highlightPiped. Jeeputer  Talk  01:12, 25 August 2023 (UTC)

Reforder
Hi! I was wondering if we could have a script that automatically changed the refs in an article to be in numerical order. So [6][41][1] becomes [1][6][41] etc  Lee Vilenski (talk • contribs) 15:02, 23 August 2023 (UTC)


 * Is that something recommended by PAG? As both a reader and editor I prefer and expect clusters of refs to be ordered according to the relevance to the statement being supported or to the order in which the cited pieces of information appear in the statement, not to the order in which the refs appear in the whole article. Nardog (talk) 15:11, 23 August 2023 (UTC)
 * I think almost every FAC I've been involved in suggests doing so. There is a (large) discussion about this being an automated process before - see WP:REFORDER, however, a tool that you can run to make this happen, rather than something to attach a large amount of articles is helpful.
 * I've never found the argument that the first ref should be the one that is most relevant to be misguided, because if the second ref isn't as helpful, it shouldn't be there, or, it should be moved to only cite parts that it actually covers.  Lee Vilenski (talk • contribs) 15:16, 23 August 2023 (UTC)
 * You cite multiple sources not necessarily because not all information appears in the first but usually because they demonstrate the statement together.
 * Besides, the numbers constantly change as named refs are removed in certain parts but not from the page altogether and as paragraphs are shuffled around. Strikes me as a pointless endeavor. Nardog (talk) 15:25, 23 August 2023 (UTC)
 * You shouldn't really use references to show information as a combination of the information between them (see WP:SYNTH). Maybe this needs a wider discussion, but it's very common for this to be requested upon review.  Lee Vilenski (talk • contribs) 15:39, 23 August 2023 (UTC)
 * As a reader and as an editor, I prefer She was born in New York City in 1991. over She was born in New York City in 1991., and I would hate if the place of birth was in the second ref and the year in the first. Nardog (talk) 15:45, 23 August 2023 (UTC)
 * If fixing the citation order is the norm at FAC, then that seems like sufficient consensus to me to make this user script. Just need to find a programmer with enough time. – Novem Linguae (talk) 09:22, 25 August 2023 (UTC)
 * That's my impression too. I've had it asked repeatedly to be done, and it's not something particularly simple to do without a script.  Lee Vilenski (talk • contribs) 12:33, 27 August 2023 (UTC)
 * If it matters, as a common FAC/FLC reviewer, I prefer the refs to be in numerical order- think there's definitely value in this idea. MyCatIsAChonk (talk) (not me) (also not me) (still no) 12:34, 27 August 2023 (UTC)
 * Reviewers shouldn't be imposing what they "prefer". If you think the order should be in a particular way, you should seek consensus to make it part of our MoS. Nardog (talk) 12:40, 27 August 2023 (UTC)
 * I fail to see where it says in our MOS that we put citations in "relevance" order either. I'm happy to start up a formal discussion on the subject, as I had always thought that the continual requests to put this into numerical order was standard.  Lee Vilenski (talk • contribs) 12:44, 27 August 2023 (UTC)
 * False equivalence. I never demanded others follow my preference. Nardog (talk) 12:47, 27 August 2023 (UTC)
 * I've started up a conversation at Wikipedia talk:Citing sources for wider input. I'm happy to not change the references, but we also need a discussion to point to that shows that is the community view.  Lee Vilenski (talk • contribs) 12:52, 27 August 2023 (UTC)

Mass patrol new pages by a user
Admins assign editors autopatrolled based on a WP:PERM request or because they show up in automated reports. As part of that process, we review their creations as a whole and decide that they don't need to be manually patrolled. It would therefore make sense to be able to mark all their prior unreviewed creations as patrolled, rather than either tediously clicking through them all, or leaving another NPPer to do a now-pointless second review.

It would also be useful for non-admin NPPers for e.g. runs of noncontroversial stubs by the same trusted user.

Alternatively, there could be a tool which patrols all pages in a user's filtered Special:NewPagesFeed (which can be filtered by user). But I think that could be quite dangerous if you mess up your filters... –&#8239;Joe (talk) 13:58, 12 September 2023 (UTC)


 * Algorithm: You'd want to do an API query such as Special:ApiSandbox, then loop over the results and do an API query such as action=pagetriageaction&pageid=123&reviewed=1&token=123.
 * I feel like a patch to User:MusikAnimal/userRightsManager.js to do this automatically when granting autopatrol might be better than creating a new script. If needed, it could be controlled by a checkbox that the user ticks. Pinging @MusikAnimal – Novem Linguae (talk) 14:17, 12 September 2023 (UTC)
 * Sounds like a great idea! I might be able to work on this soon, but by all means if you want to code it @Novem Linguae then please do (create a fork and I'll help test). While we're at it, maybe it's time we gadgetize userRightsManager and move the code to https://github.com/wikimedia-gadgets/. Enough people use it that I feel it should be in the community's hands and not solely my own. &mdash; MusikAnimal  talk  16:29, 12 September 2023 (UTC)
 * Thanks for the quick reply. Finding time is the tricky part! Will add it to my list of possible future hacking projects. – Novem Linguae (talk) 14:24, 13 September 2023 (UTC)

See what is adding a category to a page
Is there a way to see what exactly is adding a certain category to a page?

There are cases where you want to remove a category from a page but you quickly understand that it is being added by a template and not a manual category. Problem is that they may be countless of templates in the said page, each with different intricacies and transclusions. Is there a way or a script to see where categories are being added from? - Klein Muçi (talk) 12:50, 22 September 2023 (UTC)
 * Special:ExpandTemplates should help you. Doing this accurately would require substing the templates one by one so I doubt there's an efficient way. Nardog (talk) 16:25, 22 September 2023 (UTC)
 * Nardog, would your suggestion help in solving this case if it wasn't solved? :P — Klein Muçi (talk) 19:51, 22 September 2023 (UTC)
 * I can't tell because it's been fixed. But if you had pasted the source of the article onto sq:Special:ExpandTemplates (be sure to fill in the context title) the category would have showed up near the cause of the error. Nardog (talk) 05:11, 23 September 2023 (UTC)
 * Nardog, I see. Maybe in the future we can have that as tool that does that all the time for all categories at a click of a button beside them in pages. Assuming other people may encounter it as a problem. For me, this is enough as this is only the second time ever in 10 years I encounter such problem. Thank you! — Klein Muçi (talk) 10:28, 23 September 2023 (UTC)

Script to convert numeric ref names created by VE into standard names
Please write a script to alter numeric ref names created by the WP:Visual Editor into reasonable reference names, such as Lastname-YYYY. For example, operating on the article Male gaze, it would change (among others), the reference into Two additional options would be very welcome: at Charles de Gaulle, being converted to regardless if a different name and year were found, or if none were found. However, the basic functionality of just repairing numeric ref names without any other bells and whistles would be very welcome. See WP:VE/NAMEDREFS for phab tickets about this, and other related info. Mathglot (talk) 07:03, 19 December 2022 (UTC)
 * 1) a throttle (perhaps, N), in order to keep the total number of changes down to a configurable number per edit; this is because as the number gets higher, diffs become increasingly difficult to read and interpret.
 * 2) numeric (or named) parameters which could be used to override the automatic use of Lastname-YYYY, for a given numeric refname value. This would be useful, in cases where a named reference doesn't use one of the citation templates (such as, ref ":1" at Male gaze), or where the last name or year is not available (such as ref ":1" at Charles de Gaulle). In the latter case, including the parameter Election-1958 would result in the code


 * While I can't contribute to this at all, this would be fantastic! I know the VE ref names have been a persistent problem. ThadeusOfNazereth(he/him)Talk to Me! 19:17, 19 December 2022 (UTC)
 * User:Nardog/RefRenamer. Feel like I may have gone overboard with options but you may try it out (at your own risk, as always). Nardog (talk) 16:37, 7 February 2023 (UTC)
 * This seems to be working great - I used it on a page w/100+ references and there were zero issues! ThadeusOfNazereth(he/him)Talk to Me! 17:03, 7 February 2023 (UTC)
 * Wow. A very impressive piece of software. Great job Nardog. – Novem Linguae (talk) 18:42, 7 February 2023 (UTC)
 * "Wow" is right; truly amazing. Thank you so much for this; it is going to be incredibly useful and helpful, a huge timesaver, and big improvement for the project. It went beyond what I imagined, and worked great at Male gaze and Charles de Gaulle. Don't worry about going overboard with options, they are wonderful. That said, I had to stare at the panel a bit to try to understand all the features, and for a couple of things it wasn't entirely clear right away. I've added a section at the script talk page with some for you. But if you've had enough for now, don't worry; it's great as is! Thanks again, Mathglot (talk) 03:10, 9 February 2023 (UTC)

I've been attempting to put a naming protocol in place. I built it into a function in my Sources script whereby names for bare refs can be generated. Perhaps we could work together to create a coherent set of rules to give names to bare or VE-named ref tags7.--  Ohc  revolution of our times 20:50, 23 September 2023 (UTC)
 * , good idea. Also,  while you're thinking about it, please have a look at User talk:Nardog/RefRenamer, and feel free to comment there or here or whatever makes most sense. Thanks, Mathglot (talk) 00:23, 24 September 2023 (UTC)

Infobox reformatting
I generally want large templates to have the source "block" formatted – one parameter per line and generally with some whitespace. I often encounter infoboxen that have been created all-in-one-line. Is there, or could there be, a userscript to help with this reformatting? (Also asked at WP:VPT) — GhostInTheMachine talk to me 15:16, 8 November 2023 (UTC)
 * It's a hack, but have you tried editing the lead section of the article in question using the Visual Editor? Add  to the edit page link. If the infobox's TemplateData is correctly set to "block", VE might do the formatting for you. – Jonesey95 (talk) 15:55, 8 November 2023 (UTC)
 * It does work, but the process is tedious – change config to use VE, dummy edit in the text of the infobox, reset config, fix the dummy edit, then do what I wanted to do. The script below is so much better — GhostInTheMachine talk to me 19:44, 8 November 2023 (UTC)
 * User:Taavi/Aligner works. Nardog (talk) 17:34, 8 November 2023 (UTC)
 * It does!! Thank you! This is the script I was looking for. The script is simply awesome and awesomely simple to use. Sometimes it gets a bit befuddled about a mix of spaces and not-spaces after a bar, but generally a second run solves that — GhostInTheMachine talk to me 19:44, 8 November 2023 (UTC)