„Szerkesztő:Gyimbot” változatai közötti eltérés
Nincs szerkesztési összefoglaló |
|||
2. sor: | 2. sor: | ||
== Összegképlet robot == |
== Összegképlet robot == |
||
'''Az összegképlet robot az API változása miatt jelenleg nem üzemel. Az utolsó feltöltött adat állapota 2014. augusztus 17. Részletek [[#uzemszunet|alább]].''' |
|||
Az összegképletek összegyűjtésekor a bot az alábbi szócikkekbe ír: |
Az összegképletek összegyűjtésekor a bot az alábbi szócikkekbe ír: |
||
{| border="1" |
{| border="1" |
||
121. sor: | 123. sor: | ||
A feltöltő [[Szerkesztő:Gyimbot/robot|shell szkript]] a wiki alkönytár teljes tartalmát feltölti a Szerkesztő:Gyimbot alkönyvtáraiba, a filenévvel azonos szócikk névre. |
A feltöltő [[Szerkesztő:Gyimbot/robot|shell szkript]] a wiki alkönytár teljes tartalmát feltölti a Szerkesztő:Gyimbot alkönyvtáraiba, a filenévvel azonos szócikk névre. |
||
{{anchor|uzemszunet}} A feltöltő shell-script alábbi sora az API változása miatt nem működk: |
|||
<syntaxhighlight lang="bash"> |
|||
$WGET --load-cookies $KUKI -O $FILE --post-file $MUNKA \ |
|||
"$URL/api.php?action=edit&bot&format=$FORMAT&title=$CIM&recreate&token=$TOKEN" |
|||
</syntaxhighlight> |
|||
A <tt>$FILE</tt>-be visszaadott érték korábban: |
|||
<pre> |
|||
Array |
|||
( |
|||
[edit] => Array |
|||
( |
|||
[result] => Success |
|||
[pageid] => 345 |
|||
[title] => Sablon:Berilliumvegyületek |
|||
[nochange] => |
|||
) |
|||
) |
|||
</pre> |
|||
A változás után: |
|||
<pre> |
|||
Array |
|||
( |
|||
[warnings] => Array |
|||
( |
|||
[txt] => Array |
|||
( |
|||
[*] => format=txt has been deprecated. Please use format=json instead. |
|||
) |
|||
) |
|||
[servedby] => mw1207 |
|||
[error] => Array |
|||
( |
|||
[code] => mustposttoken |
|||
[info] => The 'token' parameter must be POSTed |
|||
) |
|||
) |
|||
</pre> |
|||
=== Teendők === |
=== Teendők === |
||
* {{pipa}} {{sl|DISPLAYTITLE}} a vegyületek nevében |
* {{pipa}} {{sl|DISPLAYTITLE}} a vegyületek nevében |
A lap 2014. szeptember 7., 20:48-kori változata
A bot elsődleges feladata a magyar Wikipédia kémiai lapjairól összegyűjteni az összegképleteket. A másik alkalmazása lapok újraparszolása.
Összegképlet robot
Az összegképlet robot az API változása miatt jelenleg nem üzemel. Az utolsó feltöltött adat állapota 2014. augusztus 17. Részletek alább.
Az összegképletek összegyűjtésekor a bot az alábbi szócikkekbe ír:
A botot Gyimhu üzemelteti.
A legutolsó dump dátuma: 2024. május 2.
- az utolsó futás ideje: 2014. szeptember 7.
- a használt adatbázis dump: http://dumps.wikimedia.org/huwiki/20140907/ szeptember 7.]
- Géppel felismert vegyület: 1972
- Hibásan felismert (a fentin felül): 8
- Kézzel hozzáadott vegyület: 34
- Vegyület összesen: 2006
- Felismert összegképlet: 1879
- Fel nem ismert összegképlet: 93
- Kézzel megadott összegképlet az új vegyületekkel együtt: 73
- Összegképlet összesen: 1952
- DISPLAYTITLE: 16
A robot futtatása
- A wikidump letöltése. Futási idő 10–15 perc.
- A mysql táblák létrehozása indexek nélkül. A huwiki-n a mediawiki verziójának változásával a szkript változhatik. A végrehajtási idő olyan rövid, hogy nem mérhető.
- A huWiki importálása:
java -jar mwdumper.jar pages-articles.xml
. A futási idő kb. negyed óra. - Indexek létrehozása a beimportált táblákra. Futási idő 3–4 perc.
- Munkatábla létrehozása az összegképleteket tartalmazó szócikkek számára. Memóriakorlátos a régi konfigurációban, ezért érdemes leállítani a gnome-ot és saját wikit. Az új konfigurációban diszkkorlátos. Futási idő a régi konfigurációban 4–4½ óra, az újban 3½ perc. (!)
- A kézi javítólista utolsó változtatásainak ellenőrzése, eltárolás a helyi filerendszerben (kezi.txt).
- Az összegképletek kigyűjtése
- A wiki-lapok generálása, feltöltés a helyi wiki-be ellenőrzés céljából.
- statisztika előállítása, jelen lap kézi szerkesztése. A kapott lap összevetése a helyi wiki összegképlet lap| utolsó és utolsó előtti változatának különbségével. A új, összegképlet nélküli lapok ellenőrzése, szükség esetén az összegképlet javítása és az összegképlet kézi megadása. (A következő futtatáskor ne felejtsük el törölni a javított összegképletű lapokat a kézi listából.) A vegyületekben szereplő elemek számának változása esetén a wtabl.c program módosítása.
- az utolsó letöltés óta keletkezett új lapok letöltése, kézi javítása, a kémia munkacsoport lapjának szerkesztése
- a lapok feltöltése huwiki-be.
Konfiguráció
- processzor: 2 darab 2-magos Intel(R) Core(TM) i5-3210M, 2.5 GHz
- memória: 4G
- operációs rendszer: debian 7.4 (wheezy)
Szükséges csomagok: mysql, libmysqlclient-dev, gcc, wget, openjdk-6-jre.[1]
A wikidump letöltése
FNEV=pages-articles.xml.bz2 rm -f $FNEV wget -t1 "http://dumps.wikimedia.org/huwiki/latest/huwiki-latest-pages-articles.xml.bz2" -O - | bunzip2 -c >$FNEV
Az összegképletek kigyűjtése
- Az összegképlet lapok generálása. A gépi listát (gepi.txt) előállító program (hufo) C nyelven íródott, futási ideje kb. egy perc. Ez a robot magja.
Az összegképlet-lista egyszerű szövegfile. Két példasor:
Aceton-peroxid Aciklovir|C=8|H=11|N=5|O=3
Az eredményfile-ban minden munkatáblabeli szócikk szerepel, ami nincs a tiltólistán (a kézi javítólista összegképlet nélküli sorai). Az első sorban a C-program nem találta meg az összegképletet, a másodikban a szócikkbeli összegképlettel azonos sorrendben sorolta fel az elemeket.
Ugyanilyen szerkezetű a kézi javítólista is. A lapgeneráló automatikusan összedolgozza a kettőt.
Ugyanez a program gyűjti ki és írja file-ba a DISPLAYTITLE sablonokat. A teljes eredményfile (hufo.ali):
Alfa-ketoizokapronsav|''alfa''-Ketoizokapronsav B12-vitamin|B<sub>12</sub>-vitamin Delta-valerolakton|''δ''-Valerolakton Dinitro-orto-krezol|Dinitro-''orto''-krezol Gamma-valerolakton|''γ''-Valerolakton N-klórszukcinimid|''N''-klórszukcinimid N-metilkoniin|''N''-Metilkoniin P-Toluolszulfonsav|''p''-Toluolszulfonsav Terc-butil-bromid|''terc''-Butil-bromid
A wiki-lapok generálása
A lapgeneráló lelke két C-program. Mindkettő a fent leírt összegképlet-file-t olvas be.[2] A wossz lista, a wtabl táblázat alakú weblapot állít elő.
Az első paraméter az összegképlet-file. Ha a program második filenevet is kap, kiírja az elemgyakoriságokat is (melyeket egyébként is figyel a táblázatos weblap miatt).
A lapokat egyetlen shell szkript állítja elő a fenti két C-program segítségével. Az összegképlet-listába bedolgozza az elemgyakoriságot egy második oszlopba. Az elemekre szűkített táblázatoknál a wtabl inputja a hufo.txt elemre szűrt változata. Az elemek listáját és a generálandó file-ok nevét a wiki.txt tartalmazza.
A lapok a wiki alkönyvtárban keletkeznek, a szócikk nevével azonos filenévvel.
A lapok feltöltése a magyar Wikipédiára
A műveletet a wiki-terminológia nem feltöltésnek, hanem edit-nek nevezi.
A feltöltő shell szkript a wiki alkönytár teljes tartalmát feltölti a Szerkesztő:Gyimbot alkönyvtáraiba, a filenévvel azonos szócikk névre.
A feltöltő shell-script alábbi sora az API változása miatt nem működk:
$WGET --load-cookies $KUKI -O $FILE --post-file $MUNKA \
"$URL/api.php?action=edit&bot&format=$FORMAT&title=$CIM&recreate&token=$TOKEN"
A $FILE-be visszaadott érték korábban:
Array ( [edit] => Array ( [result] => Success [pageid] => 345 [title] => Sablon:Berilliumvegyületek [nochange] => ) )
A változás után:
Array ( [warnings] => Array ( [txt] => Array ( [*] => format=txt has been deprecated. Please use format=json instead. ) ) [servedby] => mw1207 [error] => Array ( [code] => mustposttoken [info] => The 'token' parameter must be POSTed ) )
Teendők
-
{{DISPLAYTITLE}}
a vegyületek nevében - helyközök a vegyületek nevében
- a fenti két névformázás a hiányzó összegképleteknél is
- botstring wget-ben
{{kisbetűscím}}
(?): 250 darab. Ebből kémia:- Alfa-propiolakton 11611631
- Α-ketoglutársav 12382187
Újraparszolás
A wiki a szócikk mentésekor hozza létre a szócikk hivatkozásait. Ha a szócikk által hívott sablonok változnak, a hivatkozások ezt nem követik. Erre szolgál a reparse. A filelist.txt-ből veszi az újraparszolandó lapok listáját. Lekérdezi és változtatás nélkül visszatölti őket.
A laptörténetben ebből semmi nem látható, de a hívott sablonok hivatkozásai megváltoznak.
Jegyzetek
- ↑ Vagy más Java-csomag, mely képes az mwdumper.jar-t futtatni.
- ↑ A két program ugyanazokból a forrásfile-okból áll. A különbség a C-fordítónak adott kapcsoló, melyet a main()- tartalmazó C-programban az
#ifdef
preprocesszor-utasítás figyel.