Operator: Bwilkins ( talk · contribs)
Automatic or Manually assisted: Automatic
Programming language(s): Pywikipedia
Source code available: https://svn.toolserver.org/svnroot/josh/g7bot
Function overview: Delete pages in userspace when requested by that user, under strict conditions.
Links to relevant discussions (where appropriate): VPP here
Edit period(s): Continuous
Estimated number of pages affected: 50 per day
Exclusion compliant (Y/N): Y
Already has a bot flag (Y/N): Y
Function details: Similar to how 7SeriesBOT checks G7's now, this task will check db-user category, will check if:
There's a problem with this, because user request does not apply to talk pages. So I'd be more happy if it checked that the only (substantial?) editor was the user requesting their user space to be deleted. - Kingpin 13 ( talk) 14:05, 27 March 2010 (UTC) reply
As long as bot is limited to userspace and follows the limitations laid down by WereSpielChequers, especially that concerning edits from other users, I don't see a problem. Eluchil404 ( talk) 02:49, 28 March 2010 (UTC) reply
Well it seems the only additional check wanted is to check that the only contributor to the page (possibly excluding bots) is the user. Is it possible to have this added to the bot please? - Kingpin 13 ( talk) 15:33, 1 April 2010 (UTC) reply
Any updates on this? Also, is this bot running? I noticed that it was deleting a few pages tagged as U1...? - Kingpin 13 ( talk) 21:57, 6 April 2010 (UTC) reply
As I can find situations where omitting any one of those conditions would need review (edits by bots should exclude the page too because it may be bots warning on edits); but if they're all met it seems reasonable to delete without review. Cenarium ( talk) 18:45, 9 April 2010 (UTC) reply
In the original 7SeriesBOT proposal, it was suggested that a plausible scenario might run like this: User drafts a wonderful piece of prose in User space. User gets very mad at project. User U1 tags wonderful piece of prose and leaves screaming profanities. Bot deletes this as meeting its criteria. Project loses wonderful piece of prose. What safeguards can be erected against this scenario? Josh Parris 13:57, 10 April 2010 (UTC) reply
Is this going anywhere? There seems to be enough support for this task, I need to know if Josh is willing to code it? If not I suggest you (Bwilkins) find another user to code this (I could make you a c# .net program to do this), or I can mark this as expired, and it can be re-opened once there's some code. - Kingpin 13 ( talk) 09:47, 17 April 2010 (UTC) reply
Some code
|
---|
def get_all_bots(self):
'''Loads a list of all flagged bots, and saves it to self.bots'''
params = {
'action' :'query',
'list' :'allusers',
'augroup' :'bot'
}
data = wikipedia.query.GetData(params,self.site)['query']['allusers'
all_bots = p'name' for p in data
del data
self.bots = all_bots
def owner_is_only_contributor(self,page):
'''Given a wikipedia.Page object, it determines if the page is in the proper namespace, and if there is one or zero non bot contributors.'''
verdict = False
if int( page.namespace() ) in 1,2,3,5,7,9,11,13,15,101,109]: #if it is a userpage, or any talk page
contributors = list(page.contributingUsers()) #get a list of all users who have edited the page
contributors = con for con in contributors if con not in self.bots #remove all bots
if len(contributors) <= 1: #Make sure that there is one or less (non bot) contributors
verdict = True
return verdict
|
I have contacted Josh, who is able to provide some assistance - even considering his busy schedule. As it's an add-on to an existing bot, if the new task itself is approved, then the implementation is likely the easy part overall. ( talk→ BWilkins ←track) 09:29, 26 April 2010 (UTC) reply
I've done a first-pass, untested write up, but Internet issues mean I can't as-yet upload this. Josh Parris 01:02, 7 May 2010 (UTC) reply
Run it for a week in Trial mode; there's nothing stopping you as bots can edit their own user space freely, especially for testing purposes. Josh Parris 11:19, 13 May 2010 (UTC) reply
Update: It's been running fine today. Original G7bot is currently shutdown. Lots of pages being logged today - would be good to turn this back on to actual "delete" mode soon. One forgets how many pages that this ends up actually affecting until you see the CSD count some days. ( talk→ BWilkins ←track) 19:28, 1 June 2010 (UTC) reply
An analysis over over a week's worth of data, including the new code of mid-May suggests that it's tagging as it should. Although, by appearances, if one user, WildBot and FrescoBot all edit a talkpage, it's suggesting that there are multiple contributors - whereas I believe that bot edits are not supposed to be considered. This is minor, as for the most part everything looks good, and I think it's ready to go live. ( talk→ BWilkins ←track) 09:20, 4 June 2010 (UTC) reply
Operator: Bwilkins ( talk · contribs)
Automatic or Manually assisted: Automatic
Programming language(s): Pywikipedia
Source code available: https://svn.toolserver.org/svnroot/josh/g7bot
Function overview: Delete pages in userspace when requested by that user, under strict conditions.
Links to relevant discussions (where appropriate): VPP here
Edit period(s): Continuous
Estimated number of pages affected: 50 per day
Exclusion compliant (Y/N): Y
Already has a bot flag (Y/N): Y
Function details: Similar to how 7SeriesBOT checks G7's now, this task will check db-user category, will check if:
There's a problem with this, because user request does not apply to talk pages. So I'd be more happy if it checked that the only (substantial?) editor was the user requesting their user space to be deleted. - Kingpin 13 ( talk) 14:05, 27 March 2010 (UTC) reply
As long as bot is limited to userspace and follows the limitations laid down by WereSpielChequers, especially that concerning edits from other users, I don't see a problem. Eluchil404 ( talk) 02:49, 28 March 2010 (UTC) reply
Well it seems the only additional check wanted is to check that the only contributor to the page (possibly excluding bots) is the user. Is it possible to have this added to the bot please? - Kingpin 13 ( talk) 15:33, 1 April 2010 (UTC) reply
Any updates on this? Also, is this bot running? I noticed that it was deleting a few pages tagged as U1...? - Kingpin 13 ( talk) 21:57, 6 April 2010 (UTC) reply
As I can find situations where omitting any one of those conditions would need review (edits by bots should exclude the page too because it may be bots warning on edits); but if they're all met it seems reasonable to delete without review. Cenarium ( talk) 18:45, 9 April 2010 (UTC) reply
In the original 7SeriesBOT proposal, it was suggested that a plausible scenario might run like this: User drafts a wonderful piece of prose in User space. User gets very mad at project. User U1 tags wonderful piece of prose and leaves screaming profanities. Bot deletes this as meeting its criteria. Project loses wonderful piece of prose. What safeguards can be erected against this scenario? Josh Parris 13:57, 10 April 2010 (UTC) reply
Is this going anywhere? There seems to be enough support for this task, I need to know if Josh is willing to code it? If not I suggest you (Bwilkins) find another user to code this (I could make you a c# .net program to do this), or I can mark this as expired, and it can be re-opened once there's some code. - Kingpin 13 ( talk) 09:47, 17 April 2010 (UTC) reply
Some code
|
---|
def get_all_bots(self):
'''Loads a list of all flagged bots, and saves it to self.bots'''
params = {
'action' :'query',
'list' :'allusers',
'augroup' :'bot'
}
data = wikipedia.query.GetData(params,self.site)['query']['allusers'
all_bots = p'name' for p in data
del data
self.bots = all_bots
def owner_is_only_contributor(self,page):
'''Given a wikipedia.Page object, it determines if the page is in the proper namespace, and if there is one or zero non bot contributors.'''
verdict = False
if int( page.namespace() ) in 1,2,3,5,7,9,11,13,15,101,109]: #if it is a userpage, or any talk page
contributors = list(page.contributingUsers()) #get a list of all users who have edited the page
contributors = con for con in contributors if con not in self.bots #remove all bots
if len(contributors) <= 1: #Make sure that there is one or less (non bot) contributors
verdict = True
return verdict
|
I have contacted Josh, who is able to provide some assistance - even considering his busy schedule. As it's an add-on to an existing bot, if the new task itself is approved, then the implementation is likely the easy part overall. ( talk→ BWilkins ←track) 09:29, 26 April 2010 (UTC) reply
I've done a first-pass, untested write up, but Internet issues mean I can't as-yet upload this. Josh Parris 01:02, 7 May 2010 (UTC) reply
Run it for a week in Trial mode; there's nothing stopping you as bots can edit their own user space freely, especially for testing purposes. Josh Parris 11:19, 13 May 2010 (UTC) reply
Update: It's been running fine today. Original G7bot is currently shutdown. Lots of pages being logged today - would be good to turn this back on to actual "delete" mode soon. One forgets how many pages that this ends up actually affecting until you see the CSD count some days. ( talk→ BWilkins ←track) 19:28, 1 June 2010 (UTC) reply
An analysis over over a week's worth of data, including the new code of mid-May suggests that it's tagging as it should. Although, by appearances, if one user, WildBot and FrescoBot all edit a talkpage, it's suggesting that there are multiple contributors - whereas I believe that bot edits are not supposed to be considered. This is minor, as for the most part everything looks good, and I think it's ready to go live. ( talk→ BWilkins ←track) 09:20, 4 June 2010 (UTC) reply