202
edits
Neustradamus (talk | contribs) m |
Neustradamus (talk | contribs) m |
||
Line 5: | Line 5: | ||
===Abstract=== | ===Abstract=== | ||
XEP-0050 (http://xmpp.org/extensions/xep-0050.html) describes the Ad-Hoc Commands extension to | XEP-0050 (http://xmpp.org/extensions/xep-0050.html) describes the Ad-Hoc Commands extension to XMPP protocol. It allows building user-friendly remote interfaces to XMPP applications like bots or other XMPP clients. XEP-0060 (http://xmpp.org/extensions/xep-0060.html) describes a generic protocol to publish data and notify users about new content. Both can be used to create an XMPP-based discussion groups, similar to Usenet. My goal is to implement both protocols in Gajim - XMPP client written in Python, then build a pubsub-based discussion groups service. | ||
===Python, xmpppy and Gajim=== | ===Python, xmpppy and Gajim=== | ||
Python is a very easy to use scripting language. It was developed to allow writing software fast and without bugs. I like it very much, so I choosed xmpppy library and Gajim | Python is a very easy to use scripting language. It was developed to allow writing software fast and without bugs. I like it very much, so I choosed xmpppy library and Gajim XMPP client to work on. xmpppy is very modular XMPP library, which was used for example to write transport to irc. Gajim is a relatively new XMPP client. Despite that it already has many features, like avatars, file transfer and MUC. | ||
===Discussion groups=== | ===Discussion groups=== | ||
Why yet another protocol? There are already such things like Usenet, mailing lists and web-based forums. Actually, they have one common disadvantage for me: they aren't | Why yet another protocol? There are already such things like Usenet, mailing lists and web-based forums. Actually, they have one common disadvantage for me: they aren't XMPP based ;-). All of them are based on the "pull"-type protocols, that often have no means of notifying the user of new content, user needs to check periodically for it. They also have other drawbacks: doesn't allow to easily browse older messages (mailing lists), are uncomfortable (forums), provide no means to configure service by user (usenet). Besides, PubSub looks like it was written to make a board :-). | ||
The payload of pubsub items are simply an atom entries. Some fields of entry are filled by posting user agent, some by the server (these are marked with asterix (*). Elements used by the implementation are: | The payload of pubsub items are simply an atom entries. Some fields of entry are filled by posting user agent, some by the server (these are marked with asterix (*). Elements used by the implementation are: | ||
Line 53: | Line 53: | ||
* (2006.07.22) My branch of Gajim can now receive notifications from pubsub.com, when logged in to their server. Some GUI glitches left. | * (2006.07.22) My branch of Gajim can now receive notifications from pubsub.com, when logged in to their server. Some GUI glitches left. | ||
* (2006.08.08) The service bot can list groups, subscribe and unsubscribe jids. I will soon publish its code. Gajim can present the list of nodes, now working on (un)subscribing UI. I had small delays, but now everything is ok. | * (2006.08.08) The service bot can list groups, subscribe and unsubscribe jids. I will soon publish its code. Gajim can present the list of nodes, now working on (un)subscribing UI. I had small delays, but now everything is ok. | ||
* (2006.08.19) The service agent works, Gajim allows to send messages and receive them (actually as single messages, there's now special gui for now - this means that after subscribing to a node using gajim user can get messages using any | * (2006.08.19) The service agent works, Gajim allows to send messages and receive them (actually as single messages, there's now special gui for now - this means that after subscribing to a node using gajim user can get messages using any XMPP client capable of displaying messages with subjects). I had some delays due to family affairs, but now it is done! Now I'm going to finish the data forms wrapper. After that I'll start extending groups service, a post-SoC effect :-). | ||
[[Category:Summer of Code 2006]] | [[Category:Summer of Code 2006]] |
edits