Wikipédia:A jelölt lapváltozatok kezelése Pywikibottal
Ezen az oldalon egy technikai leírást olvashatsz a Wikipédia szerkesztéséről. Tartsd szem előtt, hogy nem minden ajánlott, ami technikailag megvalósítható! |
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