Szerkesztő:Bináris/Tartalomjegyzékbot

/c1/c2/c3

A tartalomjegyzékbot egy Bináris által írt, a Pywikipedia keretrendszerben készült program. Feladata a több archívumra széttagolt lapok összefüggő tartalomjegyzékének elkészítése.

Áttekintés és motiváció

szerkesztés

Sokszor olvastam a szerkesztőtársak panaszait, hogy egy korábbi megbeszélést nehéz kiásni az archívumok tömkelegéből. Vannak, akik szerint erre a problémára a Liquid Threads (más néven „folyékony beszélgetések”) a megoldás. Az én célom egy alternatív lehetőség biztosítása a hagyományos wikistruktúra keretein belül. Ennek a leírásnak az angol változatában felsoroltam néhány korábbi próbálkozást más wikikből. Ezek arra utalnak, hogy másokat is foglalkoztatott a kérdés, és megkíséreltek több-kevesebb kézimunkával járó választ találni rá. Reményeim szerint ez a tartalomjegyzékbot átfogó megoldás lesz.

A tartalomjegyzékbot felderíti egy lap archívumait, és ezeket sorba rendezve tartalomjegyzéket készít belőlük. A kész tartalomjegyzék egy rendezhető táblázat, amely az archivált szakaszok számától függően igen nagy lehet.[1] Tartalma: a szakasz sorszáma, kattintható címe, a benne levő harmad-negyed-sokadszintű alcímek, az archívum száma, az első és utolsó hozzászólás becsült dátuma és a hozzászólások becsült száma (a szabványos dátumok és 1-2 sablon figyelembe vételével), valamint a szakasz hossza. További tagolás a rendezhetőség érdekében nincs benne.

A tartalomjegyzékeket a kísérleti fázisban, illetve a toolserverre való várakozás hónapjaiban BinBot készítette (mindig egyenkénti indítással), üzemszerűen pedig Itt BinBot beszél a toolserverről ütemezett feladatként. A felhasználók szemszögéből nincs jelentősége, melyik néven végzi a bot a feldolgozást.

A magyar Wikipédia tartalomjegyzékkel ellátott közösségi lapjait itt tekintheted át, a szerkesztők saját archívumainak tartalomjegyzékeit pedig a Személyes tartalomjegyzékek kategóriában.

A leírás a Szerkesztő:Bináris/Tartalomjegyzékbot/Használati útmutató lapon található, ennek alapján te is elkészítheted a saját konfigurációdat, és ha sikerült, a bot el fogja készíteni a tartalomjegyzéket.

Kérlek, hogy a bot működésével kapcsolatos észrevételeidet kizárólag ennek a lapnak a vitalapjára írd, hogy minden egy helyen legyen. Beírás előtt olvasd át a lenti tudnivalókat, ugyanis vannak ismert hibák, amelyeket felesleges jelezni (hacsak nem a megoldás algoritmusát akarod megírni).

A tartalomjegyzékbot és az archiválóbot

szerkesztés

Misza13 archiválóbotját szerte a wikibirodalomban igen sokan használják a vitalapok, kocsmafalak és üzenőfalak automatikus archiválására. (Nálunk Cherybot futtatja.) Tulajdonképpen ennek az analógiájára született a tartalomjegyzékbot, és néhány ötletet és megoldást is használ belőle. A kettő szépen együttműködik, de külön is használhatók: akár Cherybot archivál egy lapot, akár kézzel archiválod, a bot elkészíti neked a tartalomjegyzéket. Az egyetlen feltétel, hogy az archívumaid elnevezésében legyen valami szabályosság.

A bot működése

szerkesztés

A bot három fő részből áll (alulról építve):

  • a táblázatgenerátor feldolgozza az allapok megadott listáját, és elkészíti a táblázatot,
  • az archívumgenerátor megkeresi, sorba rendezi és felsorolja egy lap archívumait,
  • a lapgenerátor felsorolja a feldolgozandó lapokat, amelyeknek az archívumaival dolgoznunk kell.

