Page semi-protected

Wikipedia:Bots/Requests for approval

From Wikipedia, the free encyclopedia
Jump to: navigation, search

If you want to run a bot on the English Wikipedia, you must first get it approved. To do so, follow the instructions below to add a request. If you are not familiar with programming it may be a good idea to ask someone else to run a bot for you, rather than running your own.

 Instructions for bot operators

Current requests for approval

edit WP:BRFA/MusikBot


Operator: MusikAnimal (talk · contribs · SUL · edit count · logs · page moves · block log · rights log · ANI search)

Time filed: 06:23, Wednesday, April 22, 2015 (UTC)

Automatic, Supervised, or Manual: Automatic

Programming language(s): Ruby

Source code available: GitHub

Function overview: Bot clerking at WP:PERM pages.

Links to relevant discussions (where appropriate): Special:PermaLink/655854110

Edit period(s): Continuous

Estimated number of pages affected: Up to six during one run (one for each PERM page, except Confirmed and AWB requests)

Exclusion compliant (Yes/No): No

Already has a bot flag (Yes/No): No

Function details: This bot works very much like Cyberbot I does at WP:RPP. It monitors all the Request for Permissions pages for new requests, and checks if there were previously declined requests for that user and permission. If matches are found, an automated comment is left linking to those declined requests. Eventually it may also ping the declining admin, but I've side stepped that for now. There are two exceptions: The AWB checkpage which does not have the same structure as the other request for permissions pages, though I might implement special case handling for this at some point. The other is requests for confirmed, where it's very unlikely we'll see multiple requests by the same user, so the bot clerking is not that helpful there. A few notes:

  • It works by using regex to parse out all the necessary info, and constructs the automated comment(s) to be saved. As long as Template:Request for permission generates a level 4 heading and Template:Rfplinks is used than it shouldn't flake out.
  • Thoroughly tested on test-wiki, see testwiki:Wikipedia:Requests for permissions/Rollback (and here).
  • Operates on wmflabs, with a crontab running the script every 10 minutes or so, or whatever we decide on.
  • The perm clerking task can be turned off by changing User:MusikBot/PermClerk/Run to anything other than true.
  • For all six permission pages, it should take less than a minute to complete, with a 2 second pause between processing each page, and it will edit no more than 6 times total. However given the nature of the task you probably won't see but a few edits every day at most.
  • Checks for edit conflicts. If one is detected it will re-attempt to process that permission page for a total of three times, waiting progressively longer each time. So after attempt #1 it will wait 1 second before trying again, after attempt #2 two seconds, etc.
  • Caching is in place where appropriate, such as fetching the declined pages and any declined permalinks for a user.
  • There is verbose logging that I can make publicly accessible.
  • Full exception error handling. If a critical error is encountered (e.g. more than 3 failed attempts to edit a page), the script will proceed to process the next permission page rather than abort the task altogether. Fatal errors such as when the API is down will result in a full abort of the task until it is ran again by the cron job.
  • To be clear, the "cron" jobs are actually submitted to the grid, which helps allocate resources so the bot doesn't get in the way of other jobs on tool labs.

Thank you! MusikAnimal talk 06:23, 22 April 2015 (UTC)


edit WP:BRFA/ThePhantomBot


Operator: PhantomTech (talk · contribs · SUL · edit count · logs · page moves · block log · rights log · ANI search)

Time filed: 02:11, Thursday, March 19, 2015 (UTC)

Automatic, Supervised, or Manual: Automatic

Programming language(s): Python

Source code available: No, not now at least, though I'll share some of the regex if asked during the approval process

Function overview: Monitors recent changes for possible vandalism and edits from long term abuse users, logs findings and (sometimes) gives information to AN/I for review by users.

Links to relevant discussions (where appropriate): Not sure if this would require consensus from AN/I since it would be posting there or not since the posting task is simple and likely to be uncontroversial.

Edit period(s): daily (while I have a computer on) with plans to make it continuous

Estimated number of pages affected: 1 (AN/I) not counting pages in its own user space

Exclusion compliant (Yes/No): no

Already has a bot flag (Yes/No): no

Function details: This bot is meant to allow a decrease in the amount of edit filters and to identify abuse that can't be reverted by bots like ClueBot due to lack of certainty. Every 60 seconds (that time might be lowered to 20-40 seconds to spread load) a list of changes since the time of the last check is filled. On a separate thread, the bot goes through the list, and decides if the actions match a set filter, these filters are usually similar in what they check to the edit filters however are not limited to the same restraints. If a filter is matched the associated actions are taken, usually logging to the user space and sometimes a noticeboard report. Essentially, this bot acts as a post-edit filter, currently targeting long term abuse but technically able to act on any identifiable action. Since it happens after edits, as opposed to "during" edits, it doesn't slow down editing for users so problematic edits don't have to be frequent, like they do to be edit filter worthy, for it to be worth it for this bot to check for them. In its current state I have two LTA matches setup, one stolen from a log only edit filter and another stolen from edit filter requests, and a general abuse match, also stolen from edit filter requests. If the bot is accepted, I plan on going through all the active long term abuse cases and adding whichever ones I can along with some edit filter requests that aren't accepted due to infrequency.


Vandalism/abuse monitoring is a difficult area; I suggest that you write your bot and have it edit a page in its or your userspace (no approval necessary unless edit rates are high) as if it were ANI, and monitor what it reports. You can in turn pass the valid observations it makes along to ANI, and if the quality of the reporting is high enough you may find other people watching the page to see what it finds. I expect you'll get a high false-positive rate which you'll need to analyse to improve the performance of your algorithms, and eventually you'll get to a point where regexs just don't cut it for detecting the long-term, low-frequency abuse you're targetting - and you'll have to look at more sophisticated processes. This is the technological evolution that Cluebot went through, but it catches more egregious and obvious vandalism.

Do you think operating in your or the bot's own userspace would be an acceptable stepping stone? Josh Parris 22:18, 20 March 2015 (UTC)

I realize that there is lots of long term abuse that can't be solved by regex alone, this bot will never be able to handle every LTA case but I do plan on implementing more advanced checks in the future. I have no problem running my bot for a bit with it doing nothing but logging to User:ThePhantomBot/log. PhantomTech (talk) 22:36, 20 March 2015 (UTC)
I would want to see a community consensus that bot generated ANI reports are wanted, please discuss and link that discussion here. — xaosflux Talk 05:43, 26 March 2015 (UTC)
@Xaosflux: As I've been working on my bot I've been adding more functionality and thinking about the best ways to have the bot's reports dealt with. Here's my current plan for how it will report things:
  • Bad page recreation - Log to user space
  • High probability sockpuppets - Report to SPI
  • Lower probability sockpuppets - Log to user space
  • LTA detection - Report to AIV or report to AN/I where certainty is reasonably low (not too low, don't want to waste people's time)
  • Newly added LTA filters, including ones being tested - Log to user space
  • IPs using administrative templates - Report to AN/I
  • Sleeper account detection - Not implemented yet so I don't know how often it will go off, if its often log to user space otherwise report to AN/I
I assume you still want to see a discussion for the AN/I reports but do you want to see any for the other places? I'm guessing you'll want SPI mentioned in the discussion too since I don't think any bots currently report to there. Also, do you have any suggestions on where to report these things or how to report them? Admittedly AN/I does feel like a weird place for bot reports but the goal is to get the attention of editors who may not be aware of the bot's existence. PhantomTech (talk) 07:03, 26 March 2015 (UTC)
Start reading AIV archvies such as Wikipedia_talk:Administrator_intervention_against_vandalism/Archive_3#Suggested_merge_of_Wikipedia:Administrator_intervention_against_vandalism.2FTB2 for some suggestions. WP:AIV/TB2 is probably the oldest 'bot reported' noticeboard right now. — xaosflux Talk 10:23, 26 March 2015 (UTC)
@Xaosflux: Are you suggesting that if my bot were to report to ANI it should do so via a transuded page? I like that idea, using transclusion to put the bot's reports somewhere they'll be seen keeps the bot's updates off the watchlists of people who don't care. PhantomTech (talk) 15:32, 26 March 2015 (UTC)
I'm sugesting that prior community discussion on ANI bot reports came to that conclusion - and that after reading up on it you start new discussions to find out where people would make best use of your reports. For ANI it could be the existing TB2 subpage, but they might want it on its OWN subpage; for the other forums people might want subpages, might want main, or might not want bot reports at all. I am not trying to dictate the solution, just that whatever it is should enjoy community consensus before integrating to existing forums. — xaosflux Talk 16:59, 26 March 2015 (UTC)

I posted a discussion at Wikipedia:Village_pump_(idea_lab)#ThePhantomBot_reporting_to_noticeboards to help get an idea of what kind of reporting users would like. Depending on how that goes I'll post something to village pump proposals with notifications on the relevant noticeboard's talk pages. PhantomTech (talk) 05:57, 27 March 2015 (UTC)

edit WP:BRFA/EnzetBot


Operator: Enzet (talk · contribs · SUL · edit count · logs · page moves · block log · rights log · ANI search)

Time filed: 00:18, Sunday, March 8, 2015 (UTC)

Automatic, Supervised, or Manual: supervised.

Programming language(s): Python.

Source code available: no source code available since bot is a part of major project.

Function overview: fixes inconsistencies and formatting in metro stations articles (in station infobox and S-rail templates).

Links to relevant discussions (where appropriate):

Edit period(s): every time bot found some inconsistency in metro pages.

