Back to site
Since 2004, our University project has become the Internet's most widespread web hosting directory. Here we like to talk a lot about web development, networking and server security. It is, after all, our expertise. To make things better we've launched this science section with the free access to educational resources and important scientific material translated to different languages.

Pyton-jabberbot

jabberbot: Jednostavan okvir za stvaranje Jabber / XMPP botova i usluga u Python- u


Programiranje svog Jabber bota, može biti zabavno i korisno. Ovo je python-jabberbot, Jabber bot okvir za Python koji vam omogućava da lako pisete jednostavne Jabber botove. Možete da koristite Jabber botove za pristup informacijama o vašim tekućim sistemima, da omogucite interakciju vaseg sajta sa vašim posetiocima, ili da vas obavesti o ažuriranjima ili promenama koje pratite sa vase Python skripte.

[[...] Sada imam "bot bug" i zelim da napišem botove za sve vrste stvari, jer to je tako lako da se uradi. Hvala još jednom!

Ovaj Jabber bot je delimično inspirisan xmpppy example bot.py, ali je namenjen da bude ponovo upotrebljiv i da se lako napise malim Jabber botovima koji rade jednu stvar i to rade dobro.

Licenca: GNU General Public License, Verzija 3 ili kasnija (GPLv3)

Mailing lista

Mi sada imamo mailing listu za razmatranje razvoja JabberBot modula:

Od cega zavisi

Dokumentacija

Debian paket

Zahvaljujući Karlu Chenet- u, python-jabberbot je sada dostupan kao Debian paket, za jednostavnu instalaciju na Debian- u i izvedenim sistemima:

Skidanje (download)

Current version: jabberbot-0.15.tar.gz (Released: 2012-03-08)

Razvoj spremišta (GIT)

Možete dobiti najnoviji i najveći kod preko Git:

git clone git://git.code.sf.net/p/pythonjabberbot/code

Istorija izdanja

  • 2007-07-28: Initial release
  • 2007-09-17: Merged patch from John Martinez
  • 2007-10-19: Merged patch from Dan Sanders
  • 2008-07-12: Add setup.py, prepare for CheeseShop, tarball
  • 2008-11-26: Add TwitterBot example
  • 2009-01-25: Fix dependency checking
  • 2009-11-01: JabberBot 0.7 released with patches from Pat Notz
  • 2009-11-06: JabberBot 0.8 released (fixed code examples on website + examples/ in the source)
  • 2009-12-23: JabberBot 0.9 released (better help display; adding missing COPYING file)
  • 2010-07-30: JabberBot 0.10 released (XMMP TUNE support, XHTML support, command name overriding, suppressed default response and custom MUC usernames)
  • 2011-01-22: JabberBot 0.11 released (various bugfixes, XMPP MUC base class and examples)
  • 2011-02-10: JabberBot 0.12 released (support for private subscription domains; contributed by David O'Rourke)
  • 2011-04-04: JabberBot 0.13 released (support "own" messages; contributed by Rene Mayrhofer)
  • 2011-07-31: JabberBot 0.14 released (various bugfixes and minor feature enhancements)
  • 2012-03-08: JabberBot 0.15 released (command prefixes, custom handlers, pep8, experimental threading support)

Sadašnji ChangeLog uvek možete naći na http://sourceforge.net/p/pythonjabberbot/code/ and the i stari ChangeLog je još uvek dostupan.

Upotreba

  1. Uvoz klase: od jabberbot uvoza do JabberBot, botcmd
  2. Podklasa JabberBot-a
  3. Dodajte metode i ukrasite ih sa "@ botcmd". Potpis metoda bi trebalo da izgleda ovako: def somecommand(self, mess, args) - metode bi trebalo da vrate poruku poslatu nazad do korisnika kao string (ili nijednu, ako komanda ne daje nikakav odgovor)
  4. Kreirajte instancu od svog bota, snabdevanjem korisničkog imena i lozinke
  5. CNazovite serve_forever() metod vašeg primera
  6. Možete pozvati send() metod bota za slanje poruka određenim korisnicima

Primer koda

from jabberbot import JabberBot, botcmd
import datetime

class SystemInfoJabberBot(JabberBot):
@botcmd
def serverinfo( self, mess, args):
"""Displays information about the server"""
version = open('/proc/version').read().strip()
loadavg = open('/proc/loadavg').read().strip()

return '%s\n\n%s' % ( version, loadavg, )

@botcmd
def time( self, mess, args):
"""Displays current server time"""
return str(datetime.datetime.now())

@botcmd
def rot13( self, mess, args):
"""Returns passed arguments rot13'ed"""
return args.encode('rot13')

@botcmd
def whoami(self, mess, args):
"""Tells you your username"""
return mess.getFrom().getStripped()

username = 'my-jabberid@jabberserver.example.org'
password = 'my-password'
bot = SystemInfoJabberBot(username,password)
bot.serve_forever()

Još primera

Pocnite od verzije 0.7, više primera mogu se naći u examples/ poddirektorijumu izvora distribucije.

Screenshot

Screenshot

Povezani projekti

Yoan Blanc je uradio sličan projekat koristeći Python i Twisted okvir: A IM bot as an user interface (kind of) (bot kao korisnički interfejs (vrsta)).

Projekti koji koriste pithon-jabberbot

  • Hubert Chathi's System status bot
  • John Sullivan's SnakeBot
  • Jay Parlar's Prowl (iPhone) Jabberbots
  • Vicent Tamarit's TVBot (korišćenjem prirodnog jezika procesiranja)
  • Gareth Rushgrove's LastBot (Lični LastFM traži bot)
  • René Mayrhofer's dvcs-autosync (open source zamena za Dropbox)
  • Guillaume Binet's err (plugin-bazirani XMPP chatbot dizajniran tako da bude lak za razmeštanje, proširivanje i održavanje)

Published (Last edited): 22-02-2013 , source: http://thp.io/2007/python-jabberbot/