jabberリモート管理ボットにxmpppyライブラリを使用していますが、ファイルを送受信して指定されたディレクトリ内に保存する方法が見つかりません。ドキュメントは貧弱で例はありませんが、私は本当にそれを作りたいと思っています。誰かがそれについてのいくつかの例やいくつかのリンクを示すことができますか?または、別のxmppバインディングを使用する必要がありますか?
2 に答える
ファイル転送をカバーする2つのXEP(XMPP拡張機能)があります:XEP-0096 http://xmpp.org/extensions/xep-0096.html(SI(Stream Initiated)File Transferと呼ばれます)とXEP-0234 http:// xmpp .org / extendeds / xep-0234.html(ジングルファイル転送)
XEP-0096はオリジナルのものですが、ほとんどのライブラリとほとんどのクライアントで(ご存知のように)実装されることはめったにありません。XEP-0234ははるかに新しく、最新のクライアントにはありますが、古いライブラリ(xmpppyなど)にはありません。これらのいずれかのライブラリまたは実装を見つけた場合でも直面する問題は、接続の両側にもそれらを実装する必要があることです。
2つのうち、XEP-0234を選択します。これは、オリジナルが持っていたかなりの数の問題をカバーしており、それに代わるものと見なされているためです。
Pythonライブラリに関する限り、Pythonライブラリはサポートしていません。私はxmpppy、headstock、pyxmpp、jabber.py、ねじれた言葉、そして私のお気に入りのsleekxmpppを見てきました。
xmpppyにはモジュールxmpp.filetransferがあります。
このモジュールには、JEP-0047の単純な実装であるIBBクラスが含まれています。これは単なるデータの転送であることに注意してください。前にデータ転送についてネゴシエートする必要があります(おそらくStreamInitiationを介して)。残念ながら、SIはまだ実装されていません。