Revision: 8653
Author: xqt
Date: 2010-10-14 21:04:45 +0000 (Thu, 14 Oct 2010)
Log Message:
-----------
eol-syle, keywords
Modified Paths:
--------------
trunk/pywikipedia/botlist.py
Property Changed:
----------------
trunk/pywikipedia/botlist.py
Modified: trunk/pywikipedia/botlist.py
===================================================================
--- trunk/pywikipedia/botlist.py 2010-10-14 20:44:04 UTC (rev 8652)
+++ trunk/pywikipedia/botlist.py 2010-10-14 21:04:45 UTC (rev 8653)
@@ -1,150 +1,150 @@
-# -*- coding: utf-8 -*-
-"""
-Allows access to the site's bot user list.
-
-The function refresh() downloads the current bot user list and saves
-it to disk. It is run automatically when a bot first tries to get this
-data.
-"""
-
-# (C) Daniel Herding, 2005
-# (C) Dr. Trigon, 2009-2010
-#
-# DrTrigonBot:
http://de.wikipedia.org/wiki/Benutzer:DrTrigonBot
-#
-# Distributed under the terms of the MIT license.
-#
-__version__='$Id: dtbext_botlist.py 0.3.0040 2010-10-02 20:13 drtrigon $'
-#
-
-import re, sys, pickle
-import os.path
-import time
-import wikipedia as pywikibot
-
-cache = {}
-
-def get(site = None):
- if site is None:
- site = pywikibot.getSite()
- if site in cache:
- # Use cached copy if it exists.
- botlist = cache[site]
- else:
- fn = pywikibot.config.datafilepath('botlists',
- 'botlist-%s-%s.dat' % (site.family.name, site.lang))
- try:
- # find out how old our saved dump is (in seconds)
- file_age = time.time() - os.path.getmtime(fn)
- # if it's older than 1 day, reload it
- if file_age > 1 * 24 * 60 * 60:
- pywikibot.output(u'Copy of bot user list is one day old,
reloading')
- refresh(site)
- except OSError:
- # no saved botlist exists yet, retrieve one
- refresh(site)
- f = open(fn, 'r')
- botlist = pickle.load(f)
- f.close()
- # create cached copy
- cache[site] = botlist
- return botlist
-
-def isBot(user, site=None):
- botlist = get(site)
- return user in botlist
-
-def refresh(site, sysop=False, witheditsonly=True):
- #if not site.has_api() or site.versionnumber() < 10:
- # _refreshOld(site)
-
- # get botlist special page's URL
- if not site.loggedInAs(sysop=sysop):
- site.forceLogin(sysop=sysop)
-
- params = {
- 'action': 'query',
- 'list': 'allusers',
- 'augroup': 'bot',
- }
- if witheditsonly:
- params['auwitheditsonly'] = ''
-
- pywikibot.output(u'Retrieving bot user list for %s via API.' % repr(site))
- pywikibot.put_throttle() # It actually is a get, but a heavy one.
- botlist = []
- while True:
- data = pywikibot.query.GetData(params, site, sysop=sysop)
- if 'error' in data:
- raise RuntimeError('ERROR: %s' % data)
- botlist.extend([w['name'] for w in
data['query']['allusers']])
-
- if 'query-continue' in data:
- params['aufrom'] =
data['query-continue']['allusers']['aufrom']
- else:
- break
-
- # Save the botlist to disk
- # The file is stored in the botlists subdir. Create if necessary.
- if sysop:
- f = open(pywikibot.config.datafilepath('botlists',
- 'botlist-%s-%s-sysop.dat' % (site.family.name, site.lang)),
'w')
- else:
- f = open(pywikibot.config.datafilepath('botlists',
- 'botlist-%s-%s.dat' % (site.family.name, site.lang)),
'w')
- pickle.dump(botlist, f)
- f.close()
-
-#def refresh_all(new = False, sysop=False):
-# if new:
-# import config
-# pywikibot.output('Downloading All bot user lists for your accounts in
user-config.py');
-# for family in config.usernames:
-# for lang in config.usernames[ family ]:
-# refresh(pywikibot.getSite( code = lang, fam = family ), sysop=sysop )
-# for family in config.sysopnames:
-# for lang in config.sysopnames[ family ]:
-# refresh(pywikibot.getSite( code = lang, fam = family ), sysop=sysop )
-#
-# else:
-# import dircache, time
-# filenames = dircache.listdir(pywikibot.config.datafilepath('botlists'))
-# botlist_filenameR = re.compile('botlist-([a-z\-:]+).dat')
-# for filename in filenames:
-# match = botlist_filenameR.match(filename)
-# if match:
-# arr = match.group(1).split('-')
-# family = arr[0]
-# lang = '-'.join(arr[1:])
-# refresh(pywikibot.getSite(code = lang, fam = family))
-#
-#def main():
-# all = False
-# new = False
-# sysop = False
-# for arg in pywikibot.handleArgs():
-# if arg == '-all' or arg == '-update':
-# all = True
-# elif arg == '-new':
-# new = True
-# elif arg == '-sysop':
-# sysop = True
-# if all:
-# refresh_all(sysop=sysop)
-# elif new:
-# refresh_all(new, sysop=sysop)
-# else:
-# refresh(pywikibot.getSite(), sysop=sysop)
-#
-# botlist = get(pywikibot.getSite())
-# pywikibot.output(u'%i pages in the bot user list.' % len(botlist))
-# for pageName in botlist:
-# pywikibot.output( pageName, toStdout = True )
-#
-#if __name__ == "__main__":
-# try:
-# main()
-# finally:
-# pywikibot.stopme()
-
-
+# -*- coding: utf-8 -*-
+"""
+Allows access to the site's bot user list.
+
+The function refresh() downloads the current bot user list and saves
+it to disk. It is run automatically when a bot first tries to get this
+data.
+"""
+
+# (C) Daniel Herding, 2005
+# (C) Dr. Trigon, 2009-2010
+#
+# DrTrigonBot:
http://de.wikipedia.org/wiki/Benutzer:DrTrigonBot
+#
+# Distributed under the terms of the MIT license.
+#
+__version__='$Id$'
+#
+
+import re, sys, pickle
+import os.path
+import time
+import wikipedia as pywikibot
+
+cache = {}
+
+def get(site = None):
+ if site is None:
+ site = pywikibot.getSite()
+ if site in cache:
+ # Use cached copy if it exists.
+ botlist = cache[site]
+ else:
+ fn = pywikibot.config.datafilepath('botlists',
+ 'botlist-%s-%s.dat' % (site.family.name, site.lang))
+ try:
+ # find out how old our saved dump is (in seconds)
+ file_age = time.time() - os.path.getmtime(fn)
+ # if it's older than 1 day, reload it
+ if file_age > 1 * 24 * 60 * 60:
+ pywikibot.output(u'Copy of bot user list is one day old,
reloading')
+ refresh(site)
+ except OSError:
+ # no saved botlist exists yet, retrieve one
+ refresh(site)
+ f = open(fn, 'r')
+ botlist = pickle.load(f)
+ f.close()
+ # create cached copy
+ cache[site] = botlist
+ return botlist
+
+def isBot(user, site=None):
+ botlist = get(site)
+ return user in botlist
+
+def refresh(site, sysop=False, witheditsonly=True):
+ #if not site.has_api() or site.versionnumber() < 10:
+ # _refreshOld(site)
+
+ # get botlist special page's URL
+ if not site.loggedInAs(sysop=sysop):
+ site.forceLogin(sysop=sysop)
+
+ params = {
+ 'action': 'query',
+ 'list': 'allusers',
+ 'augroup': 'bot',
+ }
+ if witheditsonly:
+ params['auwitheditsonly'] = ''
+
+ pywikibot.output(u'Retrieving bot user list for %s via API.' % repr(site))
+ pywikibot.put_throttle() # It actually is a get, but a heavy one.
+ botlist = []
+ while True:
+ data = pywikibot.query.GetData(params, site, sysop=sysop)
+ if 'error' in data:
+ raise RuntimeError('ERROR: %s' % data)
+ botlist.extend([w['name'] for w in
data['query']['allusers']])
+
+ if 'query-continue' in data:
+ params['aufrom'] =
data['query-continue']['allusers']['aufrom']
+ else:
+ break
+
+ # Save the botlist to disk
+ # The file is stored in the botlists subdir. Create if necessary.
+ if sysop:
+ f = open(pywikibot.config.datafilepath('botlists',
+ 'botlist-%s-%s-sysop.dat' % (site.family.name, site.lang)),
'w')
+ else:
+ f = open(pywikibot.config.datafilepath('botlists',
+ 'botlist-%s-%s.dat' % (site.family.name, site.lang)),
'w')
+ pickle.dump(botlist, f)
+ f.close()
+
+#def refresh_all(new = False, sysop=False):
+# if new:
+# import config
+# pywikibot.output('Downloading All bot user lists for your accounts in
user-config.py');
+# for family in config.usernames:
+# for lang in config.usernames[ family ]:
+# refresh(pywikibot.getSite( code = lang, fam = family ), sysop=sysop )
+# for family in config.sysopnames:
+# for lang in config.sysopnames[ family ]:
+# refresh(pywikibot.getSite( code = lang, fam = family ), sysop=sysop )
+#
+# else:
+# import dircache, time
+# filenames = dircache.listdir(pywikibot.config.datafilepath('botlists'))
+# botlist_filenameR = re.compile('botlist-([a-z\-:]+).dat')
+# for filename in filenames:
+# match = botlist_filenameR.match(filename)
+# if match:
+# arr = match.group(1).split('-')
+# family = arr[0]
+# lang = '-'.join(arr[1:])
+# refresh(pywikibot.getSite(code = lang, fam = family))
+#
+#def main():
+# all = False
+# new = False
+# sysop = False
+# for arg in pywikibot.handleArgs():
+# if arg == '-all' or arg == '-update':
+# all = True
+# elif arg == '-new':
+# new = True
+# elif arg == '-sysop':
+# sysop = True
+# if all:
+# refresh_all(sysop=sysop)
+# elif new:
+# refresh_all(new, sysop=sysop)
+# else:
+# refresh(pywikibot.getSite(), sysop=sysop)
+#
+# botlist = get(pywikibot.getSite())
+# pywikibot.output(u'%i pages in the bot user list.' % len(botlist))
+# for pageName in botlist:
+# pywikibot.output( pageName, toStdout = True )
+#
+#if __name__ == "__main__":
+# try:
+# main()
+# finally:
+# pywikibot.stopme()
+
+
Property changes on: trunk/pywikipedia/botlist.py
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native