#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pywikibot
import datetime

pagename = 'Wikipedia:afzetting moderatoren'
durationofvoting = 7 # days
limitbeforevoting = 14 # days
benodigdebewerkingen = 100

print (datetime.datetime.now())

startofvoting = datetime.datetime(2019, 9, 25, 22, 15)

startofvoting = startofvoting - datetime.timedelta(hours=2)   # correcting to UTC, the timezone contributions are logged in

endofvoting = startofvoting + datetime.timedelta(days=durationofvoting)
endofcontributionperiod = startofvoting - datetime.timedelta(days=limitbeforevoting)
startofcontributionperiod = endofcontributionperiod - datetime.timedelta(days=365)   # not leapyear prove

print (f'Stemperiode loopt van {startofvoting} tot {endofvoting}')
print (f'Minimaal {benodigdebewerkingen} bewerkingen zijn vereist tussen {startofcontributionperiod} en {endofcontributionperiod}')

site = pywikibot.Site('nl', 'wikipedia')
page = pywikibot.Page(site, pagename)
bewerkers = page.contributors(total=None, starttime=endofvoting, endtime=startofvoting)
for bewerker in bewerkers:
#    print (bewerker)
    bewerkingen = site.usercontribs(user=bewerker, userprefix=None, start=startofcontributionperiod, end=endofcontributionperiod,
                              reverse=True, namespaces=None, minor=None, total=benodigdebewerkingen+1, top_only=False)
    aantal = 0
    for bewerking in bewerkingen:
        aantal += 1
    if aantal < benodigdebewerkingen:
        print (f'{bewerker} is geen geldige bewerker, heeft slechts {aantal} bewerkingen gedaan in de meetperiode')
    else:
        print (f'{bewerker} is een geldige bewerker: {aantal} of meer bewerkingen')