Estimated number of pages affected: about 1000 pages. There are about 10 K metro stations in the world, so no more than 10 K pages should be affected.

Exclusion compliant (Yes/No): yes.

Already has a bot flag (Yes/No): no.

Function details: I have The Metro Project for metro map automated drawing. It uses Wikipedia for check metro system graphs and sometimes meets inconsistencies and bad formatting in Wikipedia articles. Now I fix them manually (see my contributions) but want to entrust it to my bot.

Tasks for this request:

  • wrap dates in station infobox with date template, e.g. 2000-03-30 to {{date|30-03-2000|mdy}};
  • add links to station structure types and platform types, e.g. Shallow single-vault to [[Single-vault station|Shallow single-vault]];
  • fix redirects in S-rail template.


I see the bot account has been editing articles. It is not yet approved for that.

I note you want to edit dates, but I see from your recent edit to Klovska (Kiev Metro) and your function details (above) you haven't realised the importance of ISO 8601 date formatting. I also note that you did not elect to use the style reportedly preferred by Ukrainians in your edit; is there a reason for this? Out of interest, why are these dates of interest to your bot?

The bot fixes inconsistencies between articles; how does it know which one is correct?

The links to station structure types and platform types you're proposing to link - are they the ones in infoboxes, or article text?

What major project is bot a part of, and why does that make the source code unavailable? Josh Parris 14:32, 9 March 2015 (UTC)

I'm sorry for editing without approval. It was a test to make sure bot works. I'll never do it again.
Yeah, I see, date changes seem to be a bad idea. I think, I should remove it from tasks list. Should I undo my edits (there are only 5 of them)?
About inconsistencies. Bot doesn't know which one is correct, it only can detect wrong things or possibly wrong things. For example, wrong date format (month number can't be greater then 12), wrong terminus (station cannot be a next or previous station for itself), if station A is next for station B, station B should be previous for station A, wrong S-rail values (if it conflicts with station lists on metro page or line page), and so on. That's why bot is not automatic, I supervise every edit. I don't know how to formulate it as a task since there are so many types of inconsistencies. May be you can help me?
Yes, bot will add links to infobox only if there is no such link in article text.
My major project is not open source for now. It generates very simple suggestions for bot I exampled above—what to replace in which article. If bot source code is important, I can push it to public repository but it is trivial since it uses pywikibot (no more then 100 LOC). Enzet (talk) 17:01, 9 March 2015 (UTC)
If you're supervising every edit, then this is a "manual bot" and can be run using your own account without approval. Would you like to do so? Josh Parris 11:30, 13 March 2015 (UTC)
OK, I understand all about inconsistencies. If I don't want to use Enzet account for semi-automated editing, can I use EnzetBot account (with removed {{Bot}} template and without approval) or should I register new account without bot keyword? What is a good practice for that? Also, is there some criteria for semi-automated editing (no faster than 1 edit per 5 seconds, no more 100 edits in a row, or something like that)? (Sorry if I missed it from the rules.)
Also, I am realized that (1) wrapping station structure and platform type with links and (2) fixing S-rail redirects tasks may be provided without supervising or supervising for them is really fast (checking is trivial). Can I get approval or disapproval for these tasks in this request or I should create new one? Enzet (talk) 09:27, 17 March 2015 (UTC)

Bots in a trial period

edit WP:BRFA/Stefan2bot_2

Stefan2bot 2

Operator: Stefan2 (talk · contribs · SUL · edit count · logs · page moves · block log · rights log · ANI search)

Time filed: 20:57, Wednesday, April 22, 2015 (UTC)

Automatic, Supervised, or Manual: Automatic

Programming language(s): Python

Source code available:

Function overview: Tagging non-free files with old revisions with {{subst:orfurrev}} per WP:NFCC#7

Links to relevant discussions (where appropriate): Wikipedia:Bot owners' noticeboard/Archive 9#Tagging orphaned fair use images and removing fair use images from userspace

Edit period(s): Daily

Estimated number of pages affected: Currently more than 10,000. More will be affected in the future as people upload new revisions of non-free files.

Exclusion compliant (Yes/No): Yes

Already has a bot flag (Yes/No): Yes

Function details: Replaces Wikipedia:Bots/Requests for approval/Fbot 8, which has not run for several years. The former operator's code has not been used.

If a non-free file has old revisions, then those revisions violate WP:NFCC#7 and need to be tagged for deletion. This bot will add {{subst:orfurrev}} at the top of the file information page, instructing an administrator to delete the old revisions one week later.

The bot identifies a few common situations where it is likely that a file incorrectly has been marked as unfree. For example, files with {{OTRS pending}} and files appearing in both Category:All non-free media and Category:All free media will be skipped and need manual tagging.

As there are more than 10,000 files to tag, I would recommend tagging only 100 or 200 per day until the backlog is gone so that there won't be a sudden overflow in Category:Non-free files with orphaned versions more than 7 days old which might discourage administrators from processing files in that category.


Is an admin bot to automatically handle the deletion at all in the cards? Or maybe something semi-automated where an admin could be shown a list with both the original and the current version and then one click to approve a batch of 20 for deletion? A backlog of 10,000 and the number of mouse clicks necessary scares me. (No objection to the bot - just ideating about the second half of the process.) --B (talk) 22:47, 22 April 2015 (UTC)

Category:Non-free files with orphaned versions more than 7 days old mentions a script (User:Legoktm/rescaled.js) which seems to assist with deletion. --Stefan2 (talk) 23:08, 22 April 2015 (UTC)

Approved for trial (50 edits). Stefan2 let's see how it goes. -- Magioladitis (talk) 17:18, 26 April 2015 (UTC)

edit WP:BRFA/HostBot_7

HostBot 7

Operator: Jmorgan (WMF) (talk · contribs · SUL · edit count · logs · page moves · block log · rights log · ANI search)

Time filed: 21:11, Thursday, March 5, 2015 (UTC)

Automatic, Supervised, or Manual: automatic

Programming language(s): Python

Source code available: repo on GitHub

Function overview: Matches users who have created a profile page at the Wikipedia Co-op with mentors who can teach them particular editing skills. When a match is made, the bot posts a message on the profile talkpage—creating that page as a Flow board, if that talkpage does not already exist. The bot needs to be granted the flow-create-board user right to accomplish this.

This bot request is twofold:

  1. we're requesting the right to implement this matching functionality of the Co-op
  2. we're also requesting that HostBot be added to the flow-bot group so that it can deliver these matches on Flow-enabled talkpages, rather than standard talkpages.

Links to relevant discussions (where appropriate):

Edit period(s): as requested: the bot checks for new mentorship requests every ~5 minutes, and attempts to match each new request with a mentor immediately

Estimated number of pages affected: 10-20 per month

Exclusion compliant (Yes/No): Yes

Already has a bot flag (Yes/No): Yes

Function details:

HostBot is hosted on Labs. Every five minutes, it will query the Wikipedia API for new pages in Co-op-specific categories. These pages will either be new Co-op member profiles (example: Wikipedia:Co-op/AMemberUserName) or existing member profiles where a user has recently added a new Co-op specific category (indicating a change in learning interests). It will also query the API for a list of Co-op mentors with profile pages (Wikipedia:Co-op/AMentorUserName) in the corresponding mentor category who have not opted out of receiving new matches. In both cases, Hostbot/Co-op checks that the category members are in fact subpages of Wikipedia:Co-op.

For each newly-categorized Co-op member, the bot chooses a random mentor from the list of corresponding mentors. If none are available for the given interest, it chooses a random mentor from the fallback category "General editing skills". Once the match is found, HostBot leaves a post on the talk page corresponding to the Co-op member's profile page (example: Wikipedia_talk:Co-op/AMemberUserName). If this page does not already exist, the bot uses the Flow API's new-topic submodule to post its welcome message as a new topic, thus creating the talk page as a Flow board; otherwise, the bot edits the talk page normally. The message mentions the mentor and posts on the Flow-enabled talk page of a page that the member created, and so generates an Echo notification for both of them. The member and the mentor are then free to follow up with each other, and the bot's involvement is finished.


  1. The bot's posting activity is limited to subpages of Wikipedia_talk:Co-op. If a user adds a relevant category to their user page instead of their Co-op profile page, HostBot will ignore it and that user will not receive a match.
  2. HostBot will not—and cannot—convert existing talk pages to Flow boards. If a Co-op profile talk page exists at the time of matching, HostBot will simply edit that page and post its welcome message in a new section.
  3. HostBot can only create a new Flow board if it has the flow-create-board right. A bureaucrat will need to add HostBot to the flow-bot group which has this right. More details here:

