# -*- coding: utf-8 -*- # OKBot Library - A Python module that uses Pywikipediabot framework used basically by OKbot on Wikimedia projects. # Copyright (C) 2008 OsamaK # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # # Please report bugs or help imporving this program by connecting to import wikipedia import simplejson def put_page(site, page, text, comment, minor_edit = False): # (C) 2008 bjweeks, GPL 3.0 or higher. if page.canBeEdited() and page.botMayEdit('OKBot'): try: page.put(text, comment, None, minor_edit) return True except wikipedia.EditConflict: wikipedia.output(u'Edit conflict on page: %s. Skipping.' % page.title()) return "conflict" except wikipedia.LockedPage: wikipedia.output(u'Locked page: %s. Skipping.' % page.title()) return "locked" except wikipedia.SpamfilterError: wikipedia.output(u'Spam filter error on: %s. Skipping.' % page.title()) return "spam" except wikipedia.PageNotSaved: wikipedia.output(u'Page not saved on: %s. Skipping.' % page.title()) except wikipedia.NoPage: wikipedia.output(u'No Page on %s' % page.title()) else: return "noneditable" def getAPI(site, predata): # (C) 2008 Betacommand, MIT License while True: try: response, json = site.postForm(site.apipath(), predata) except wikipedia.ServerError, e: wikipedia.output(u'Warning! %s: %s' % (site, e)) continue try: data = simplejson.loads(json) return data except: continue