I had a quick stab at this. I got it working far enough to let me connect (which is cool) but there are some problems:
• You need to call Wocky.init() manually.
• wocky_porter_register_handler_* need to have GDestroyNotify parameters for their callbacks' user_data. This got me thinking: why do the _by_stanza variants take both the stanza to match, *and* a type & subtype?
• wocky_stanza_build() pretty obviously doesn't work. That's fine, we'll build the trees ourself. But…
• wocky_node_add_child() ends up with you crasing because the return defaults to (transfer full) and so python frees the child node (which is actually owned by the parent) when it falls out of scope. Obviously pretty bad. But changing it to (transfer none) still crashed when you look at parent.children, and I'm not sure why.