Changeset 8a084e970bdeeb8014b2211ea1eee11a34faa9ff
Commiter: Jérémie Roquet
Author: Jérémie Roquet
Parent: 569d131db8
(2010/01/24 12:20) Over 2 years ago
* Arkbot - Additional tasks * Proto - First prototype that works
Commiter: Jérémie Roquet
Author: Jérémie Roquet
Parent: 569d131db8
(2010/01/24 12:20) Over 2 years ago
* Arkbot - Additional tasks * Proto - First prototype that works
_getHeaders = {_postHeaders = {_categoryNamespace = {entries = {}if not item.startswith('__') and isinstance(dictionary[item], dict):self.__logger.debug('Requesting http://' + (self.__site % lang) + url)response = self.__opener.open(urllib2.Request('http://' + (self.__site % lang) + url, data, headers))raise HttpException('%s: (on query "%s")' % (e.code, url))raise PageNotFoundException('Page not found (on query "%s")' % query)raise ApiException('%s: %s (on query "%s")' % (apiResponse.error.code, apiResponse.error.info, query))return filter(lambda link: 0 < link.find(':') < 4 or link.startswith('simple:') or link.startswith('tokipona:'), links)query = query.replace(' ', '+')for unorderedList in document.getElementsByTagName('ul'):if unorderedList.getAttribute('class').find('mw-search-results') != -1:for result in unorderedList.getElementsByTagName('li'):results.append(result.firstChild.firstChild.nodeValue.encode('utf8'))return self.__request(_rawUrl + 'action=raw&title=' + page.replace(' ', '_'), lang=lang).read()return self.__handleApiResponse(self.__request(_apiUrl + query.replace(' ', '_')), query).queryquery = {}answer = raw_input('Edit "%s" with summary "%s"? ' % (page, summary))# {{ISBN}}# {{formatnum:}}# {{siècle}}# {{date}}raise ApiException('%s (on login)' % apiResponse)raise ApiException('Bad user name (on login)')raise ApiException('Bad password (on login)')raise ApiException('Too many login attempts, please wait for %s seconds and retry (on login)' % apiResponse.login.wait)self.__logger.info('Editing page "%s" with summary "%s"' % (page, summary))self.__logger.info(' => edition not confirmed by user')raise ApiException('The bot has been asked to stop editing the wiki, or is not logged in anymore')raise ApiException('Unable to edit page "%s" with summary "%s" and text "%s"' % (page, summary, text))self.__logger.info('Replacing "%s" with "%s" with summary "%s" on page %s"' % (pattern, replacement, summary, page))self.__logger.info(' => no change after replacement')text = {cut = interWiki.find(':')self.__logger.info('Searching for "%s" with parameters %s' % (query, kwargs))logger = logging.getLogger('ArkbotLogger')formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s', '%H:%M:%S')handler = logging.handlers.TimedRotatingFileHandler('arkbot-%s.log' % filename, when='midnight', backupCount=100)addHandler('info', logging.INFO)addHandler('errors', logging.WARNING)addHandler('debug', logging.DEBUG)logger.info('Starting')logger.info('Logging in with user name %s' % _userName)bot.login(getpass.getpass('Bot password ? '))#print bot.info('Compression de données', 'Pondération de contextes')#print bot.read('en:Data compression')#for result in bot.search('"charmant village"'):#bot.replace('Utilisateur:Arkbot/test', r'((^|\s)[t|T]ext)(\s|$)', r'\1e\3')#bot.replace('Utilisateur:Arkbot/test', r'(^|\W)[cC]harmant(\s+)village(\W|$)', r'\1village\3', reason='non neutre')for result in bot.search('"charmant village"'):#bot.consolidate('Buddy Rogers (catcheur)')logger.info('Logging out')logger.error('%s' % e)logger.info('Finishing')(C) 2009-2010 Arkanosis