-r--r--r--

Skype Bots

Lai gan arī Skype tagad ir nedaudz dziļākās problēmas ar eksistēšanu, kā tādu, es rakņājoties pa backup krājumiem (kurus, kā īsts vecis bieži neveicu) atradu 2008. gada pavasarī rakstītu programmu, par kuru biju piemirsis. Tas bija kā viens no treniņiem, lai es kaut cik sevi iepazīstinātu ar C# un Skype4COM, lai gan ja es to veidotu tagad noteikti būtu izvēlējies Python un Skype4Py (tomēr cross-platform bla-bla).

Viss veidots caur Visual C# 2008 Express Edition, ja Tev būs kāda vēlme to pārkompilēt :) Pašā būtība tas ir elementārs Skype bots, kas izdzirdot kādu noteiktu komandu ceņšās atbildēt prasītājam, veicot pieprasījumu uz serveri tā uzzinot atbildi un māk izziņot jaunumus tajās sarakstēs, kuras uz to ir parakstījušās.

Tā kā veidojot man nebija ne mazākās idejas, kad kādreiz šo es publicēšu publikai, lietotāja UI ir mazliet dīvains, neērts un nesaprotams, bet šeit nu es nākšu palīgā un vieglos vārdu vilcienos paskaidrošu, kas un kā. Bet vispirms ir jānovelk instalācijas veidnis (vai arī ja neuzticies, tad source kods (diezgan messy, bet vajadzētu kompilēties un ar smieklīgiem komentāriem, vismaz tagad tos lasot)).

Kad instalēšanas/kompilēšanas process ir pabeigts, Tev būtu jāparādās šādam programmas logam (pa vidu vēl tiks prasīta atļauja pieslēgties Skype, kur protams tas ar jāatļauj :).

Šajā loga ir iespējams uzstādīt speciālas sarakstes komandas, kas pēc pieprasījuma atgriezīs vajadzīgo atbildi:

  1. Komanda, lai izsauktu pieprasījumu uz serveri meklējumos pēc atbildes.
  2. Skripta atrašanās uz servera, kas spēj pieņem sekojošos GET mainīgos, ja tādi nepieciešami (paraugs):
    • [MSG] – sarakstes ziņas daļa pēc komandas (piem., ja komanda bija “/foo” un lietotājs pieprasīja “/foo bar”,  tad servera skripts $_GET['msg'] mainīgajā saņems “bar” (PHP gadījumā))
    • [SU] – Skype lietotāja vārds – $_GET['su']
  3. Kādam jābūt bota statusam saņemot ziņu, lai tiktu atbildēts (pats gan nekas šo neesmu izmantojis, bet varbūt kādam noder :)

Otrā lieta, ko bots māk – izziņot jaunumus (jaunus twītus, rakstus vai anything else).

  1. Komanda, lai pierakstītos un atrakstītos no sarakstu ziņu saņemšanas.
  2. Pēc cik ilga laika pārbaudīt vai nav parādījies kaut kas jauns.
  3. Skripta atrašanās uz servera (obligāti nobeigumā ” ? “, diemžēl es nepietaisīju to automātiski, sorry).

Skripta paraugs, lai bez problēmām darbinātu jaunumu izziņotāju, atrodams šeit. Un protams neaizmirsi Start service, lai tas savā nodabā, pēc noteikta laika arī pārbauda vai nav kas jauns jāiemet sarakstē.

Nu tad tas arī būtu viss. Nekas dižs, tik tāds prototips (varbūt kādam radīsies vēl kādas jautrākas idejas), kurš noteikti satur daudz bugu, tāpēc ja lieto zini kad kaut kas var nojukt. Strādājošu šo brīnumu var redzēt, ja uzskaipo lietotājam curdobot. Tad uzprasīt, ko šis māk ar komandu “/palīgā”. Jaukas izpriecas.

1 komentārs

  1. Edijs izteicās:

    Oj, cool. Uzliku, testēju. Viss strādā. Supaa!!! Atliek kodēt skriptus.