A bot csak szabályos algoritmussal képzett allapcímekkel dolgozik! Ahol ilyesmi nem ismerhető fel, azt tessék átszámozni a bot használatához. :-) A Szerkesztő:Bináris/Tartalomjegyzékbot/Archívumképzési minták látható, mennyire rugalmas a bot, és milyen sokféle rendszerű archívumot képes felismerni.

Megoldási szintek

szerkesztés
  1. Egy adott lap archívumainak táblázatba rendezése és mentése  
  2. Az összes kocsmafal tartalomjegyzékének elkészítése (azonosan képzett archívumnevekkel)  
    Ideiglenes bemutatóhely: Szerkesztő:Bináris/kocsmák (laboratórium) (még folyik a fejlesztés)
  3. Fejléc és lábléc beillesztése  
  4. A végleges helyre került tartalomjegyzékek linkelése a lapok fejlécébe (folyamatosan)  
  5. Nem sorszámozott (pl. magyar sorrendű dátummal elnevezett) archívumok feldolgozása  
  6. Néhány más közösségi lap feldolgozása (régi kocsmafal, porta, üzenőfalak, katjav, szavazás törlésről, műhelyek… + mindezek vitalapjai, ha szükséges)  
  7. Nemzetköziesítés 1. (archívumkeresés és -rendezés)   
  8. Nemzetköziesítés 2. (dátumfelismerés és -rendezés, sablonfelismerés, táblázat kialakítása és rendezhetősége…)  
  9. Kiterjesztés tetszőleges archívumokra, személyes használatra is   
  10. Kiterjesztés a korai wikitörténelemben használt eltérő dátumformátumokra  
  11. Összehasonlítás a meglévő tartalomjegyzékkel, hogy csak változás esetén fusson  
  12. Útmutató végfelhasználóknak magyarul   (Az angol változat itt látható.)
  13. Útmutató botgazdáknak  
  14. Beillesztés a Pywikipedia disztribúcióba  

A szakaszok és szakaszcímek feldolgozásával kapcsolatos képességek és hibák

szerkesztés
Elemzés
Feladat Státusz Megjegyzés
A szakaszok elhatárolása a másodszintű címek alapján    
Az első szintű címek és az első másodszintű cím előtti rész figyelmen kívül hagyása   Ez okozta a problémát az archiválóbot működésében a WP:BÜRÜ-n.
A szakaszon belüli harmad- és további szintű alcímek kigyűjtése    
A nowiki/pre/source stb. (?) tagek közé tett címek figyelmen kívül hagyása    
Formázás
Feladat Státusz Megjegyzés
Az alcímek megfelelő szintű behúzása    
A szakaszcímek kattinthatóvá tétele   Alapesetben működik, lásd a lenti speciális eseteket is.
Szöveggel ellátott belső linkek helyettesítése a szakaszcímben   [[link|szöveg]]→szöveg (egy címben több is lehet)
Szöveg nélküli belső linkek és az esetleges kettőspont eltávolítása szakaszcímből   [[link]]→link, [[:link]]→link (egy címben több is lehet)
Szöveggel ellátott külső linkek helyettesítése a szakaszcímben   [link szöveg]→szöveg; http, https, ftp protokollal (egy címben több is lehet)
Szöveg nélküli külső linkek eltávolítása szakaszcímből   [link]→link; http, https, ftp protokollal (egy címben több is lehet)

Nincs tesztelve, még nem találtam rá példát!

