Преди време пуснах версия 0.30 бета 1 на една от любимите ми играчки – Apibot. А сега дойде време и за 0.30 бета 2. 🙂
Понякога се учудвам как успявам да хвърля толкова труд по подобна глупорийка, при положение, че съм толкова зает иначе. Отговорът е прост – работата по Apibot не ме обвързва с каквато и да е отговорност, и мога да я отмятам на независимо колко кратки пресекулки, докато върша някаква друга работа. А в компютърджийската работа такива пресекулки винаги има… Крайният резултат е, че глупорийката неусетно се превърна в един от най-мощните бот софтуери за МедияУики, които изобщо съществуват.
Да, смея да го кажа. В сферата на PHP ботовете най-хваленият и рекламиран напоследък е Peachy. Когато го огледах обаче, едва се сдържах да не се усмихна иронично. Да, кодът му е чудесен, и е правен с много мерак, но пред Apibot е меко казано хилав, поне засега. Играчката ми вече поддържа на практика пълната функционалност на API-то на МедияУики; за някои неща, поддържани само от най-новите версии на API ниво, използва и уеб-базирани fallback възможности. А надстроената рамка от итератори и екшънобекти на практика няма аналог в съществуващите бот софтуери. Уж любителско губи-време, но напоследък започна да се превръща в лего за сглобяване на атомни самолетоносачи.
Не зная доколко е справедливо да нарека последния си релийз “бета 2”. Основният модул и модулът с екшънобектите са почти изцяло пренаписани. Изчистени са кошмарни количества бъгове, добавени са много нови функционалности, екшънобектите започнаха да работят с почти де що им подадеш. Има още едно-две бъгчета, които ме тормозят (и може би стотина-двеста, които още не съм открил 🙂 ), но като цяло тази версия вече започва да се доближава до добра използваемост и за хора със само най-основна представа от PHP.
Нахвалих ли си гарджето? 🙂 Естествено, недостатъци има. Иска ми се да открия колкото се може повече от пропуснатите бъгове (за това може да ми помогне всеки, който желае да пробва Apibot), и да ги изчистя. Ако го дъвча повечко време, може би ще се съберат достатъчно оползотворени откъслечни секунди, за да успея да вкарам и автоматично проучване на уикито отсреща за поддръжка на модули, повиквания и параметри, и автоматично съобразяване с нея. (Към момента това се прави грубовато, чрез определяне на версията на МедияУики, и твърдо набити правила коя версия какво поддържа.) Може би ще има време да драсна и още някой уеб-базиран fallback за по-новите в API-то функции… Но поне засега съм решил – следващият релийз ще бъде официалната верся 0.30.
При това положение, струва ли си човек да го взима и пробва още отсега? Според мен – твърдо да. Между бета 1 и бета 2 имаше доста преименуване на функции и класове, заради изчистването на модела. Вече обаче той е изчистен достатъчно, за да се надявам да не се наложи повече преименуване – тоест, API-то на бота е на практика стабилно. Казано на български, каквито задачки напишете за него, вероятно ще работят без промени и на официалната версия, а надявам се, и на следващите версии. 🙂
Затова, ако работата с бот за МедияУики ви интересува, заповядайте на apibot.zavinagi.org. Освен последната му версия там има и сравнително прилична документация. (Примерите засега са рехавки, но смятам да добавям при възможност.)
И разбира се, ботът е свободен софтуер. И доколкото зависи от мен, винаги ще бъде. 🙂