Ugrás a tartalomhoz

Wikipédia:A jelölt lapváltozatok kezelése Pywikibottal

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

Problémafelvetés

[szerkesztés]

Az elavult ellenőrzött lapok minden szerkesztése nehezíti a járőrök munkáját, mert bonyolultabb lesz a diff. Noha bizonyos botmunkákat ettől még el kell végezni, vannak olyan esetek, amikor mérlegelhetünk. A feladatlista végén a kozmetikai változtatások állnak, amelyekről a készülő botozási irányelv a korábbi és jelenleg is érvényes megállapodással összhangban úgy fogalmaz, hogy csak ellenőrzött lapokon végezzük el.

Megoldás

[szerkesztés]

A jelölt lapváltozatokat jelenleg (2023. április) a Pywikibot keretrendszere még nem támogatja. Ezért a Magyar Wikipédia számára külön modul készült, amely a huwiki csomag része, és annak az oldaláról tölthető le.

A modul a következő értékeket vezeti be:

class Flags(Enum):
    """State codes with meaningful names."""

    UNFLAGGED = -1  # Not a flagged namespace / ellenőrizetlen névtér
    UNREVIEWED = 0  # A page that was never reviewed / ellenőrizetlen lap
    PENDING = 1  # Reviewed page w/ pending changes / elavult ellenőrzött lap
    STABLE = 2  # Reviewed page revision / ellenőrzött lap
    REDPAGE = 3  # Page does not exist / nem létező lap
    ERROR = 4  # We should never get this

1. megoldás

[szerkesztés]

Bármely lapra alkalmazhatjuk a flagged_state() és a cosmeticable() függvényt az alábbiak szerint. Az első a fenti állapotkódokat adja vissza. A második igaz értéket ad, ha a lap ellenőrzött, nem létezik vagy nem ellenőrzött névtérben van. Hamisat ad vissza, ha a lap sosem volt ellenőrizve, elavult ellenőrzött vagy ha hiba történt a lekérdezés során.

Némi magyarázatra szorulhatnak a nem létező lapok. Ezeken kozmetikai változtatásokat nyilván nem végezhetünk. Az igaz érték azt fejezi ki, hogy bátran dolgozhatunk rajtuk bottal, bármi is a feladat, nem fogja zavarni a járőröket.

import pywikibot
from huwiki.flaggedrevs import cosmeticable, flagged_state

site = pywikibot.Site()

page = pywikibot.Page(site, 'Miskolc')
print(page)
print(flagged_state(page))
print(cosmeticable(page))

[[hu:Miskolc]]
Flags.STABLE
True


page = pywikibot.Page(site, 'Valletta')
print(page)
print(flagged_state(page))
print(cosmeticable(page))

[[hu:Valletta]]
Flags.PENDING
False


page = pywikibot.Page(site, 'Ez a cikk nem létezik')
print(page)
print(flagged_state(page))
print(cosmeticable(page))

[[hu:Ez a cikk nem létezik]]
Flags.REDPAGE
True


page = pywikibot.Page(site, 'Wikipédia:A jelölt lapváltozatok kezelése Pywikibottal')
print(page)
print(flagged_state(page))
print(cosmeticable(page))

[[hu:Wikipédia:A jelölt lapváltozatok kezelése Pywikibottal]]
Flags.UNFLAGGED
True

A modul tartalmaz egy CosmeticableFilterPageGenerator nevű burkológenerátort is. Ezt tetszőleges másik lapgenerátor köré építve csak a fenti értelemben „kozmetikázható” lapokat engedi át.

Megoldásra vár

[szerkesztés]

Mivel a Pywikibot kozmetikai változtatásai jelenleg nem szabályozhatóak saját függvénnyel, az összeépítés még külön feladat lesz. Hosszú távon remélhetjük, hogy bekerül a keretrendszerbe, és egyszerűbben használhatjuk.

További információk

[szerkesztés]
  • A jelölt lapváltozatok Pywikibot-támogatásával kapcsolatos feladat: Phab:T57081