Demonstration. This workflow is running on already, by MatchBot. Here's an example learner profile page and talk page. You can sample it yourself if you want: click the "find a mentor" button on the co-op testwiki portal to create a sample profile and wait a few minutes to receive your matches. Note that approval for the FormWizard gadget used to create profiles on testwiki is not part of this request; matching works just as well with manually-created profile pages.


  • The Wikimedia Foundation's Collaboration team has been working closely with the Co-op project to use Flow as the discussion system for the new program. We're excited to be a part of this new mentoring project, and we'll continue to provide technical support for the Co-op to deal with any issues that might arise from using this bot. DannyH (WMF) (talk) 22:23, 5 March 2015 (UTC)
  • Comment. I am in charge of managing the development of The Co-op, and wanted to briefly discuss the reasoning behind these proposed bot tasks. The rationale of the matching component is to drastically reduce the amount of effort required on the part of mentors and editors seeking mentors to find each other, and generally, prevent a lot of unnecessary waiting. The rationale behind the use of Flow is to facilitate communication during mentorship. As Flow is designed to address perceived issues with conventional talk pages, particularly with regard to newer editors, and because we are specifically inviting newer editors to use the space, our team is interested in testing it out. That said, using Flow for mentorship-related communication is not required; mentors and editors can use conventional talk pages or whatever communication system they find most convenient. Our pilot for the space is running for about one month, and so a 30-day trial would be appreciated. Thanks for your consideration. I, JethroBT drop me a line 22:40, 5 March 2015 (UTC)
  • Has this functionality been demonstrated on testwiki or anywhere else yet? Currently noone on enwiki has flow-create-board access. What is the rollback plan for actions made in error? — xaosflux Talk 05:33, 8 March 2015 (UTC)
  • Question on operator account: I see this operator listing is under your official WMF staff account - is this purposeful? Will these bot edits represent official WMF actions? — xaosflux Talk 19:13, 8 March 2015 (UTC)
Doing a bit of research, please provided updated data if this is not still blocked by T90077? — xaosflux Talk 01:08, 9 March 2015 (UTC)
Hi Xaosflux. Excellent questions! The functionality is in evidence on testwiki (details under the heading Demonstration above). Give it a try and let me know if there's anything else I can clear up. The actions of HostBot won't be official WMF actions--tho I'm not sure what would constitute an official WMF action in this scenario. Do you mean Office Actions? In any case, no, HostBot's actions would be held to the same standards as any other bot, and I to the same standards as any bot-wrangler.
As to why I'm writing under my staff account: the Co-op is a grant funded experimental project, and part of this grant proposal involved a trial of the system. I work for the team at WMF (formerly known as Grantmaking, now Community Resources) that disburses and oversees grants, and in this case one of the resources they were able to offer the grantee team was some of my time to help with the trial. So right now I'm participating in the Co-op project as a staff member. I have no authority, just the responsibility to make sure the bot does what it's supposed to do, to respond to community input, and to fix anything that breaks. If this HostBot task is approved on an ongoing basis after the trial is concluded, I will continue to manage the task, but in a volunteer capacity. That's what I did with the Teahouse, which also started out as a Foundation-funded venture, but has been completely community-run for more than two years.
Regarding status of blocking bugs: I'll let I_JethroBT handle that one. He's the PM. Regards, Jmorgan (WMF) (talk) 23:43, 9 March 2015 (UTC)
OK, operator question is not an issue; I'm running through the demo on testwiki now. — xaosflux Talk 00:12, 10 March 2015 (UTC)
@Xaosflux: These blocking tasks are due to be addressed in a sprint from the Flow dev team on 11 March, although T90970 and T90969 are being prioritized to allow for deletion of Flowboards that is consistent with how deletion is normally handled, and should be easy to resolve. I expect these tasks to be resolved in about 2-3 weeks time, according to estimates from DannyH (WMF). T90973 is more complicated, and is unlikely to be addressed until much later. We have also de-prioritized T90972 for the purposes of the pilot as it is unlikely for Flow-enabled pages that are deleted to be restored. I, JethroBT drop me a line 02:34, 10 March 2015 (UTC)
  • Couple of issues, please address:
  1. Why can users direct the bot to create arbitrary page names? (By allowing free-text co-op "nicknames" instead of their usernames)? (example: testwiki:Wikipedia talk:Co-op/OffensiveTitleNameHere) — xaosflux Talk 00:39, 10 March 2015 (UTC)
    Jmorgan (WMF) and I discussed the prospect of creating profile pages with the editor's username pre-filled to avoid this sort of thing, but there was not enough development time to implement it for the purposes of the pilot. If we were going to expand this space, I think adding this functionality would be great to avoid typos and more malicious activity like your example. It is important to keep in mind we are only allowing a maximum of 50 learners to create profiles for this pilot because there are just under 25 mentors in the space; it's also unlikely for newer editors to discover the Co-op outside of these invitations. I, JethroBT drop me a line 03:51, 10 March 2015 (UTC)
  2. Lack of "Special:Unflowify" or other means of undoing this bot's flow-create-board action (please correct me if this functionality is present).
    @DannyH (WMF): is in a better position to discuss this question in detail. As far as I am aware, the deletion tasks that are being worked on (T90970, T90969) would create the page as a standard talk page. I, JethroBT drop me a line 03:51, 10 March 2015 (UTC)
Thank you, will need to be seen - I tried on test: with out luck - may be waiting for code changes, able to delete the flow converstation, but still not the topics--but afterwards the page does not revert to standard talk: style. — xaosflux Talk 04:14, 10 March 2015 (UTC)
Thank you! — xaosflux Talk 00:39, 10 March 2015 (UTC)

The overall matching mechanism seems pretty straight forward and uncontroversial; a non-flow enabled trial should be easy to move forward (see page naming issue first). — xaosflux Talk 00:39, 10 March 2015 (UTC)
Would you rather try to resolve these flow-related questions first, or trial with Wikipedia_talk: pages for now? — xaosflux Talk 00:55, 10 March 2015 (UTC)
@Xaosflux: Given the timeline the Co-op grant is operating on, for which our report is due at the end of April, and the time it would require to resolve these blocks, I would prefer to trial the matching component on standard Wikipedia talk pages for now while these matters with Flow are resolved. Thanks, I, JethroBT drop me a line 03:51, 10 March 2015 (UTC)
  • Approved for trial (250 edits or 30 days). (Restricted to Wikipedia: and Wikipedia_talk: space only). NOT approved for Flowbots group addition under this trial. — xaosflux Talk 04:10, 10 March 2015 (UTC)
Thanks Xaosflux: one quick clarification. Is the bot only approved for trial if users are not allowed to specify the title of their profile page? Jmorgan (WMF) (talk) 15:33, 10 March 2015 (UTC)
No, you can trial-as is-before rolling to full productions, we can revisit. — xaosflux Talk 17:00, 10 March 2015 (UTC)
Post-trial follow up

Xaosflux, I_JethroBT Alright, trial period is over. I've turned off the matching script for now. What's next? Jmorgan (WMF) (talk) 18:38, 14 April 2015 (UTC)

Do you want to hold THIS request open until all the software chagnes are made, or change it to be for the non-flow related items and request those at a later time? — xaosflux Talk 01:07, 15 April 2015 (UTC)
@Xaosflux and Jmorgan (WMF): I think it will be best to close this request out for now while the other components (i.e. Flow) are being worked on. We can reference this discussion in a new request in regards to renewing the matching functions of the bot. Thanks, I, JethroBT drop me a line 19:22, 16 April 2015 (UTC)
Actually, Xaosflux I'd like to get this request resolved independently of Flow. I don't yet have confirmation from the Flow team on when they will have addressed the issues you raised, and in the meantime, I'd like the Co-op to continue running (it's basically shut down now, since we can't match mentors with learners. No invites have gone out for over a week.). So my request is: can HostBot be approved to match learners with mentors by posting on their non-Flow-enabled talkpage?
I probably should have separated the matching script request from the flow-bot right request at the beginning--I apologize. I will submit a new request as soon as I've had confirmation from my WMF colleagues that Flow has been patched to address the issues you raised. Best, Jmorgan (WMF) (talk) 17:27, 23 April 2015 (UTC)
@Xaosflux: I've struck out my request above; I'd also prefer that we have the ability to match and notify editors available to us. I, JethroBT drop me a line 19:21, 23 April 2015 (UTC)

edit WP:BRFA/Commons fair use upload bot_3

Commons fair use upload bot 3

Operator:  (talk · contribs · SUL · edit count · logs · page moves · block log · rights log · ANI search)

Time filed: 19:49, Wednesday January 7, 2015 (UTC)


Programming language(s): Python

Source code available:

I have this working passively locally, but yet to test out on labs with sample images. When I have significant updates to the code, I will consider uploading a new version of the source under as the wikigit repository is unlikely to be maintained. Migrated version of code on github link above, test version only.

Function overview:

This is a cross-wiki bot to copy files at risk of deletion on Wikimedia Commons to local wikis where they can be retained under either fair use or the image is public domain in the source country but may be problematic under Commons interpretations (such as the URAA).

Links to relevant discussions (where appropriate):

Edit period(s):

  • Previously running hourly, without any issues, so I'm planning on doing the same.

Estimated number of pages affected:

  • The bot was successfully running prior to the toolserver shutdown, coincidentally the last transferred files were some of my own. See ListFiles.

Exclusion compliant : Yes

Already has a bot flag : No Effectively this was reset by the usurp process.

A trial may not be needed considering the track record, however If there is one, I would prefer it to be a month or longer as my availability may be patchy.

Function details: This bot re-uploads files that are deleted on Commons to projects where they are in use, if those projects accept non-free files. It goes over the files in Category:Pending fair use deletes, uploads them to local wikis, then marks them for speedy deletion on Commons when it's done. Any article using the images receives a notice that the file has been re-uploaded as a fair use candidate. Local wikis are responsible for determining if the re-uploaded image is eligible for their non-free content policy, and deleting it in a timely manner if it is not. If for some reason it's not able to upload the image, it will leave an error message on the file page and not mark it for deletion.


Arbcom exemption/requirements
  • The Arbitration Committee has passed the following motion which related to this request for approval:
Despite the restrictions on his editing images related to sexuality, may operate the Commons fair use upload bot if the Bot Approvals Group approves it.

