def reportBadAccount(self, name=None, final=False): #Queue process if name: if globalvar.confirm: answer = pywikibot.inputChoice( u'%s may have an unwanted username, do you want to report ' u'this user?' % name, ['Yes', 'No', 'All'], ['y', 'N', 'a'], 'N') if answer in ['a', 'all']: answer = 'y' globalvar.confirm = False else: answer = 'y' if answer.lower() in ['yes', 'y'] or not globalvar.confirm: showStatus() pywikibot.output( u'%s is possibly an unwanted username. It will be reported.' % name) if hasattr(self, '_BAQueue'): self._BAQueue.append(name) else: self._BAQueue = [name] if len(self._BAQueue) >= globalvar.dumpToLog or final: rep_text = '' # name in queue is max, put detail to report page pywikibot.output("Updating badname accounts to report page...") rep_page = pywikibot.Page(self.site, pywikibot.translate(self.site, report_page)) if rep_page.exists(): text_get = rep_page.get() else: text_get = u'This is a report page for the Bad-username, please translate me. --~~~' pos = 0 # The talk page includes "_" between the two names, in this way i # replace them to " ". for usrna in self._BAQueue: username = pywikibot.url2link(usrna, self.site, self.site) n = re.compile(re.escape(username), re.UNICODE) y = n.search(text_get, pos) if y: pywikibot.output(u'%s is already in the report page.' % username) else: # Adding the log. rep_text += pywikibot.translate(self.site, report_text) % username if self.site.code == 'it': rep_text = "%s%s}}" % (rep_text, self.bname[username]) com = i18n.twtranslate(self.site, 'welcome-bad_username') if rep_text != '': rep_page.put(text_get + rep_text, comment=com, force=True, minorEdit=True) showStatus(5) pywikibot.output(u'Reported') self.BAQueue = list() else: return True
def reportBadAccount(self, name=None, final=False): #Queue process if name: if globalvar.confirm: answer = pywikibot.inputChoice( u'%s may have an unwanted username, do you want to report ' u'this user?' % name, ['Yes', 'No', 'All'], ['y', 'N', 'a'], 'N') if answer in ['a', 'all']: answer = 'y' globalvar.confirm = False else: answer = 'y' if answer.lower() in ['yes', 'y'] or not globalvar.confirm: showStatus() pywikibot.output( u'%s is possibly an unwanted username. It will be reported.' % name) if hasattr(self, '_BAQueue'): self._BAQueue.append(name) else: self._BAQueue = [name] if len(self._BAQueue) >= globalvar.dumpToLog or final: rep_text = '' # name in queue is max, put detail to report page pywikibot.output("Updating badname accounts to report page...") rep_page = pywikibot.Page(self.site, pywikibot.translate(self.site, report_page)) if rep_page.exists(): text_get = rep_page.get() else: text_get = u'This is a report page for the Bad-username, please translate me. --~~~' pos = 0 # The talk page includes "_" between the two names, in this way i # replace them to " ". for usrna in self._BAQueue: username = pywikibot.url2link(usrna, self.site, self.site) n = re.compile(re.escape(username), re.UNICODE) y = n.search(text_get, pos) if y: pywikibot.output(u'%s is already in the report page.' % username) else: # Adding the log. rep_text += pywikibot.translate(self.site, report_text) % username if self.site.lang == 'it': rep_text = "%s%s}}" % (rep_text, self.bname[username]) com = i18n.twtranslate(self.site, 'welcome-bad_username') if rep_text != '': rep_page.put(text_get + rep_text, comment=com, force=True, minorEdit=True) showStatus(5) pywikibot.output(u'Reported') self.BAQueue = list() else: return True
def reportBadAccount(self, name=None, final=False): # Queue process if name: if globalvar.confirm: answer = pywikibot.input_choice( "%s may have an unwanted username, do you want to report " "this user?" % name, [("Yes", "y"), ("No", "n"), ("All", "a")], "n", automatic_quit=False, ) if answer in ["a", "all"]: answer = "y" globalvar.confirm = False else: answer = "y" if answer.lower() in ["yes", "y"] or not globalvar.confirm: showStatus() pywikibot.output("%s is possibly an unwanted username. It will be reported." % name) if hasattr(self, "_BAQueue"): self._BAQueue.append(name) else: self._BAQueue = [name] if len(self._BAQueue) >= globalvar.dumpToLog or final: rep_text = "" # name in queue is max, put detail to report page pywikibot.output("Updating badname accounts to report page...") rep_page = pywikibot.Page(self.site, i18n.translate(self.site, report_page)) if rep_page.exists(): text_get = rep_page.get() else: text_get = "This is a report page for the Bad-username, please translate me. --~~~" pos = 0 # The talk page includes "_" between the two names, in this way i # replace them to " ". for usrna in self._BAQueue: username = pywikibot.url2link(usrna, self.site, self.site) n = re.compile(re.escape(username), re.UNICODE) y = n.search(text_get, pos) if y: pywikibot.output("%s is already in the report page." % username) else: # Adding the log. rep_text += i18n.translate(self.site, report_text) % username if self.site.code == "it": rep_text = "%s%s}}" % (rep_text, self.bname[username]) com = i18n.twtranslate(self.site, "welcome-bad_username") if rep_text != "": rep_page.put(text_get + rep_text, summary=com, force=True, minorEdit=True) showStatus(5) pywikibot.output("Reported") self.BAQueue = list() else: return True
def makelogpage(self, queue=None): """Make log page.""" if queue is None: queue = [] if not globalvar.makeWelcomeLog or len(queue) == 0: return text = u'' logg = i18n.translate(self.site, logbook) if not logg: return target = logg + '/' + time.strftime('%Y/%m/%d', time.localtime(time.time())) if self.site.code == 'it': target = logg + '/' + time.strftime('%d/%m/%Y', time.localtime(time.time())) logPage = pywikibot.Page(self.site, target) if logPage.exists(): text = logPage.get() else: # make new log page showStatus() pywikibot.output( 'Log page is not exist, getting information for page creation') text = i18n.translate(self.site, logpage_header, fallback=i18n.DEFAULT_FALLBACK) text += u'\n!%s' % self.site.namespace(2) text += u'\n!%s' % str.capitalize( self.site.mediawiki_message('contribslink')) for result in queue: # Adding the log... (don't take care of the variable's name...). luser = pywikibot.url2link(result.username, self.site, self.site) text += u'\n{{WLE|user=%s|contribs=%d}}' % (luser, result.editCount()) # update log page. while True: try: logPage.put(text, i18n.twtranslate(self.site, 'welcome-updating')) return True except pywikibot.EditConflict: pywikibot.output(u'An edit conflict has occurred. Pausing for ' u'10 seconds before continuing.') time.sleep(10)
def makelogpage(self, queue=None): """Make log page.""" if queue is None: queue = [] if not globalvar.makeWelcomeLog or len(queue) == 0: return text = u'' logg = i18n.translate(self.site, logbook) if not logg: return target = logg + '/' + time.strftime('%Y/%m/%d', time.localtime(time.time())) if self.site.code == 'it': target = logg + '/' + time.strftime('%d/%m/%Y', time.localtime(time.time())) logPage = pywikibot.Page(self.site, target) if logPage.exists(): text = logPage.get() else: # make new log page showStatus() pywikibot.output( 'Log page is not exist, getting information for page creation') text = i18n.translate(self.site, logpage_header, fallback=i18n.DEFAULT_FALLBACK) text += u'\n!%s' % self.site.namespace(2) text += u'\n!%s' % str.capitalize( self.site.mediawiki_message('contribslink')) for result in queue: # Adding the log... (don't take care of the variable's name...). luser = pywikibot.url2link(result.name(), self.site, self.site) text += u'\n{{WLE|user=%s|contribs=%d}}' % ( luser, result.editCount()) # update log page. while True: try: logPage.put(text, i18n.twtranslate(self.site, 'welcome-updating')) return True except pywikibot.EditConflict: pywikibot.output(u'An edit conflict has occurred. Pausing for ' u'10 seconds before continuing.') time.sleep(10)
def report_bad_account(self) -> None: """Report bad account.""" rep_text = '' # name in queue is max, put detail to report page pywikibot.output('Updating badname accounts to report page...') rep_page = pywikibot.Page(self.site, i18n.translate(self.site, report_page)) if rep_page.exists(): text_get = rep_page.get() else: text_get = ('This is a report page for the Bad-username, ' 'please translate me. --~~~') pos = 0 # The talk page includes "_" between the two names, in this way # replace them to " ". for usrna in self._BAQueue: username = pywikibot.url2link(usrna, self.site, self.site) n = re.compile(re.escape(username)) y = n.search(text_get, pos) if y: pywikibot.output( '{} is already in the report page.'.format(username)) else: # Adding the log. rep_text += i18n.translate(self.site, report_text) % username if self.site.code == 'it': rep_text = '%s%s}}' % (rep_text, self.bname[username]) com = i18n.twtranslate(self.site, 'welcome-bad_username') if rep_text != '': rep_page.put(text_get + rep_text, summary=com, force=True, minor=True) self.show_status(Msg.DONE) pywikibot.output('Reported') self.BAQueue = []
def reportBadAccount(self, name=None, final=False): """Report bad account.""" # Queue process if name: if globalvar.confirm: answer = pywikibot.input_choice( '{} may have an unwanted username, do you want to report ' 'this user?'.format(name), [('Yes', 'y'), ('No', 'n'), ('All', 'a')], 'n', automatic_quit=False) if answer in ['a', 'all']: answer = 'y' globalvar.confirm = False else: answer = 'y' if answer.lower() in ['yes', 'y'] or not globalvar.confirm: showStatus() pywikibot.output( '{} is possibly an unwanted username. It will be reported.' .format(name)) if hasattr(self, '_BAQueue'): self._BAQueue.append(name) else: self._BAQueue = [name] if len(self._BAQueue) >= globalvar.dumpToLog or final: rep_text = '' # name in queue is max, put detail to report page pywikibot.output('Updating badname accounts to report page...') rep_page = pywikibot.Page(self.site, i18n.translate(self.site, report_page)) if rep_page.exists(): text_get = rep_page.get() else: text_get = ('This is a report page for the Bad-username, ' 'please translate me. --~~~') pos = 0 # The talk page includes "_" between the two names, in this way # replace them to " ". for usrna in self._BAQueue: username = pywikibot.url2link(usrna, self.site, self.site) n = re.compile(re.escape(username), re.UNICODE) y = n.search(text_get, pos) if y: pywikibot.output( '{} is already in the report page.'.format(username)) else: # Adding the log. rep_text += i18n.translate(self.site, report_text) % username if self.site.code == 'it': rep_text = '%s%s}}' % (rep_text, self.bname[username]) com = i18n.twtranslate(self.site, 'welcome-bad_username') if rep_text != '': rep_page.put(text_get + rep_text, summary=com, force=True, minor=True) showStatus(5) pywikibot.output('Reported') self.BAQueue = [] else: return True
def reportBadAccount(self, name=None, final=False): """Report bad account.""" # Queue process if name: if globalvar.confirm: answer = pywikibot.input_choice( '{} may have an unwanted username, do you want to report ' 'this user?'.format(name), [('Yes', 'y'), ('No', 'n'), ('All', 'a')], 'n', automatic_quit=False) if answer in ['a', 'all']: answer = 'y' globalvar.confirm = False else: answer = 'y' if answer.lower() in ['yes', 'y'] or not globalvar.confirm: showStatus() pywikibot.output( '{} is possibly an unwanted username. It will be reported.' .format(name)) if hasattr(self, '_BAQueue'): self._BAQueue.append(name) else: self._BAQueue = [name] if len(self._BAQueue) >= globalvar.dumpToLog or final: rep_text = '' # name in queue is max, put detail to report page pywikibot.output('อัพเดตบอตเพื่อเข้ากับรายการชื่อห้ามสร้าง') rep_page = pywikibot.Page(self.site, i18n.translate(self.site, report_page)) if rep_page.exists(): text_get = rep_page.get() else: text_get = ( 'หน้านี้มีไว้สำหรับการแจ้งเมื่อพบชิ่อผู้ใช้ไม่เหมาะสม, ' 'สร้างและแก้ไขอัตโนมัติโดยบอต ~~~ สร้างเมื่อ {{subst:#time:d F ปีxkY, เวลา H:i น.}}\n!== รายการ ==' ) pos = 0 # The talk page includes "_" between the two names, in this way # replace them to " ". for usrna in self._BAQueue: username = pywikibot.url2link(usrna, self.site, self.site) n = re.compile(re.escape(username), re.UNICODE) y = n.search(text_get, pos) if y: pywikibot.output( '{} is already in the report page.'.format(username)) else: # Adding the log. rep_text += i18n.translate(self.site, report_text) % username if self.site.code == 'it': rep_text = '%s%s}}' % (rep_text, self.bname[username]) com = i18n.twtranslate(self.site, 'welcome-bad_username') if rep_text != '': rep_page.put(text_get + rep_text, summary=com, force=True, minor=True) showStatus(5) pywikibot.output('Reported') self.BAQueue = [] else: return True