Szerkesztő:BinBot/napkepe-figy.py

A Wikipédiából, a szabad enciklopédiából

A scriptet Itt BinBot beszél a toolserverről automatikusan futtatja minden délután kettőkor.

# -*- coding: utf-8 -*-
"""
Ez a script ellenőrzi, hogy elkészült-e a másnapi képaláírás a nap képéhez,
illetve az évfordulós sablon, és ha nem, akkor figyelmeztetést ír a kocsmafalra.
This script will warn the community if the translation of the next POTD
description or the next day anniversaries template is missing.
(C) Bináris, 2013
"""

import time
import wikipedia as pywikibot
from binbotutils import levelez #Másnak nem szükséges

class naposbot(object):
    def __init__(self):
        global hiba
        self.site = site
        self.ev  = time.localtime()[0]
        self.ho  = time.localtime()[1]
        self.nap = time.localtime()[2]
        self.hossz = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
        # Szökőév / leap year:
        if self.ev != 2100 and not (self.ev % 4):
            self.hossz[1] = 29

    def holnap(self):
        # Ez így csak egyszer hívható! Tárolni kell az értékét.
        if self.ho == 12 and self.nap == 31: # Szilveszter
            self.ev += 1
            self.ho = self.nap = 1
        elif self.nap == self.hossz[self.ho - 1]: # Hó vége
            self.ho += 1
            self.nap = 1
        else:
            self.nap += 1
        return '%4d-%02d-%02d' % (self.ev, self.ho, self.nap)

    def run(self):
        missing1 = False
        missing2 = False
        holnap = self.holnap()
        neve = u'Sablon:Napképe/%s (hu)' % holnap
        page = pywikibot.Page(self.site, neve) # A nap képe sablonja
        if not page.exists():
            missing1 = True
        years = \
         (["'0, '5", "'1, '6", "'2, '7", "'3, '8", "'4, '9"] * 2)[int(holnap[3])]
        neve2 = u'Sablon:Évfordulók/%s/%s' % (years, holnap[5:])
        page2 = pywikibot.Page(self.site, neve2) # Az ünnepek sablonja
        if not page2.exists():
            missing2 = True
        title = u'Hiányzik a '
        if missing1:
            title += u'holnapi nap képének magyar képaláírása'
            if missing2:
                title += u' és a '
        if missing2:
            title += u'holnapi évfordulók sablonja'
        title +='!'
        comment = u'/* %s */ (új szakasz)' % title
        text = u'\n\n== %s ==\n\n' % title
        if missing1:
            text += u'A holnapi nap képéhez még nem készült el ' \
                u'[[%s|a képaláírás]]! Eredeti: [[commons:Template:Potd/%s (hu)]].'\
                % (neve, holnap)
            if missing2:
                text += '\n\n'
        if missing2:
            text += u'Még nem készültek el [[%s|a holnapi évfordulók]] a kezdőlapra!' % neve2
        text += u' ~~~~\n'
        oldal = pywikibot.Page(self.site, u'Wikipédia:Kocsmafal (egyéb)')
        if missing1 or missing2:
            text = oldal.get() + text
            try:
                oldal.put(text, comment, minorEdit=False, botflag=False)
            except:
                #Nem szelektálunk, toolserverről fog futni, e-mailezzen
                hiba =  True


if __name__=="__main__":
    try:
        site = pywikibot.getSite()
        hiba = False
        fatal = True
        bot = naposbot()
        bot.run()
        fatal = False
    finally:
        levelez(fatal,hiba)
        pywikibot.stopme()