The bot may upload sexuality images that would, if Fæ himself had uploaded them to the English Wikipedia, breach Fæ's restriction, only if the upload is requested by a third party.

The bot shall maintain a log of: the images it uploads; the names of the articles on the English Wikipedia where the images appear at the time of upload; and the username of the Commons editor requesting the transfer to the English Wikipedia.

For the Arbitration Committee, Callanecc (talkcontribslogs) 01:24, 15 January 2015 (UTC)

Bot discussion
  • Can you please indicate on the local userpage who owns the account? Courcelles 22:26, 7 January 2015 (UTC)
    • Good point. Done, rather than relying on visiting the Commons page. -- (talk) 22:35, 7 January 2015 (UTC)
  • After playing around with the bot locally and having it fall over a few times, I am planning to rewrite it to rely on pywikibot rather than mwclient as its interface to the API. This will probably work far more reliably on WMFlabs and be much easier to maintain in future years. Though the code is not all that long, with other commitments and the increased testing needed, this will take weeks rather than a few days. -- (talk) 08:49, 12 January 2015 (UTC)
    Note, some 'real' images are ready for the bot to localize, see Commons:Deletion requests/Files uploaded by SPVII DrFresh26. I'm advising that the bot should be operational within a week or two.
    The account commonsfairuseupload has been set up on labs. I have a test version running under Pywikibot core on WMFlabs, however there is a fair amount of rewriting to be done before running it live and it makes sense to put a first snapshot up on github. -- (talk) 23:25, 13 January 2015 (UTC)
    Early snapshot now on github as above. -- (talk) 13:35, 14 January 2015 (UTC)
    A separate bot flag restoration request has been raised on Commons, c:Commons:Bots/Requests/Commons fair use upload bot. -- (talk) 12:52, 15 January 2015 (UTC)
  • This bot would just perform the same task as User:Dcoetzee's bot, right? How will the bot handle Bugzilla:61656? Dcoetzee's bot handled this by reverting CommonsDelinker, see e.g. Special:Diff/615048249. Ideally, this should be fixed in CommonsDelinker instead of the fair use upload bot, but nothing seems to have happened in CommonsDelinker since the bug was reported in 2010. --Stefan2 (talk) 14:53, 20 January 2015 (UTC)
    To be honest, I am not 100% sure I understand the issue, not having looked into the functionality of the delinker (note the bug was reported in 2010, but Dcoetzee's code was successfully running from 2012 to 2014 the way it was). However, the way the CFUUB behaves at the moment is that it locally uploads the file under an amended file name and inserts a redirect as the old local image page text. This should leave the old name untouched to avoid permission problems on local wikis. My understanding is that this precautionary step also avoids possible conflict with the delinker when the original is speedy deleted from Commons. If folks want this to work differently, then this might be something to amend in the delinker's behaviour, rather than building in odd intelligent reverts into CFUUB to undo the work of the delinker.
I have yet to convert this bit of code to pywikibot, but if you look in the current test status source code linked above for the two places that site.upload(open('/tmp/downloadedfile'), newfilename, newdesc, ignore=True) occurs, these are relevant.
As I am regular dialogue with @Steinsplitter:, I would defer to his judgement as he has recently been active in updating the delinker and would welcome his advice during testing. Perhaps he could take ownership of this bug request too? I could do with some test images, so maybe we can agree on a few and demonstrate the system in the trial period. -- (talk) 16:28, 20 January 2015 (UTC)
When Dcoetzee's bot uploaded files, it worked like this:
  1. Someone on Commons requested a local upload
  2. Dcoetzee's bot uploaded the file under a slightly different name by inserting "from Commons" in the file name to avoid permission problems
  3. The bot created a redirect from the old name to the uploaded file
  4. The file was deleted on Commons by a Commons admin
  5. CommonsDelinker failed to notice that a redirect existed locally and therefore incorrectly removed the file from English Wikipedia
  6. Dcoetzee's bot reverted CommonsDelinker's incorrect removal
I think that step 5 should be fixed by correcting the bug in CommonsDelinker, but Dcoetzee decided to fix it by introducing step 6 because the CommonsDelinker programmers didn't fix the bug for several years. There is some discussion in Wikipedia:Bots/Requests for approval/Commons fair use upload bot 2, for example in the "Function details" section. If Steinsplitter can fix CommonsDelinker, then that would be much better. --Stefan2 (talk) 16:49, 20 January 2015 (UTC)
Agreed. I'll pay attention to testing this out based on the fact that Steinsplitter believes this bug has been addressed in Magnus' new version of the delinker (Phabricator:T63656). -- (talk) 18:16, 20 January 2015 (UTC)
See my comment here --Steinsplitter (talk) 18:17, 20 January 2015 (UTC)

As best I can tell, there's no reason to delay a trial. Is that the case? Josh Parris 06:35, 20 February 2015 (UTC)

I'm considering putting some time aside to trial the code in about a week. -- (talk) 09:44, 20 February 2015 (UTC)
My understanding is that you intend to monitor closely, but this is a rewritten bot. I'm also under the impression that there won't be a huge number of edits. As such, Approved for trial (30 edits or 30 days)., commencing sometime in the next couple of weeks. Josh Parris 19:24, 23 February 2015 (UTC)

Any news on that? Trial period has expired. -- Magioladitis (talk) 22:08, 22 March 2015 (UTC)

I have pushed the code forward a little bit this weekend. A family issue has taken priority. I am writing in a reasonable test mode, which I think will help for adding more wikipedias downstream. 30 days was obviously a bit of an aggressive target for my availability. I would expect to be able to run this live in April. -- (talk) 23:04, 22 March 2015 (UTC)

edit WP:BRFA/JhealdBot


Operator: Jheald (talk · contribs · SUL · edit count · logs · page moves · block log · rights log · ANI search)

Time filed: 23:36, Monday December 8, 2014 (UTC)

Automatic, Supervised, or Manual: Supervised

Programming language(s): Perl

Source code available: Still under development.

Function overview: Maintenance of subpages of Wikipedia:GLAM/Your_paintings, in particular the subpages listed at Wikipedia:GLAM/Your_paintings#Artists_by_birth_period. There is currently a drive to identify Wikidata entries for the entries on this list not yet matched. I seek approval to keep these corresponding pages on Wikipedia up to date.

Initially I would just use the bot as an uploader, to transfer wikipages edited off-line into these pages (including fixing some anomalies in the present pages -- which I would probably do sequentially, through more than one stage, reviewing each fix stage before moving on to the next).

Once the off-line code is proven, I would then propose to move to a semi-automated mode, automatically updating the pages to reflect new instances of items with d:Property:P1367 and/or corresponding Wikipedia and Commons pages.

Links to relevant discussions (where appropriate):

Edit period(s): Occasional (perhaps once a fortnight), once the initial updating has been completed. And on request.

Estimated number of pages affected: 17

Exclusion compliant (Yes/No): No. These are purely project tracking pages. No reason to expect a {{bots}} template. If anyone has any issues with what the bot does, they should talk to me directly and I'll either change it or stop running it.

Already has a bot flag (Yes/No): No. I have one on Commons, but not yet here.

Function details:

  • Initially: simple multiple uploader bot -- take updated versions of the 17 pages prepared and reviewed offline, and upload them here.
  • Subsequently: obtain a list of all Wikidata items with property P1367. Use the list to regenerate the "Wikidata" column of the tables, plus corresponding sitelinked Wikipedia and Commons pages.


Regarding uploading offline edits: Are these being made by anyone besides the operator? What license are they being made under? — xaosflux Talk 23:44, 18 December 2014 (UTC)
@Xaosflux: The pages have been being prepared by me using perl scripts, drawing from Wikidata.
I've slowly been making the scripts more sophisticated -- so I've recently added columns for VIAF and RKDartists links, both taken from Wikidata, defaulting to searches if there's no link, or no Wikidata item yet identified. Content not drawn from Wikidata (typically legacy entries from the pages as I first found them) I have prefixed with a question mark in the pages, meaning to be confirmed. For the most part these are blue links, which may go to completely the wrong people.
So at the moment I'm running a WDQ search to pull out all Wikidata entries with one (or more) values for the P1367 "BBC Your Paintings identifier" property, along with the properties for Commons category name (P373), VIAF (P214) and RDKartists (P650). I'm also running an Autolist search to get en-wiki article names for all Wikidata items with a P1367. Plus I have run a look-up to get Wikidata item numbers for all other en-wiki bluelinks on the page (this gives the Q-numbers marked with question marks). But the latter was quite slow, so I have only run it the once. At the moment I'm still launching these searches by hand, and making sure they've come back properly, before updating & re-uploading the pages.
As to the licensing -- Wikidata is licensed CC0. My uploads here are licensed CCSA like any other upload to the site (though in reality there is very little originality, creativity or expression, apart from the choice of design of the page overall, so probably (under U.S. law at least), there quite possibly is no new copyrightable content in the diffs. Various people of course are updating Wikidata -- I've been slowly working down this list (well, so far only to the middle of the 1600s page) though unfortunately not all of the Wikidata updates seem to be being picked up by WDQ at the moment; the Your Painters list is also on Magnus's Mix-and-Match tool; and various others are working at the moment, particularly to add RKD entries to painters with works in the Rijksmuseum in Amsterdam. But Wikidata is all CC0, so that all ought to be fine.
What would help though, would be having the permission for a (limited) multiple uploader, so I could then upload the updates to all 17 pages just by launching a script, rather than laboriously having to upload all 17 by hand each time I want to refresh them, or slightly improve the treatment of one of the columns.
I'm not sure if that entirely answers your question, but I hope does make clearer what I've been doing. All best, Jheald (talk) 00:45, 19 December 2014 (UTC)
Approved for trial (25 edits or 10 days). Please post your results here after the trial. — xaosflux Talk 01:48, 19 December 2014 (UTC)
@Xaosflux: First run of 16 edits made successfully -- see contribs for 19 December, from 15:59 to 16:55.
(Links to RKD streamlined + data updated; one page unaffected).
All the Captchas were a bit of a pain to have to deal with; but they will go away. Otherwise, all fine. Jheald (talk) 17:31, 19 December 2014 (UTC)
Sorry about that, I added confirmed flag to avoid this for now. — xaosflux Talk 17:34, 19 December 2014 (UTC)
New trial run carried smoothly (see this related changes page).
Update still prepared by executing several scripts manually, before a final uploader script; but I should have these all rolled together into a single process for the next test. Jheald (talk) 09:11, 11 January 2015 (UTC)
Run again on January 21st, adding a column with the total number of paintings in the PCF for each artist. Jheald (talk) 17:13, 24 January 2015 (UTC)

Have you completed the trial? Josh Parris 10:20, 4 March 2015 (UTC)

I was going to go on running it once a month or so, the next one probably in a day or two, until anyone progressed this any further, possibly making tweaks to my offline processing scripts as I went along. Obviously I'm open to suggestions as to anything I can improve or do better; though the actual unsupervised bit itself is just an upload script, refreshing a dozen or so pages, so nothing very complicated. (The off-line preprocessing is a bit more involved, but still pretty trivial). Jheald (talk) 00:33, 5 March 2015 (UTC)
I note that further edits have been made. Out of interest, why do IDs change? The painter's been dead for centuries. Are they merges of duplicates? Also, is the trial finished now? Josh Parris 14:54, 9 March 2015 (UTC)

Bots that have completed the trial period

edit WP:BRFA/B-bot


Operator: B (talk · contribs · SUL · edit count · logs · page moves · block log · rights log · ANI search)

Time filed: 17:15, Wednesday, April 22, 2015 (UTC)

Automatic, Supervised, or Manual: Automatic

Programming language(s): C# using DotNetWikiBot

Source code available: User:B-bot/source

Function overview: Tag orphaned images used under a claim of fair use ("non-free") with {{subst:orfud}} and notify the uploader.

Links to relevant discussions (where appropriate): Wikipedia:Bot_owners'_noticeboard/Archive_9#Tagging_orphaned_fair_use_images_and_removing_fair_use_images_from_userspace

Edit period(s): Once nightly. Could be any time, but my plan is to schedule it at 10:00 PM Eastern (2:00 or 3:00 UTC) and it would run until done. I estimate that the average run time to be between 30 minutes and an hour (assuming 30 second delay between edits and 50 orphaned images per day). Twice daily. My plan is 1:00 PM Eastern and 10:00 PM Eastern. Assuming 50 orphaned images per day, each run should be 15-30 minutes.

Estimated number of pages affected: 100 on average, assuming 50 orphaned images per day (one to tag the image and one to notify the uploader). Right now, there is a bit of a backlog that needs to be tagged, but once I do that, there are typically around 40-50 orphaned fair use images per day.

Exclusion compliant (Yes/No): Yes

Already has a bot flag (Yes/No): No

Function details:

  1. One of the complaints we often receive with either bot-based tagging of orphaned fair use images or semi-automated tagging with AWB and the like is that images that are only orphaned momentarily because of vandalism or for a short time because there is edit warring over which poster to use, etc, get tagged and that this is obnoxious. Do I will maintain three daily lists of orphaned images at User:B-bot/List of orphaned images/day-2, User:B-bot/List of orphaned images/day-1, and User:B-bot/List of orphaned images/day-0. Images will only get tagged if they are on all three lists. (This will cover a 48-hour period.)
  2. I will be populating the list of orphaned images from . (I don't hugely care what URL I use, so if we Quarry were to not appreciate me progrmmatically kicking off the query every night, I could change it to point to a different URL and ask (nicely) for someone to have it automatically run the query for me every night.)
  3. When a nightly run begins, I check to see if it has any results at all from Quarry. If I do not, or if the results exactly match last night, then I was unsuccessful in reading the data. I email myself an error message and wait until the next night (or until a manual run).
  4. I then move the contents of User:B-bot/List of orphaned images/day-1 to User:B-bot/List of orphaned images/day-2 and the contents of User:B-bot/List of orphaned images/day-0 to User:B-bot/List of orphaned images/day-1. (I am looking for the most recent edit by either me or the bot, so there is no chance that someone vandalizing these pages could cause bad things to happen.) I paste tonight's results into User:B-bot/List of orphaned images/day-0.
  5. If an image appears in all three lists, I tag it with {{subst:orfud}} and notify the uploader with {{subst:Di-orphaned fair use-notice}}. (I will be adding the functionality to obey opt-out rules tonight.)
  6. For purposes of this initial launch, I am defining "orphaned" as "not used in either article or draft space". (A fair use image used in a userspace draft would be considered an orphan.) While our rules do NOT permit fair use images to be used in drafts, we are usually at least slightly tolerant of them if you are actively working on it and about to publish. There are three possible alternatives NEITHER OF WHICH MATTER FOR THIS INITIAL REQUEST BECAUSE I AM SKIPPING THEM COMPLETELY: (a) treat images used only in drafts no differently from any other orphan and tag them accordingly, (b) tag them, but with a longer timeframe (like a month) to allow time to complete and submit the draft, or (c) only tag them if the draft has not been edited in some period of time (like a month). (Again, I only mention this to clarify what the bot presently defines as an orphan - for the moment, it's not going to tag images used in drafts for deletion and so regardless of your opinion on the subject, we're not going to be any worse off than we are now. There is nothing stopping someone who vehemently wants to see them deleted from seeking them out and tagging them for deletion, or simply removing them from draft space.)


Submitted, --B (talk) 17:15, 22 April 2015 (UTC)

  • The situation with non-free files in drafts has been discussed numerous times at WT:NFC but such use hasn't gained any acceptance.
What happens if a file has a redirect which is in use? The imagelinks table usually seems to register the file use under both the redirect title and the target title, but with exceptions.
I'm not sure if waiting for a few days is going to change much. I suspect that such vandalism often won't be spotted until the uploader has been notified.
How do you identify the original uploader? You should look at the history of the file information page and not at the history of the uploaded files as the file often has been uploaded by one user and reduced per WP:NFCC#3b by a bot, with old revisions deleted. --Stefan2 (talk) 20:52, 22 April 2015 (UTC)
  1. I 100% agree that there is no consensus to permit non-free content in drafts and it is subject to removal if someone desires to do so. But simply for the sake of not letting 1% derail the 99% of the work that every single Wikipedian everywhere agrees needs to be done, I'm punting on that issue for the moment. (Probably my preferred plan would be to tag them, but with a one-month timer instead of a one-week timer. That way we don't annoy someone who is in the middle of writing something, but we don't give you an indefinite escape from our standards either.) In any event, that's an issue for version 1.1. In version 1.0, I'm skipping it. (If, for whatever reason, this is a dealbreaker on approval, which it shouldn't be since there is never anything stopping anyone from doing whatever they want manually, I will modify the query to include them.)
  2. I haven't seen that issue pop up. Two thoughts: (1) I (or whoever does it) would notice it a week later when going to delete the image and could probably resolve it by just bypassing the redirect. (2) If it becomes something that happens more than once a year, I could add code to purge the image page and check the live list of transclusions before tagging.
  3. While that's probably true in some / a lot of cases, in deleting tagged orphans, I have noticed more than a handful of them where the vandalism had actually been reverted well before (usually) you tagged it and I'm assuming that it's probably a bug/feature that the rollback button doesn't update imagelinks right away. So the delay would (hopefully) at least give that time to work. Also, sometimes you have a case where it's only briefly an orphan because someone makes a change for which there is no consensus and the change gets reverted. Certainly, we can see if it makes a difference, but my hope is that we will be less likely to get angry complaints if we wait a little bit. I'm certainly fine, if this seems like a bad idea, with knocking it down to one day or eliminating the delay completely.
  4. I'm treating the author of the oldest revision as the uploader. That might not be perfect (e.g. oversighted edits), but, as you said, it's better than looking at the file history because a bot could have uploaded a reduced version. --B (talk) 21:36, 22 April 2015 (UTC)
  1. A bot which at least handles the other cases is better than no bot at all. Tagging files manually takes too much time for me.
  2. I don't know how common this is.
  3. If imagelinks hasn't been updated for some reason, then I think that the article needs to be edited or purged with forcelinkupdate=, but that waiting for a few days won't help. You can use action=query&prop=links&plnamespace=0&titles=filename with namespace&redirects=1 (example) to get the article title (provided that WP:NFCC#10c isn't being violated) and then purge the articles. --Stefan2 (talk) 23:19, 22 April 2015 (UTC)
    I will keep an eye on the problem and see how prevalent it is. --B (talk) 02:33, 23 April 2015 (UTC)
  • Pictogram voting info.svg Note: This bot appears to have edited since this BRFA was filed. Bots may not edit outside their own or their operator's userspace unless approved or approved for trial. AnomieBOT 01:48, 23 April 2015 (UTC)
    Every edit was me personally performing the edit to validate my process. I will refrain from doing anything with the bot account until this is approved. --B (talk) 02:33, 23 April 2015 (UTC)

((BAG assistance needed))

Hoping to get permission to start running this. There is a significant number of images to tag. The code is written and tested (and posted). --B (talk) 02:39, 23 April 2015 (UTC)

B since I am very bad with image copyright issues, what was the outcome of the discussion at Wikipedia:Bot_owners'_noticeboard/Archive_9#Tagging_orphaned_fair_use_images_and_removing_fair_use_images_from_userspace? I see not result or I miss something. @Redrose64, GiantSnowman, and Technical 13: to ask their opinion about it. -- Magioladitis (talk) 12:43, 23 April 2015 (UTC)

@Magioladitis: There wasn't a !vote or anything - just something that everyone agrees needs to be done. On the sliding scale of "everyone agrees we need it and a bot can easily do it" to "it's somewhat controversial and difficult for a bot", tagging orphaned fair use images is all the way up at the top. There have been various bots to do this over the years but their operators have mostly left the project. User:Stefan2 had been doing it manually (or I guess probably semi-automated with AWB) for a while now. When he was gone for a few days this week, I did it once with AWB and it was so tedious that I figured I could write a bot in about the same amount of time. The discussion covered several different (potential) bots. These are some of the image tasks that bots are needed for and I'm ordering them roughly from least controversial to most controversial:
  • Tagging orphaned fair use images for deletion and notifying their uploaders (that's this one - completely non-controversial and very easy to do)
  • Tagging fair use images that have orphaned versions (where the image was either reduced in size or maybe the company changed its logo and someone uploaded the new logo in its place - Stefan2 has written a bot at Wikipedia:Bots/Requests for approval/Stefan2bot 2 for this task and this is also completely non-controversial.)
  • Removing fair use images from userspace (this is a little more difficult to do programmatically and if it's a user space draft of an article as opposed to someone just using it on their user box, it's possibly useful to exercise some judgment here - maybe we try to ascertain whether it's an article draft or a userbox and if the former, leave the author a message asking them to remove the image or submit the article instead of automatically doing it.)
All of the above were discussed and at least the first two are completely non-controversial. This is the BRFA for #1 and Stefan2's is the BRFA for #2. --B (talk) 13:29, 23 April 2015 (UTC)
Regarding #3 - WP:NFCCP#9 is clear - non-free images are not allowed in user space, whether it's a draft article or not. --Redrose64 (talk) 14:44, 23 April 2015 (UTC)
Fine. #3 is outside of the scope of this bot anyway. It treats fair use images that are used only in user space as "orphans". It makes no effort to remove any infringing uses and that would be a job for a different bot. My only point is that if someone is trying to make an article, it's worth talking with the person. --B (talk) 17:16, 23 April 2015 (UTC)
  • I had forgotten about the discussion, I'll review it again and be back. Not sure how long it will take. — {{U|Technical 13}} (etc) 13:53, 23 April 2015 (UTC)
    • Okay, I've reviewed the previous discussion(s) and think I'm refreshed and back up to speed on this. As I recall, I was going to write four various bot tasks for these situations, then Stefan volunteered to to one, and I talked to someone on IRC that said that the others couldn't easily be done with a bot (I think it was Werieth who use to do this regularly with AWB, but I can't confirm that). That left me in a discombobulated condition about trying to figure out what still needed to be done and who was doing what and what there was still a desire to have done. I'm still willing to try and write code to perform these tasks, but I need a clear set of rules for the bot task to follow. I have no objections if B want's to have a bot task to do one of the tasks that needed to get done (not sure if stefan ever followed through or how that is working, but may have to look into that sometime). — {{U|Technical 13}} (etc) 18:38, 23 April 2015 (UTC)
      • @Technical 13: I wrote this one because it's the easiest to automate and most urgently of the tasks. (There are 50 orphaned fair use images per day and a much, much smaller number of these other things.) There is not a currently a bot doing this - that's why I wrote one - Stefan has been doing it semi-automated with AWB (I think?). While he was out for a few days, I did it - once with AWB and once with Twinkle and it's painfully tedious. My bot (which is completely coded and tested - I just need permission to turn it on) will do it automatically with no human interaction needed. Stefan has written (and has a BRFA pending) the task for tagging fair use images with old versions. Still out there and needing to be written are (1) removing fair use images from userspace (and templates, etc) and (2) tagging fair use images that are used on a page where no rationale has been written for their use. (Both of these tasks are more complex to code and have much less of a daily backlog that needs to be dealt with.) May I have permission to schedule the bot? Are there other steps to receiving approval? --B (talk) 21:25, 23 April 2015 (UTC)
        • Not a problem at all, sorry if you thought I had an issue with it. What I would probably do, is add a minor function to the code so that it creates a list in it's userspace (no approval needed). This would serve as a great way to see what it would tag (without it actually tagging anything). Just a thought. — {{U|Technical 13}} (etc) 22:13, 23 April 2015 (UTC)
          • @Technical 13: This is underway at User:B-bot/Test page. --B (talk) 22:55, 23 April 2015 (UTC)
            • Side note: in case it isn't obvious what I'm doing, I'm showing the first (in the case of the image page) or last (in the case of the user talk page) 250 characters of the page, which includes my {{subst:orfud}} template or my deletion warning template. In other words, I'm not adding everything you see there - I'm adding just the one template at the beginning (in the case of the image page) or end (in the case of the user talk page). --B (talk) 23:04, 23 April 2015 (UTC)

Arbitrary section break

  • Tasks 2 and 3 are out of scope for this BRFA and are better discussed elsewhere. A suitable place to discuss task 2 is at Wikipedia:Bots/Requests for approval/Stefan2bot 2, and I'm trying to see what to do about task 3. All three tasks have previously been handled by bots, but the bots stopped editing at some point. Specific comments about User:B-bot/source:

Please check that the file hasn't become in use since the database report was generated.

// Did someone else tag the page before we got here?
if (pgCurrentImagePage.text.ToUpper().Contains("Di-orphaned fair use".ToUpper()))

This misses some redirects to that template, such as {{db-f5}}. Would it be possible to query the API to tell if the file appears in Category:All orphaned non-free use Wikipedia files instead? That should be safer.

pl.FillFromPageHistory(strPageName, 100);

Does this mean that you only get the 100 most recent revisions of the file information page and that the original uploader will be misidentified if there are more than 100 revisions? Maybe not a problem; few file information pages have more than a dozen edits.

// Can we notify this user?

What happens if the talk page is fully protected? Does the script crash, or does it only skip the user? For example, quite a lot of notifications should go to User talk:718 Bot, which is fully protected. Also check if the talk page is a redirect, and if so, notify the redirect target instead. Users who have abandoned one account and then started with a new one sometimes redirect the old account's talk page to the new account's talk page.

Is this the complete code? The strings OrfudTagComment and OrfudWarningTagComment do not seem to be defined anywhere in the code. Maybe not important; the uploaded code seems to contain everything interesting.

It seems that you check if {{bots}} and {{nobots}} allow you to notify the uploader (but miss {{nobots|allow=B-bot}}), but not if this allows you to tag the file. Is this intentional? For example, if a file's unfree status is disputed, it may be useful to add {{bots|deny=B-bot}} while the file's copyright status is discussed at WP:NFCR.

Consider identifying the article for which the FUR was written and purge that page with action=purge&forcelinkupdate= (must be posted to the API). Files are removed from the imagelinks database table when vandals remove them from the page, and the database table isn't always updated when the article is rolled back. Purging the article with forcelinkupdate seems to fix the imagelinks database table in most situations. See Wikipedia:Village pump (technical)/Archive 133#Orphaned non-free use files that are not orphaned where User:Aspects notified me of this. If WP:NFCC#10c is not violated, then the article title should appear somewhere on the file information page, and the article title is usually linked. You can get all linked articles by using this. --Stefan2 (talk) 23:17, 23 April 2015 (UTC)

  • @Stefan2 and Technical 13: All but one of these changes are now implemented:
    1. I now attempt to parse the fair use rationale and purge the article in question, then check the imageusage api to see if the image is in use after doing so. (According to [1], forcelinkupdate is just a simple get, not a post, and it seemed to work when I tried it.)
    2. I check to see if it is in Category:All orphaned non-free use Wikipedia files.
    3. The FillFromPageHistory function of the DotNetWikiBot framework requires you to specify a number of revisions to look back in history. It passes that along to api.php. I have upped this number to 1000. The purpose of the exercise is just to be large enough that in a real-world scenario, I'm going to get all of them.
    4. I added exception handling and logging if the edit cannot be made because the page is protected.
    5. Anything that starts with Properties.Settings.Default is defined in a settings file. The idea is that these settings could be tweaked without needing to recompile the whole thing. It also contains my password, so obviously I'm not posting the whole thing, but I could post the other parts if you would like, I suppose.
      • Edited to add: I changed it so that in test mode, it will use the edit summary ... so if you look at the test page history, you will now see the edit summary that I have it using. --B (talk) 02:43, 24 April 2015 (UTC)
    6. I did not modify it to check for nobots with allow=B-bot. The {{bots}} template page does not say that nobots accepts any parameters — it says that nobots blocks all bots unconditionally.
    7. I also did not add a bots check to the image description page. In the rare scenario where an orphaned image is being discussed at WP:NFCR, someone could kick the can down the road by setting the timer at a month in the future if need be ... but if the image is orphaned, I'm having trouble coming up with a scenario where we would want to do that and checking for bots tags on non-compliant images allows them to escape detection.
The test is re-running now.--B (talk) 01:50, 24 April 2015 (UTC)
I have also put in some more throttling. I was getting read errors. I was waiting 15 seconds between edits, but was reading everything right away. I have put delays before and after every read and it seems to be working better now. I have also put in code that if the connection fails, for whatever reason, I will disconnect, wait a while, and try again (up to 10 times). Lastly, I fixed a problem where if I failed to tag the image with {{subst:orfud}}, I was still notifying the user. --B (talk) 05:36, 24 April 2015 (UTC)
Also, since we have added these checks to make sure that an image is really orphaned, I have changed my proposal to run the job twice per day, so the image will be tagged after being orphaned for 24 straight hours, rather than 48 straight hours. --B (talk) 05:40, 24 April 2015 (UTC)
  • @Stefan2, Technical 13, and Magioladitis: The bot has completed a successful test run of the complete process with the results of the edits it would have made at User:B-bot/Test page. It logged its events to User:B-bot/Event log. Interestingly, Stefan2, there were three images in this batch that showed up from the DB query as orphaned, but which the API (correctly) told the bot are not orphaned, so that process worked. --B (talk) 15:35, 24 April 2015 (UTC)

((BAG assistance needed)) Can I get an approval to do a real run of the task? I have demonstrated the functionality in simulation mode. --B (talk) 03:35, 25 April 2015 (UTC)

B I guess the {{bots}} needs to change then. |allow= and |deny= are very common. -- Magioladitis (talk) 22:36, 25 April 2015 (UTC)

((BotTrial|edits=30)) I set a lower limit for the bot edits so that we can check editors' reactions. -- Magioladitis (talk) 22:38, 25 April 2015 (UTC)

@Magioladitis: Thanks. I have set it to tag a maximum of 15 images (which will be 30 total edits outside of whatever it logs to its own userspace - 15 images tagged and 15 notifications). It waits 10 minutes after it kicks off the query to get the latest list of orphaned fair use images, so you should see edits starting in about 10 minutes and it should take about 15 minutes to get through 15 images and notifications with the rates I have set for editing and page reading. --B (talk) 23:11, 25 April 2015 (UTC)
Regarding the allow and deny, I will add the possibility for {{nobots|allow=B-bot}} to my regex. Certainly right now, it's not a possibility since very few people know the bot exists yet. ;) --B (talk) 23:16, 25 April 2015 (UTC)
@Magioladitis: The run is complete. You can review the edits involved in this run at [2] and the bots log is at User:B-bot/Event log. (There isn't anything interesting in these 15 images to look at - I log an event if I fail to edit the page, if I encounter an image used only in draft space, or if an image that the query showed was orphaned is no longer orphaned. None of those things happened.) --B (talk) 23:35, 25 April 2015 (UTC)

B, Stefan2, what are the differences between this bot task and Wikipedia:Bots/Requests for approval/Stefan2bot 2? Is there any chance that those 2 overlap each other in some files/pages? -- Magioladitis (talk) 14:14, 26 April 2015 (UTC)

  • @Magioladitis and Stefan2: Stefan2's bot is for tagging fair use images that have old revisions that need to be deleted. Please see any image in Category:Non-free files with orphaned versions more than 7 days old for examples. If you scroll down to the file history, you will see more than one revision in the file. In the overwhelming majority of these cases, the image was rescaled from a really big image down to a smaller size and now we need to delete the really big one. Example: File:GoT S05E01 Mance Rayer at the stake.jpg. Stefan2's bot tags images so that they will show up in this category. My bot is for tagging fair use images that are not used at all in any article. Both of these tasks are very important and are non-controversial. It is possible, I suppose, that both bots might tag the same image by pure coincidence - if you have an unused image that has old revisions, then we might both tag it. But this isn't really a problem - if the image is completely unused, we will just completely delete it. Neither bot is going to undo the other's tag and Stefan's bot is, I assume, not notifying the uploader so there is no chance of annoying the uploader with duplicate talk page messages. --B (talk) 14:36, 26 April 2015 (UTC)

B, Stefan2 I made the comment after I noticed this: User_talk:MotorsportPete93#Orphaned_non-free_image_File:Bamboo_engineering_logo.png but I guess this is because the first edit was manual. The someone removed the tag and the bot was triggered. -- Magioladitis (talk) 16:28, 26 April 2015 (UTC)

@Magioladitis: Correct. The two edits were a month apart. If someone removes an image and it becomes orphaned, then the image is added back into the article, then it later becomes orphaned again, it is desirable behavior that the user would be notified again. In this particular case, it looks like the logo for this company changed. Someone uploaded the new logo to Commons and replaced it in the article. That triggered Stefan2's tagging and notification (which was manual using WP:TWINKLE but would have been made by my bot were it in place at the time). Then, the Commons version was deleted as a copyvio and the original logo was re-added, so the orfud tag was removed. Then the new logo was uploaded to Wikipedia under a claim of fair use and the old one was orphaned again, so the image was re-tagged and the uploader re-notified. This is normal and desirable behavior. It's no different than if you create an article and someone nominates it for deletion, it survives the AFD, then a month later someone nominates it for deletion again. You would want both notifications. (Neither of these notifications would be made by Stefan2's new proposed bot.) --B (talk) 17:03, 26 April 2015 (UTC)

Arbitrary section break 2

((BotExtendedTrial|edits=100)) B Let's catch some more attention. I want to see editors' reactions. It seems you already have people visiting your talk page and this is good. -- Magioladitis (talk) 17:17, 26 April 2015 (UTC)

  • @Magioladitis: This is done. The edits can be reviewed here and the bot's log is viewable at User:B-bot/Event log. In this batch, there was one notification that it was unable to make (notifying 718 Bot (talk · contribs)) because the talk page was protected. --B (talk) 21:01, 26 April 2015 (UTC)
    • Side note: the reason that there were only 98 edits instead of 100 is that, in addition to not being able to notify 718 bot because the page is protected, one of the images - File:BostonSuspect2.jpg - was uploaded by Theo's Little Bot (talk · contribs), which has opted out of notifications with the {{nobots}} tag. So I set it to process 50 images (which would normally result in 100 edits), but two of the images tagged did not yield a notification, so it resulted in 98 edits (aside from what the bot logged in its own userspace). --B (talk) 21:08, 26 April 2015 (UTC)

B Thanks. Now I am going to wait 4 days for reactions. I want to be double sure when it comes to images. Please ping me if I forget to revisit this page. Thanks again! -- Magioladitis (talk) 21:18, 26 April 2015 (UTC)

In the updated code at User:B-bot/source, I do not see any implementation of {{bots|allow=B-bot}} or {{nobots|allow=B-bot}}. Looking at the examples at Template:Bots/doc#Example implementations, I see that different programming languages implement the {{nobots}} template differently. Perl seems to think that all bots are allowed if {{nobots}} uses parameters (regardless of which parameters the template uses), while Python doesn't seem to make any difference between {{bots}} and {{nobots}}, giving the strange result that {{bots}} with no parameters is interpreted to mean that no bots are allowed to edit the page. Also, some programming languages seem to have problems if there is both an allow and a deny, e.g. {{bots|allow=Some bot|deny=Some other bot}}, which is listed as valid syntax on the page. I find this very confusing. --Stefan2 (talk) 21:44, 26 April 2015 (UTC)

Trial complete. -- Magioladitis (talk) 21:53, 26 April 2015 (UTC)

Stefan2, B AWB for instance will treat bot and nobots the same way. -- Magioladitis (talk) 21:54, 26 April 2015 (UTC)

@Stefan2 and Magioladitis: Regarding File:BostonSuspect2.jpg, you are right and I missed that. I was looking to try and figure out why the number of edits wasn't what I expected and thought that was it. You found the right answer, though. Regarding File:Dpdstorlogo reduced.png and File:Fat Face (logo).png, actually this is not a bug. When I took a look to check on the progress, I noticed the error that I logged editing User talk:718 Bot when trying to notify it about File:Brasaov.png. I removed all of the notices from its talk page (which were all added by admins using Twinkle, which didn't at the time care that the page is protected) and added {{nobots}} to the page. So for every image that was uploaded by 718 Bot after I made that change, my program correctly saw the {{nobots}} template and did not attempt a notification. --B (talk) 22:44, 26 April 2015 (UTC)

edit WP:BRFA/APersonBot_2

APersonBot 2

Operator: APerson (talk · contribs · SUL · edit count · logs · page moves · block log · rights log · ANI search)

Time filed: 13:37, Sunday June 8, 2014 (UTC)

Automatic, Supervised, or Manual: Automatic

Programming language(s): Python

Source code available:

Function overview: Will notify an editor if an article they had created/expanded was nominated for DYK by someone else.

Links to relevant discussions (where appropriate): Wikipedia:Bot requests/Archive 60#Asking_for_Noting_bot

Edit period(s): Daily

Estimated number of pages affected: 60 (per run)

Exclusion compliant (Yes/No): Yes

Already has a bot flag (Yes/No): Yes

Function details: This bot will notify an editor if an article they had created/expanded was nominated for DYK by someone else. The notifiers and creators will be detected by scanning the signatures present in the DYK nom, and User:APersonBot/DYKNotice {{DYKnom}} will be used to notify people.


Questions from Xaosflux

  • Do you plan to send notification to everyone in the article contribution history ('persons who expanded'), if not what will be your criteria for inclusion?
xaosflux Talk 02:07, 21 June 2014 (UTC)
The criteria for inclusion will be strictly limited to the user(s) who the nominator entered in {{NewDYKnomination}} as the author(s) using the author parameter (or one that works the same way). At the moment, the bot checks who these users are by parsing the line that appears inside <small> tags. APerson (talk!) 02:34, 21 June 2014 (UTC)
  • Pinging the WT:DYK page to see if there are any objectors still, and to bring such objections here. If no objections in a day will approve for trial — xaosflux Talk 02:53, 21 June 2014 (UTC)
    Special:Diff/613764883xaosflux Talk 02:59, 21 June 2014 (UTC)

Comment from Maile66

  • Just would like to mention that it would be good if when the notification posted on a user's talk page, it had a link to the nomination template so that the editor would be able to comment on the nomination template. — Maile (talk) 13:14, 22 June 2014 (UTC)
    Maile66, I believe that {{DYKNom}}, which I rewrote and expanded for the occasion, links to the nomination template if possible. APerson (talk!) 02:37, 23 June 2014 (UTC)
  • DYK Chiltern Firehouse kicked out a notification within minutes of the nomination template being created, which is good. However, it was the nominator who got the notice on his talk page, rather than the desired creators other than the nominator. — Maile (talk) 18:13, 24 June 2014 (UTC)
See response below. APerson (talk!) 19:26, 24 June 2014 (UTC)

Trial Period

  • Original Trial, 100 edits, 7 days Please post back the results of your trial here; include any user feedback (positive or negative). — xaosflux Talk 01:18, 22 June 2014 (UTC)
    Looks like you've hit a couple of minor bugs? (e.g. double posting to User_talk:MelanieN; posting to nominator. Have these been solved along the way? — xaosflux Talk 04:10, 24 June 2014 (UTC)
    @Xaosflux and Maile66: I just fixed a bug about the bot forgetting to not notify the nominator. The double post was caused by an earlier version of {{DYKNom}} not adding a HTML comment with the name of the template when it was subst:'ed. APerson (talk!) 19:26, 24 June 2014 (UTC)
    Thanks, please reply when your trial is done, flag this with the BAGAssistanceNeeded template too. — xaosflux Talk 00:45, 25 June 2014 (UTC)
    Status update: I'm changing the library which the bot uses from wikitools to pywikibot, since I've found that wikitools is extremely buggy. This may take a few days. APerson (talk!) 02:49, 29 June 2014 (UTC)
    ((BotExtendedTrial|edits=100|days=14)) Trial extended, please verify edits to each of the categories from the original trial after your code change. — xaosflux Talk 01:15, 30 June 2014 (UTC)
  • @APerson: It's been 11 days. Please proceed to the extended bot trial. -- Magioladitis (talk) 13:38, 11 July 2014 (UTC)
    @Magioladitis: I've finished the bot (almost) and am currently trying to get it to save a page. Everything else works; the bot will probably start editing within one or two hours. — Preceding unsigned comment added by APerson (talkcontribs) 18:31 12 July 2014
    APerson Could you please provide us with a status on this bot? — Maile (talk) 15:07, 25 July 2014 (UTC)
    @Maile66: I've been very busy both on and off Wikipedia. Since I haven't gotten pywikibot (the library I switched to) to save, I have my pywikibot script spit out a list of people to notify and another script notify everyone on the list. The only issue I have right now is that for some inexplicable reason, the bot insists on coming up with people whose submissions have already been resolved (i.e. passed or failed) but have not yet been "officially" notified. For instance, the bot wants to notify people whose nominations have been closed but whose hooks have yet to actually appear on the Main Page. I'm not sure if this behavior is desirable, so a few more changes should fix this. APerson (talk!) 22:43, 25 July 2014 (UTC)
    @Maile66 and Xaosflux:, update: the bot is now alive and kicking, but (now that all the logic is properly working) I've discovered that there just aren't that many people who haven't had their submissions nominated by someone else AND that haven't participated in the nomination discussion. It'll take a while to rack up 100 edits. APerson (talk!) 22:44, 10 August 2014 (UTC)
    APerson I see it! I don't know what you have configured to trigger the notice, but it looks to me like it scans the DYK nominations page. It seems to be going back through some older ones, so some editors may wonder why they're getting this at this point in time. I assume that once it gets through the backlog on that page, it will then just work on the newer ones as they come along. I'm so happy this is working now. Matty.007 will be, also. — Maile (talk) 23:32, 10 August 2014 (UTC)
  • I saw this bot was on trial (for MURDER!; call Robot Jessica Fletcher!) and purposely didn't notify the author of Parliamentary War Memorial when I nominated it. There's still no sign of a notification the editor's page, so you might like to investigate (call human Jessica Fletcher!) Belle (talk) 09:43, 15 August 2014 (UTC)
    Belle, I have not yet had the opportunity to start running the bot on toolserver. So, at the moment, the only time the bot runs (and notifies people) is when I double-click it on my computer. I'll look into running it on toolserver soon. APerson (talk!) 16:37, 20 August 2014 (UTC)
    APerson, Did you mean labs? I thought toolserver was no more. — Maile (talk) 16:39, 20 August 2014 (UTC)
    Oh yeah, I meant labs. APerson (talk!) 16:41, 20 August 2014 (UTC)
  • APerson, I see the bot recently placed a couple of notifications on editor pages. I assume you're still testing and probably don't need me to tell you this. However, the latest I've seen is getting it right, but still missing something. When there is more than one editor (creator) that needs to be notified, it only notifies one. — Maile (talk) 22:52, 2 September 2014 (UTC)
  • APerson Is the trial complete? -- Magioladitis (talk) 14:33, 14 September 2014 (UTC)
    Magioladitis, it looks like APerson on August 22 put a notice on his user page that he'd be on a Wikibreak "...a pretty long time." Do we have an alternative solution to getting this bot done? DYK approved this bot January 2014. The request for the bot was made on Feb 23, 2014 and picked up by user Ceradon on March 1, 2014. However, as far as we know, Ceradon never took any action on that, and has not edited on Wikipedia since April 1, 2014. A new request was made for this bot on June 1, 2014. DYK has waited for several months now, with two different people volunteering to do the bot. As far as I can tell, his last testing on this bot was through APersonBot on August 31, 2014. That test showed the bot was not yet perfected, as by my message above. Please let us know our alternatives. — Maile (talk) 18:35, 22 September 2014 (UTC)
    (editing from bot account) Maile66, due to unusual circumstances I will be unable to access my main account until around 7 November. I can vouch for the bot's readiness, although you should hold off on approving it until then. This will be the only non-bot edit I'll make with this account. APersonBot (talk!) 21:43, 24 September 2014 (UTC)
  • Symbol recycling vote.svg Reopened I have resubmitted the request. APerson (talk!) 01:42, 29 November 2014 (UTC)
    Magioladitis, care to take another look? APerson (talk!) 01:58, 2 December 2014 (UTC)
  • Symbol full support vote.svg Approved for extended trial (100 edits or 14 days). -- Magioladitis (talk) 08:25, 2 December 2014 (UTC)
  • APerson did you finish the extended bot trial? Please provide diffs and comments on bot's action. -- Magioladitis (talk) 08:12, 24 December 2014 (UTC)
    Sorry - I've been quite busy, with both on- and off-wiki projects. At the moment, I'm trying to get the bot to recognize when it's already notified someone. There have been some errors, which means that I have to run the bot in interactive mode (i.e. I approve each edit) while testing. This, in turn, means that testing is going slower than I'd like. Still, I hope to have a wonderfully working bot as soon as I can. APerson (talk!) 01:51, 10 January 2015 (UTC)
    So, how's this going? Josh Parris 19:00, 23 February 2015 (UTC)
  • {{OperatorAssistanceNeeded}} APerson. -- Magioladitis (talk) 23:10, 15 March 2015 (UTC)
    APerson? -- Magioladitis (talk) 22:06, 22 March 2015 (UTC)
    Magioladitis - hi; sorry I haven't been that responsive here. I've been a bit busy with other projects on- and off-wiki. I've spent a while trying to get some much revised code I originally got from Betacommand to work; however, I've just tested the code I originally wrote and it's been working perfectly. So, it looks like the bot is ready to be approved. APerson (talk!) 00:19, 23 March 2015 (UTC)
  • Trial complete. - Magioladitis, I've been testing the bot lately and it looks good. APerson (talk!) 17:45, 24 March 2015 (UTC)

APerson can you provide us links to the edits and comments? -- Magioladitis (talk) 19:55, 28 March 2015 (UTC)

Approved requests

Bots that have been approved for operations after a successful BRFA will be listed here for informational purposes. No other approval action is required for these bots. Recently approved requests can be found here (edit), while old requests can be found in the archives.

Denied requests

Bots that have been denied for operations will be listed here for informational purposes for at least 7 days before being archived. No other action is required for these bots. Older requests can be found in the Archive.

Expired/withdrawn requests

These requests have either expired, as information required by the operator was not provided, or been withdrawn. These tasks are not authorized to run, but such lack of authorization does not necessarily follow from a finding as to merit. A bot that, having been approved for testing, was not tested by an editor, or one for which the results of testing were not posted, for example, would appear here. Bot requests should not be placed here if there is an active discussion ongoing above. Operators whose requests have expired may reactivate their requests at anytime. The following list shows recent requests (if any) that have expired, listed here for informational purposes for at least 7 days before being archived. Older requests can be found in the respective archives: Expired, Withdrawn.