Jump to content

User:SD5bot/userfy.py

From Wikipedia, the free encyclopedia
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
#!/usr/bin/python
#
# (C) 2012 Legoktm and SD5, under the MIT License
# Checks the new pages list to see whether it should have been made in the userspace, and if so, moves it.
#

import datetime, re, sys, time
from wikipedia import *
import catlib, pagegenerators
from add_text import add_text

site = getSite()

def main():
        gen = pagegenerators.NewpagesPageGenerator(number = 150)

        for page in gen:
                try:
                        UnicodeToAsciiHtml(page.title())
                
                        if not '/' in page.title(): continue
                
                        creator = page.getVersionHistory(reverseOrder = True, revCount = 1)[0][2]
                        
                        time.sleep(1)
                        
                        if page.title().startswith(creator + '/'):
                                # move page
                                old = page.title()
                                new = 'User:' + page.title()
                                page.move(new, reason='BOT: Moving accidentally created subpage into userspace')
                                
                                # request deletion of old page if not a bot account
                                oldpage = Page(site, old)
                                oldpage.put('{{db-r2}}', 'BOT: Nominating moved page for deletion ([[WP:CSD#R2|CSD R2]])')
                                
                                #Leave a talk-page notice
                                talk_page = Page(site, 'User talk:' + creator)
                                talk_page_notice = '{{subst:User:SD5bot/templates/userfy|1=%s|2=%s}} ~~~~' %(old, new)
                                
                                add_text(page = talk_page, addText = '\n' + talk_page_notice, summary = 'BOT: moved [[%s]] to [[%s]]' %(old, new), always = True, create = True)
                                
                        else:
                                continue
                except:
                        continue

if __name__ == "__main__":
        try:
                main()
        finally:
                stopme()