A dőlt és félkövér formázás eltávolítása a szakaszcím linkjéből, hogy kattintható legyen a cím   Egyszerűsített algoritmus: a bot minden '' karaktersorozatot eltávolít, amely legalább két aposztrófból áll (nem ellenőrzi a paritást). A megjelenő címben megmarad az eredeti formázás.
A szakaszcímbe írt sablonok helyettesítése   Semmi kedvem újraírni a parsert vagy kiböngészni, milyen algoritmussal készít ezekből szakaszcímet a MediaWiki. A felhasználói kreativitás úgyis kimeríthetetlen! Ezek a címek csúnyán és kattinthatatlanul, de olvashatóan fognak megjelenni. Olvasásukhoz kattintsál valamelyik szomszédos címre, és görgess.
A szakaszcímbe írt HTML-tagek, HTML-szerű wikikódok és mindenféle bűvészkedés vagy feketemágia helyettesítése  

A dátumfeldolgozás algoritmusa

szerkesztés

A szabványos dátum fogalmát lásd itt: Szerkesztő:Cherybot/config#Rossz timestamppel jelölt szakaszok

  1. A bot kigyűjti és sorba rendezi a szakaszban talált szabványos dátumokat. Ebből lesz az első és utolsó hozzászólás dátuma napra pontosan, valamint a hozzászólások becsült száma.  
  2. Ha nincs dátum, kérdőjelek kerülnek a helyére.  
  3. A hozzászólások számában figyelmen kívül hagyja a dátumozott megoldva/függőben sablonokat.  
  4. A hozzászólások számához hozzáadja a dátumozatlan ai/aláíratlan/szerző sablonok számát.  
  5. Ha a hozzászólások fenti módon becsült száma nulla, akkor egyet ír. (Feltehetően egy darab aláíratlan hozzászólás volt, nulla hozzászólásos szakasznak nincs értelme.)  
  6. A nem szabványos dátumokkal és a teljesen aláíratlan hozzászólásokkal, amelyeken még sablon sincs, nem tudok foglalkozni.  
  7. Alternatív dátumformátum felismerése a nagyon régi lapokon (az egységes Kocsmafalon és a Portán vannak 2003 augusztus 20 17:09 (UTC) típusú dátumok (később CET zónával)  

Mit tehetsz a tartalomjegyzék használhatóságáért te?

szerkesztés
 
  • Mindig szabályosan, a ~~~~ jelekkel írd alá a hozzászólásaidat, vagy szükség esetén öt tildével írjál dátumot.
  • Az aláíratlan hozzászólásokat lásd el a {{ai}}/{{aláíratlan}}(?)/{{szerző}}(?) sablonok valamelyikével oly módon, hogy a második paraméterben megadod a szabványos dátumot is. Ehhez a laptörténetből kimásolt dátumot kell egy szóközzel elválasztva kiegészíteni nyári időszámítás idején a (CEST), zónaidő használata („téli időszámítás”) idején a (CET) karaktersorozattal. Ezzel az archiválóbotot is segíted. (Ha például egy – amúgy helyesen – megválaszolatlan trollkodásban egyáltalán nincs szabványos dátum, akkor örök időkig ott fog díszelegni, mivel Cherybot is ezt keresi a szakaszban, akár rejtett megjegyzés formájában is.)
    • Példa: {{aláíratlan|Gipsz Jakab|2011. április 3., 13:53 (CEST)}} (Nem substoljuk!)
  • Használj kifejező, informatív szakaszcímeket! A „Kérdés” vagy a „:-)” használhatósági értéke pontosan nulla.
  • Mellőzd a sablonok, lábjegyzetek, HTML-kódok és HTML-szerű wikikódok használatát a szakaszcímben. Az ilyesmi a szakasz törzsébe való. (A belső és külső linkeket, dőlt és félkövér betűket tudja kezelni a bot.)
  • Tartsd együtt az összetartozó megbeszéléseket, a már folyó ügyekben nyitott újabb szakaszokat pedig helyezd át a korábbi szakasz alá harmadszintű címmé (===Alszakasz===) lefokozva.

Lásd még

szerkesztés

Megjegyzés

szerkesztés
  1. 2011 áprilisának elején, a bot beüzemelésekor a legnagyobb archívummal rendelkező egyéb kocsmafal 101 archivált allapot és több mint 3000 szakaszt tartalmazott. Ez 3000 soros táblázatot jelent.