Python XMPP Client: Difference between revisions

From Wildsong
Jump to navigationJump to search
Brian Wilson (talk | contribs)
Brian Wilson (talk | contribs)
Line 1: Line 1:
== Overview ==
== Overview ==


Objective 1: build a client in python that will read gpsd data and send position updates via XMPP.
=== Projects ===


Objective 2: build a client in python that receives location messages and dumps them in a console window.
# Build a publisher client in python that will read gpsd data and send position updates via XMPP.
 
# Build a subscriber client in python that receives location messages and dumps them in a console window.
Objective 3: build an APRS <-> XMPP gateway
# Extend the subscriber to have it write to a database.
# Build an APRS <-> XMPP gateway


== Ubuntu tools ==
== Ubuntu tools ==

Revision as of 23:55, 27 May 2013

Overview

Projects

  1. Build a publisher client in python that will read gpsd data and send position updates via XMPP.
  2. Build a subscriber client in python that receives location messages and dumps them in a console window.
  3. Extend the subscriber to have it write to a database.
  4. Build an APRS <-> XMPP gateway

Ubuntu tools

Looking in Synaptic on Ubuntu I see these interesting things.

Framework for building bots for IRC, XMPP and the Web

JSONBOT is a remote event-driven framework for building bots that talk JSON to each other over XMPP. This distribution provides bots built on the JSONBOT framework for console, IRC, XMPP for the shell and WWW, and XMPP for the Google App Engine. A plugin infrastructure can be used to write your own functionality.

Jabber client using Qt

Psi is a free instant messaging application designed for the Jabber (XMPP) IM network (including Google Talk). It has full Unicode support, and supports most important XMPP features like file transfer, group chat, encryption etc.

Psi relies on the qca2 library for its encryption features. Therefore, it's necessary to install libqca2-plugin-ossl for SSL (client-to-server) encryption and libqca2-plugin-gnupg for PGP (end-to-end) encryption.

Client libraries

Options for client libraries I am considering include PyXMPP, SleekXMPP, and Twisted.

PyXMPP2 website: https://github.com/Jajcus/pyxmpp2#readme Version 2 looks like it might not be ready.

Sleek website: https://github.com/fritzy/SleekXMPP/wiki

Twisted website: http://twistedmatrix.com/

Location sender

Location receiver

APRS XMPP gateway

Only a few people have already done this but none of them was me! :-)

http://www.aprs4r.org/cgi-bin/trac.cgi/wiki/APRSXMPPGateway

An old but interesting blog entry. http://serendipity.ruwenzori.net/index.php/2008/10/23/xmpp-geographic-presence-for-local-social-networks