Wikipedie:Wikikonference/2013/Jak na boty

Prezentace editovat

Zdroje editovat

  • API (přístup k datům z wiki pro programy): /w/api.php na každé wiki
  • Pywikibot
    • Sada nástrojů pro jazyk Python, obsahuje skripty pro hromadné úpravy textů v článcích, přesouvání mezi kategoriemi a tak podobně.
    • Je možno i psát vlastní skripty.
  • Regulární výrazy jsou mocná část vhodná k zaměňování textů, můžeme je použít třeba se skriptem replace.py z Pywikibota. Jejich varianta pro Python se dá testovat třeba na pythonregex.com.

Příklad vlastního skriptu: zamykání článků týdne editovat

Spouštíme cronem v pondělí brzy ráno.
import pywikibot
import datetime

yearweek = datetime.date.today().isocalendar()[:2]
# ^ tohle nám dá dvojici (rok, týden)

pages = [ # různé články pro tento týden
        u'Wikipedie:Článek týdne/%04d/%02d' % yearweek,
        u'Wikipedie:Obrázek týdne/%04d/%02d' % yearweek,
        u'Wikipedie:Zajímavosti/%04d/%02d' % yearweek,
]

site = pywikibot.getSite()
for pgname in pages: # pro každou stránku ze seznamu
        page = pywikibot.Page(site, pgname) # najdu ji na wiki
        page.protect( # a zamknu...
            editcreate='autoconfirmed', move='sysop', # editace pro registrované, přesun jen správci
            reason='automatizovany zamek neceho tydne', # popis editace
            prompt=False, # neptej se a konej
            editcreate_duration='1 week', move_duration='1 week' # chceme zámek jen na týden
        )
pywikibot.stopme() # dáme prostor i ostatním