Mercurial > sat_tmp
annotate sat_tmp/wokkel/pubsub.py @ 88:298dac50ca73 default tip @
wokkel (pubsub): fix namespace in response of `subscriptionsGet`
author | Goffi <goffi@goffi.org> |
---|---|
date | Thu, 16 Mar 2023 11:57:02 +0100 |
parents | 636d48c2b77a |
children |
rev | line source |
---|---|
8 | 1 # -*- coding: utf-8 -*- |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
2 # -*- test-case-name: wokkel.test.test_pubsub -*- |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
3 # |
6 | 4 # SàT adaptation for wokkel.pubsub |
5 # Copyright (C) 2015 Adien Cossa (souliane@mailoo.org) | |
6 # Copyright (c) 2003-2012 Ralph Meijer. | |
7 | |
8 # This program is free software: you can redistribute it and/or modify | |
9 # it under the terms of the GNU Affero General Public License as published by | |
10 # the Free Software Foundation, either version 3 of the License, or | |
11 # (at your option) any later version. | |
12 | |
13 # This program is distributed in the hope that it will be useful, | |
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 # GNU Affero General Public License for more details. | |
17 | |
18 # You should have received a copy of the GNU Affero General Public License | |
19 # along with this program. If not, see <http://www.gnu.org/licenses/>. | |
20 # -- | |
21 | |
22 # This program is based on wokkel (https://wokkel.ik.nu/), | |
23 # originaly written by Ralph Meijer | |
24 # It is sublicensed under AGPL v3 (or any later version) as allowed by the original | |
25 # license. | |
26 | |
27 # -- | |
28 | |
29 # Here is a copy of the original license: | |
30 | |
31 # Copyright (c) 2003-2012 Ralph Meijer. | |
32 # | |
33 # Permission is hereby granted, free of charge, to any person obtaining | |
34 # a copy of this software and associated documentation files (the | |
35 # "Software"), to deal in the Software without restriction, including | |
36 # without limitation the rights to use, copy, modify, merge, publish, | |
37 # distribute, sublicense, and/or sell copies of the Software, and to | |
38 # permit persons to whom the Software is furnished to do so, subject to | |
39 # the following conditions: | |
40 # | |
41 # The above copyright notice and this permission notice shall be | |
42 # included in all copies or substantial portions of the Software. | |
43 # | |
44 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | |
45 # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | |
46 # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | |
47 # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE | |
48 # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION | |
49 # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION | |
50 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
51 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
52 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
53 XMPP publish-subscribe protocol. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
54 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
55 This protocol is specified in |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
56 U{XEP-0060<http://xmpp.org/extensions/xep-0060.html>}. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
57 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
58 |
86
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
59 from typing import Optional |
69 | 60 from zope.interface import implementer |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
61 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
62 from twisted.internet import defer |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
63 from twisted.python import log |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
64 from twisted.words.protocols.jabber import jid, error |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
65 from twisted.words.xish import domish |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
66 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
67 from wokkel import disco, data_form, generic, shim |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
68 from wokkel.compat import IQ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
69 from wokkel.subprotocols import IQHandlerMixin, XMPPHandler |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
70 from wokkel.iwokkel import IPubSubClient, IPubSubService, IPubSubResource |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
71 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
72 # Iq get and set XPath queries |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
73 IQ_GET = '/iq[@type="get"]' |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
74 IQ_SET = '/iq[@type="set"]' |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
75 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
76 # Publish-subscribe namespaces |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
77 NS_PUBSUB = 'http://jabber.org/protocol/pubsub' |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
78 NS_PUBSUB_EVENT = NS_PUBSUB + '#event' |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
79 NS_PUBSUB_ERRORS = NS_PUBSUB + '#errors' |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
80 NS_PUBSUB_OWNER = NS_PUBSUB + "#owner" |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
81 NS_PUBSUB_NODE_CONFIG = NS_PUBSUB + "#node_config" |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
82 NS_PUBSUB_META_DATA = NS_PUBSUB + "#meta-data" |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
83 NS_PUBSUB_SUBSCRIBE_OPTIONS = NS_PUBSUB + "#subscribe_options" |
73
ab556b1c2ca4
wokkel (pubsub): publish-options parsing/rendering
Goffi <goffi@goffi.org>
parents:
69
diff
changeset
|
84 NS_PUBSUB_PUBLISH_OPTIONS = NS_PUBSUB + "#publish-options" |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
85 |
69 | 86 NS_ORDER_BY = "urn:xmpp:order-by:0" |
58
f4d569dc8e6b
wokkel/mam, wokkel/pubsub, wokkel/rsm: implemented "order-by" protoXEP (for Pubsub and MAM)
Goffi <goffi@goffi.org>
parents:
45
diff
changeset
|
87 |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
88 # XPath to match pubsub requests |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
89 PUBSUB_REQUEST = '/iq[@type="get" or @type="set"]/' + \ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
90 'pubsub[@xmlns="' + NS_PUBSUB + '" or ' + \ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
91 '@xmlns="' + NS_PUBSUB_OWNER + '"]' |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
92 |
13
22f0cb2fa793
tmp(pubsub): added retract "notify" attribute management
Goffi <goffi@goffi.org>
parents:
8
diff
changeset
|
93 BOOL_TRUE = ('1','true') |
22f0cb2fa793
tmp(pubsub): added retract "notify" attribute management
Goffi <goffi@goffi.org>
parents:
8
diff
changeset
|
94 BOOL_FALSE = ('0','false') |
22f0cb2fa793
tmp(pubsub): added retract "notify" attribute management
Goffi <goffi@goffi.org>
parents:
8
diff
changeset
|
95 |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
96 class SubscriptionPending(Exception): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
97 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
98 Raised when the requested subscription is pending acceptance. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
99 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
100 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
101 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
102 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
103 class SubscriptionUnconfigured(Exception): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
104 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
105 Raised when the requested subscription needs to be configured before |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
106 becoming active. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
107 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
108 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
109 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
110 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
111 class PubSubError(error.StanzaError): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
112 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
113 Exception with publish-subscribe specific condition. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
114 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
115 def __init__(self, condition, pubsubCondition, feature=None, text=None): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
116 appCondition = domish.Element((NS_PUBSUB_ERRORS, pubsubCondition)) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
117 if feature: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
118 appCondition['feature'] = feature |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
119 error.StanzaError.__init__(self, condition, |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
120 text=text, |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
121 appCondition=appCondition) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
122 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
123 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
124 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
125 class BadRequest(error.StanzaError): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
126 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
127 Bad request stanza error. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
128 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
129 def __init__(self, pubsubCondition=None, text=None): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
130 if pubsubCondition: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
131 appCondition = domish.Element((NS_PUBSUB_ERRORS, pubsubCondition)) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
132 else: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
133 appCondition = None |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
134 error.StanzaError.__init__(self, 'bad-request', |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
135 text=text, |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
136 appCondition=appCondition) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
137 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
138 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
139 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
140 class Unsupported(PubSubError): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
141 def __init__(self, feature, text=None): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
142 self.feature = feature |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
143 PubSubError.__init__(self, 'feature-not-implemented', |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
144 'unsupported', |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
145 feature, |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
146 text) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
147 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
148 def __str__(self): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
149 message = PubSubError.__str__(self) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
150 message += ', feature %r' % self.feature |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
151 return message |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
152 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
153 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
154 class Subscription(object): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
155 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
156 A subscription to a node. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
157 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
158 @ivar nodeIdentifier: The identifier of the node subscribed to. The root |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
159 node is denoted by C{None}. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
160 @type nodeIdentifier: C{unicode} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
161 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
162 @ivar subscriber: The subscribing entity. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
163 @type subscriber: L{jid.JID} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
164 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
165 @ivar state: The subscription state. One of C{'subscribed'}, C{'pending'}, |
40
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
166 C{'unconfigured'}, C{'none'}. |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
167 @type state: C{unicode} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
168 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
169 @ivar options: Optional list of subscription options. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
170 @type options: C{dict} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
171 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
172 @ivar subscriptionIdentifier: Optional subscription identifier. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
173 @type subscriptionIdentifier: C{unicode} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
174 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
175 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
176 def __init__(self, nodeIdentifier, subscriber, state, options=None, |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
177 subscriptionIdentifier=None): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
178 self.nodeIdentifier = nodeIdentifier |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
179 self.subscriber = subscriber |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
180 self.state = state |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
181 self.options = options or {} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
182 self.subscriptionIdentifier = subscriptionIdentifier |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
183 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
184 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
185 @staticmethod |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
186 def fromElement(element): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
187 return Subscription( |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
188 element.getAttribute('node'), |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
189 jid.JID(element.getAttribute('jid')), |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
190 element.getAttribute('subscription'), |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
191 subscriptionIdentifier=element.getAttribute('subid')) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
192 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
193 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
194 def toElement(self, defaultUri=None): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
195 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
196 Return the DOM representation of this subscription. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
197 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
198 @rtype: L{domish.Element} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
199 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
200 element = domish.Element((defaultUri, 'subscription')) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
201 if self.nodeIdentifier: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
202 element['node'] = self.nodeIdentifier |
69 | 203 element['jid'] = str(self.subscriber) |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
204 element['subscription'] = self.state |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
205 if self.subscriptionIdentifier: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
206 element['subid'] = self.subscriptionIdentifier |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
207 return element |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
208 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
209 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
210 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
211 class Item(domish.Element): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
212 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
213 Publish subscribe item. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
214 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
215 This behaves like an object providing L{domish.IElement}. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
216 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
217 Item payload can be added using C{addChild} or C{addRawXml}, or using the |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
218 C{payload} keyword argument to C{__init__}. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
219 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
220 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
221 def __init__(self, id=None, payload=None): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
222 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
223 @param id: optional item identifier |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
224 @type id: C{unicode} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
225 @param payload: optional item payload. Either as a domish element, or |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
226 as serialized XML. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
227 @type payload: object providing L{domish.IElement} or C{unicode}. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
228 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
229 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
230 domish.Element.__init__(self, (None, 'item')) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
231 if id is not None: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
232 self['id'] = id |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
233 if payload is not None: |
69 | 234 if isinstance(payload, str): |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
235 self.addRawXml(payload) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
236 else: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
237 self.addChild(payload) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
238 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
239 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
240 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
241 class PubSubRequest(generic.Stanza): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
242 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
243 A publish-subscribe request. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
244 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
245 The set of instance variables used depends on the type of request. If |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
246 a variable is not applicable or not passed in the request, its value is |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
247 C{None}. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
248 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
249 @ivar verb: The type of publish-subscribe request. See C{_requestVerbMap}. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
250 @type verb: C{str}. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
251 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
252 @ivar affiliations: Affiliations to be modified. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
253 @type affiliations: C{set} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
254 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
255 @ivar items: The items to be published, as L{domish.Element}s. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
256 @type items: C{list} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
257 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
258 @ivar itemIdentifiers: Identifiers of the items to be retrieved or |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
259 retracted. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
260 @type itemIdentifiers: C{set} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
261 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
262 @ivar maxItems: Maximum number of items to retrieve. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
263 @type maxItems: C{int}. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
264 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
265 @ivar nodeIdentifier: Identifier of the node the request is about. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
266 @type nodeIdentifier: C{unicode} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
267 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
268 @ivar nodeType: The type of node that should be created, or for which the |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
269 configuration is retrieved. C{'leaf'} or C{'collection'}. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
270 @type nodeType: C{str} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
271 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
272 @ivar options: Configurations options for nodes, subscriptions and publish |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
273 requests. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
274 @type options: L{data_form.Form} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
275 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
276 @ivar subscriber: The subscribing entity. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
277 @type subscriber: L{JID<twisted.words.protocols.jabber.jid.JID>} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
278 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
279 @ivar subscriptionIdentifier: Identifier for a specific subscription. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
280 @type subscriptionIdentifier: C{unicode} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
281 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
282 @ivar subscriptions: Subscriptions to be modified, as a set of |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
283 L{Subscription}. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
284 @type subscriptions: C{set} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
285 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
286 @ivar affiliations: Affiliations to be modified, as a dictionary of entity |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
287 (L{JID<twisted.words.protocols.jabber.jid.JID>} to affiliation |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
288 (C{unicode}). |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
289 @type affiliations: C{dict} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
290 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
291 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
292 verb = None |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
293 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
294 items = None |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
295 itemIdentifiers = None |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
296 maxItems = None |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
297 nodeIdentifier = None |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
298 nodeType = None |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
299 options = None |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
300 subscriber = None |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
301 subscriptionIdentifier = None |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
302 subscriptions = None |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
303 affiliations = None |
13
22f0cb2fa793
tmp(pubsub): added retract "notify" attribute management
Goffi <goffi@goffi.org>
parents:
8
diff
changeset
|
304 notify = None |
58
f4d569dc8e6b
wokkel/mam, wokkel/pubsub, wokkel/rsm: implemented "order-by" protoXEP (for Pubsub and MAM)
Goffi <goffi@goffi.org>
parents:
45
diff
changeset
|
305 orderBy = None |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
306 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
307 # Map request iq type and subelement name to request verb |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
308 _requestVerbMap = { |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
309 ('set', NS_PUBSUB, 'publish'): 'publish', |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
310 ('set', NS_PUBSUB, 'subscribe'): 'subscribe', |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
311 ('set', NS_PUBSUB, 'unsubscribe'): 'unsubscribe', |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
312 ('get', NS_PUBSUB, 'options'): 'optionsGet', |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
313 ('set', NS_PUBSUB, 'options'): 'optionsSet', |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
314 ('get', NS_PUBSUB, 'subscriptions'): 'subscriptions', |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
315 ('get', NS_PUBSUB, 'affiliations'): 'affiliations', |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
316 ('set', NS_PUBSUB, 'create'): 'create', |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
317 ('get', NS_PUBSUB_OWNER, 'default'): 'default', |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
318 ('get', NS_PUBSUB_OWNER, 'configure'): 'configureGet', |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
319 ('set', NS_PUBSUB_OWNER, 'configure'): 'configureSet', |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
320 ('get', NS_PUBSUB, 'items'): 'items', |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
321 ('set', NS_PUBSUB, 'retract'): 'retract', |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
322 ('set', NS_PUBSUB_OWNER, 'purge'): 'purge', |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
323 ('set', NS_PUBSUB_OWNER, 'delete'): 'delete', |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
324 ('get', NS_PUBSUB_OWNER, 'affiliations'): 'affiliationsGet', |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
325 ('set', NS_PUBSUB_OWNER, 'affiliations'): 'affiliationsSet', |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
326 ('get', NS_PUBSUB_OWNER, 'subscriptions'): 'subscriptionsGet', |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
327 ('set', NS_PUBSUB_OWNER, 'subscriptions'): 'subscriptionsSet', |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
328 } |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
329 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
330 # Map request verb to request iq type and subelement name |
69 | 331 _verbRequestMap = dict(((v, k) for k, v in _requestVerbMap.items())) |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
332 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
333 # Map request verb to parameter handler names |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
334 _parameters = { |
73
ab556b1c2ca4
wokkel (pubsub): publish-options parsing/rendering
Goffi <goffi@goffi.org>
parents:
69
diff
changeset
|
335 'publish': ['node', 'items', 'publishOptionsOrNone'], |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
336 'subscribe': ['nodeOrEmpty', 'jid', 'optionsWithSubscribe'], |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
337 'unsubscribe': ['nodeOrEmpty', 'jid', 'subidOrNone'], |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
338 'optionsGet': ['nodeOrEmpty', 'jid', 'subidOrNone'], |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
339 'optionsSet': ['nodeOrEmpty', 'jid', 'options', 'subidOrNone'], |
86
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
340 'subscriptions': ['nodeOrNone'], |
37
e8296d7bfeb1
tmp (wokkel/pubsub): fixed affiliations (normal entity) handling
Goffi <goffi@goffi.org>
parents:
36
diff
changeset
|
341 'affiliations': ['nodeOrNone'], |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
342 'create': ['nodeOrNone', 'configureOrNone'], |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
343 'default': ['default'], |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
344 'configureGet': ['nodeOrEmpty'], |
35
79e36496994a
plugin XEP-0060: added setConfiguration/psNodeConfigurationSet + fix in tmp.wokkel.pubsub
Goffi <goffi@goffi.org>
parents:
22
diff
changeset
|
345 'configureSet': ['nodeOrEmpty', 'configureOrNone'], |
58
f4d569dc8e6b
wokkel/mam, wokkel/pubsub, wokkel/rsm: implemented "order-by" protoXEP (for Pubsub and MAM)
Goffi <goffi@goffi.org>
parents:
45
diff
changeset
|
346 'items': ['node', 'maxItems', 'itemIdentifiers', 'subidOrNone', 'orderBy'], |
13
22f0cb2fa793
tmp(pubsub): added retract "notify" attribute management
Goffi <goffi@goffi.org>
parents:
8
diff
changeset
|
347 'retract': ['node', 'notify', 'itemIdentifiers'], |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
348 'purge': ['node'], |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
349 'delete': ['node'], |
40
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
350 'affiliationsGet': ['node'], |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
351 'affiliationsSet': ['node', 'affiliations'], |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
352 'subscriptionsGet': ['node'], |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
353 'subscriptionsSet': ['node', 'subscriptions'], |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
354 } |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
355 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
356 def __init__(self, verb=None): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
357 self.verb = verb |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
358 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
359 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
360 def _parse_node(self, verbElement): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
361 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
362 Parse the required node identifier out of the verbElement. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
363 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
364 try: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
365 self.nodeIdentifier = verbElement["node"] |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
366 except KeyError: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
367 raise BadRequest('nodeid-required') |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
368 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
369 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
370 def _render_node(self, verbElement): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
371 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
372 Render the required node identifier on the verbElement. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
373 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
374 if not self.nodeIdentifier: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
375 raise Exception("Node identifier is required") |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
376 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
377 verbElement['node'] = self.nodeIdentifier |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
378 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
379 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
380 def _parse_nodeOrEmpty(self, verbElement): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
381 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
382 Parse the node identifier out of the verbElement. May be empty. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
383 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
384 self.nodeIdentifier = verbElement.getAttribute("node", '') |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
385 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
386 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
387 def _render_nodeOrEmpty(self, verbElement): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
388 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
389 Render the node identifier on the verbElement. May be empty. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
390 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
391 if self.nodeIdentifier: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
392 verbElement['node'] = self.nodeIdentifier |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
393 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
394 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
395 def _parse_nodeOrNone(self, verbElement): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
396 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
397 Parse the optional node identifier out of the verbElement. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
398 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
399 self.nodeIdentifier = verbElement.getAttribute("node") |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
400 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
401 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
402 def _render_nodeOrNone(self, verbElement): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
403 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
404 Render the optional node identifier on the verbElement. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
405 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
406 if self.nodeIdentifier: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
407 verbElement['node'] = self.nodeIdentifier |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
408 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
409 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
410 def _parse_items(self, verbElement): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
411 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
412 Parse items out of the verbElement for publish requests. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
413 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
414 self.items = [] |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
415 for element in verbElement.elements(): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
416 if element.uri == NS_PUBSUB and element.name == 'item': |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
417 self.items.append(element) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
418 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
419 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
420 def _render_items(self, verbElement): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
421 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
422 Render items into the verbElement for publish requests. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
423 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
424 if self.items: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
425 for item in self.items: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
426 item.uri = NS_PUBSUB |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
427 verbElement.addChild(item) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
428 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
429 |
73
ab556b1c2ca4
wokkel (pubsub): publish-options parsing/rendering
Goffi <goffi@goffi.org>
parents:
69
diff
changeset
|
430 def _parse_publishOptionsOrNone(self, verbElement): |
ab556b1c2ca4
wokkel (pubsub): publish-options parsing/rendering
Goffi <goffi@goffi.org>
parents:
69
diff
changeset
|
431 """ |
ab556b1c2ca4
wokkel (pubsub): publish-options parsing/rendering
Goffi <goffi@goffi.org>
parents:
69
diff
changeset
|
432 Parse optional publish-options form in publish request. |
ab556b1c2ca4
wokkel (pubsub): publish-options parsing/rendering
Goffi <goffi@goffi.org>
parents:
69
diff
changeset
|
433 """ |
ab556b1c2ca4
wokkel (pubsub): publish-options parsing/rendering
Goffi <goffi@goffi.org>
parents:
69
diff
changeset
|
434 for element in verbElement.parent.elements(): |
ab556b1c2ca4
wokkel (pubsub): publish-options parsing/rendering
Goffi <goffi@goffi.org>
parents:
69
diff
changeset
|
435 form = data_form.findForm(element, NS_PUBSUB_PUBLISH_OPTIONS) |
ab556b1c2ca4
wokkel (pubsub): publish-options parsing/rendering
Goffi <goffi@goffi.org>
parents:
69
diff
changeset
|
436 if form is not None: |
ab556b1c2ca4
wokkel (pubsub): publish-options parsing/rendering
Goffi <goffi@goffi.org>
parents:
69
diff
changeset
|
437 if form.formType != 'submit': |
ab556b1c2ca4
wokkel (pubsub): publish-options parsing/rendering
Goffi <goffi@goffi.org>
parents:
69
diff
changeset
|
438 raise BadRequest(text="Unexpected form type '%s'" % |
ab556b1c2ca4
wokkel (pubsub): publish-options parsing/rendering
Goffi <goffi@goffi.org>
parents:
69
diff
changeset
|
439 form.formType) |
ab556b1c2ca4
wokkel (pubsub): publish-options parsing/rendering
Goffi <goffi@goffi.org>
parents:
69
diff
changeset
|
440 else: |
ab556b1c2ca4
wokkel (pubsub): publish-options parsing/rendering
Goffi <goffi@goffi.org>
parents:
69
diff
changeset
|
441 form = data_form.Form('submit', |
ab556b1c2ca4
wokkel (pubsub): publish-options parsing/rendering
Goffi <goffi@goffi.org>
parents:
69
diff
changeset
|
442 formNamespace=NS_PUBSUB_PUBLISH_OPTIONS) |
ab556b1c2ca4
wokkel (pubsub): publish-options parsing/rendering
Goffi <goffi@goffi.org>
parents:
69
diff
changeset
|
443 |
ab556b1c2ca4
wokkel (pubsub): publish-options parsing/rendering
Goffi <goffi@goffi.org>
parents:
69
diff
changeset
|
444 self.options = form |
ab556b1c2ca4
wokkel (pubsub): publish-options parsing/rendering
Goffi <goffi@goffi.org>
parents:
69
diff
changeset
|
445 |
ab556b1c2ca4
wokkel (pubsub): publish-options parsing/rendering
Goffi <goffi@goffi.org>
parents:
69
diff
changeset
|
446 |
ab556b1c2ca4
wokkel (pubsub): publish-options parsing/rendering
Goffi <goffi@goffi.org>
parents:
69
diff
changeset
|
447 def _render_publishOptionsOrNone(self, verbElement): |
ab556b1c2ca4
wokkel (pubsub): publish-options parsing/rendering
Goffi <goffi@goffi.org>
parents:
69
diff
changeset
|
448 if self.options is not None: |
ab556b1c2ca4
wokkel (pubsub): publish-options parsing/rendering
Goffi <goffi@goffi.org>
parents:
69
diff
changeset
|
449 if self.options.formType != 'submit': |
ab556b1c2ca4
wokkel (pubsub): publish-options parsing/rendering
Goffi <goffi@goffi.org>
parents:
69
diff
changeset
|
450 log.err( |
ab556b1c2ca4
wokkel (pubsub): publish-options parsing/rendering
Goffi <goffi@goffi.org>
parents:
69
diff
changeset
|
451 "Invalid type for publish-options form ({formType}): {xml}".format( |
ab556b1c2ca4
wokkel (pubsub): publish-options parsing/rendering
Goffi <goffi@goffi.org>
parents:
69
diff
changeset
|
452 formType = self.options.formType, |
ab556b1c2ca4
wokkel (pubsub): publish-options parsing/rendering
Goffi <goffi@goffi.org>
parents:
69
diff
changeset
|
453 xml = verbElement.toXml()) |
ab556b1c2ca4
wokkel (pubsub): publish-options parsing/rendering
Goffi <goffi@goffi.org>
parents:
69
diff
changeset
|
454 ) |
ab556b1c2ca4
wokkel (pubsub): publish-options parsing/rendering
Goffi <goffi@goffi.org>
parents:
69
diff
changeset
|
455 return |
ab556b1c2ca4
wokkel (pubsub): publish-options parsing/rendering
Goffi <goffi@goffi.org>
parents:
69
diff
changeset
|
456 publishOptions = verbElement.parent.addElement('publish-options') |
ab556b1c2ca4
wokkel (pubsub): publish-options parsing/rendering
Goffi <goffi@goffi.org>
parents:
69
diff
changeset
|
457 publishOptions.addChild(self.options.toElement()) |
ab556b1c2ca4
wokkel (pubsub): publish-options parsing/rendering
Goffi <goffi@goffi.org>
parents:
69
diff
changeset
|
458 |
ab556b1c2ca4
wokkel (pubsub): publish-options parsing/rendering
Goffi <goffi@goffi.org>
parents:
69
diff
changeset
|
459 |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
460 def _parse_jid(self, verbElement): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
461 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
462 Parse subscriber out of the verbElement for un-/subscribe requests. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
463 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
464 try: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
465 self.subscriber = jid.internJID(verbElement["jid"]) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
466 except KeyError: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
467 raise BadRequest('jid-required') |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
468 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
469 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
470 def _render_jid(self, verbElement): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
471 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
472 Render subscriber into the verbElement for un-/subscribe requests. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
473 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
474 verbElement['jid'] = self.subscriber.full() |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
475 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
476 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
477 def _parse_default(self, verbElement): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
478 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
479 Parse node type out of a request for the default node configuration. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
480 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
481 form = data_form.findForm(verbElement, NS_PUBSUB_NODE_CONFIG) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
482 if form is not None and form.formType == 'submit': |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
483 values = form.getValues() |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
484 self.nodeType = values.get('pubsub#node_type', 'leaf') |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
485 else: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
486 self.nodeType = 'leaf' |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
487 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
488 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
489 def _parse_configure(self, verbElement): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
490 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
491 Parse options out of a request for setting the node configuration. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
492 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
493 form = data_form.findForm(verbElement, NS_PUBSUB_NODE_CONFIG) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
494 if form is not None: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
495 if form.formType in ('submit', 'cancel'): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
496 self.options = form |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
497 else: |
69 | 498 raise BadRequest(text="Unexpected form type '%s'" % form.formType) |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
499 else: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
500 raise BadRequest(text="Missing configuration form") |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
501 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
502 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
503 def _parse_configureOrNone(self, verbElement): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
504 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
505 Parse optional node configuration form in create request. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
506 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
507 for element in verbElement.parent.elements(): |
39
2cc92af0e13a
tmp(wokkel/pubsub): fixed configuration parsing
Goffi <goffi@goffi.org>
parents:
38
diff
changeset
|
508 if element.uri in (NS_PUBSUB, NS_PUBSUB_OWNER) and element.name == 'configure': |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
509 form = data_form.findForm(element, NS_PUBSUB_NODE_CONFIG) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
510 if form is not None: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
511 if form.formType != 'submit': |
69 | 512 raise BadRequest(text="Unexpected form type '%s'" % |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
513 form.formType) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
514 else: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
515 form = data_form.Form('submit', |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
516 formNamespace=NS_PUBSUB_NODE_CONFIG) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
517 self.options = form |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
518 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
519 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
520 def _render_configureOrNone(self, verbElement): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
521 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
522 Render optional node configuration form in create request. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
523 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
524 if self.options is not None: |
36
a67d9617b4ef
tmp (wokkel/pubsub): fixed configuration setting
Goffi <goffi@goffi.org>
parents:
35
diff
changeset
|
525 if verbElement.name == 'configure': |
a67d9617b4ef
tmp (wokkel/pubsub): fixed configuration setting
Goffi <goffi@goffi.org>
parents:
35
diff
changeset
|
526 configure = verbElement |
a67d9617b4ef
tmp (wokkel/pubsub): fixed configuration setting
Goffi <goffi@goffi.org>
parents:
35
diff
changeset
|
527 else: |
a67d9617b4ef
tmp (wokkel/pubsub): fixed configuration setting
Goffi <goffi@goffi.org>
parents:
35
diff
changeset
|
528 configure = verbElement.parent.addElement('configure') |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
529 configure.addChild(self.options.toElement()) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
530 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
531 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
532 def _parse_itemIdentifiers(self, verbElement): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
533 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
534 Parse item identifiers out of items and retract requests. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
535 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
536 self.itemIdentifiers = [] |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
537 for element in verbElement.elements(): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
538 if element.uri == NS_PUBSUB and element.name == 'item': |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
539 try: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
540 self.itemIdentifiers.append(element["id"]) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
541 except KeyError: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
542 raise BadRequest() |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
543 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
544 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
545 def _render_itemIdentifiers(self, verbElement): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
546 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
547 Render item identifiers into items and retract requests. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
548 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
549 if self.itemIdentifiers: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
550 for itemIdentifier in self.itemIdentifiers: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
551 item = verbElement.addElement('item') |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
552 item['id'] = itemIdentifier |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
553 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
554 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
555 def _parse_maxItems(self, verbElement): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
556 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
557 Parse maximum items out of an items request. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
558 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
559 value = verbElement.getAttribute('max_items') |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
560 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
561 if value: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
562 try: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
563 self.maxItems = int(value) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
564 except ValueError: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
565 raise BadRequest(text="Field max_items requires a positive " + |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
566 "integer value") |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
567 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
568 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
569 def _render_maxItems(self, verbElement): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
570 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
571 Render maximum items into an items request. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
572 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
573 if self.maxItems: |
69 | 574 verbElement['max_items'] = str(self.maxItems) |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
575 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
576 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
577 def _parse_subidOrNone(self, verbElement): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
578 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
579 Parse subscription identifier out of a request. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
580 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
581 self.subscriptionIdentifier = verbElement.getAttribute("subid") |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
582 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
583 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
584 def _render_subidOrNone(self, verbElement): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
585 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
586 Render subscription identifier into a request. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
587 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
588 if self.subscriptionIdentifier: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
589 verbElement['subid'] = self.subscriptionIdentifier |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
590 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
591 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
592 def _parse_options(self, verbElement): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
593 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
594 Parse options form out of a subscription options request. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
595 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
596 form = data_form.findForm(verbElement, NS_PUBSUB_SUBSCRIBE_OPTIONS) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
597 if form is not None: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
598 if form.formType in ('submit', 'cancel'): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
599 self.options = form |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
600 else: |
69 | 601 raise BadRequest(text="Unexpected form type '%s'" % form.formType) |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
602 else: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
603 raise BadRequest(text="Missing options form") |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
604 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
605 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
606 def _render_options(self, verbElement): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
607 verbElement.addChild(self.options.toElement()) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
608 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
609 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
610 def _parse_optionsWithSubscribe(self, verbElement): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
611 for element in verbElement.parent.elements(): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
612 if element.name == 'options' and element.uri == NS_PUBSUB: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
613 form = data_form.findForm(element, |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
614 NS_PUBSUB_SUBSCRIBE_OPTIONS) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
615 if form is not None: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
616 if form.formType != 'submit': |
69 | 617 raise BadRequest(text="Unexpected form type '%s'" % |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
618 form.formType) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
619 else: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
620 form = data_form.Form('submit', |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
621 formNamespace=NS_PUBSUB_SUBSCRIBE_OPTIONS) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
622 self.options = form |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
623 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
624 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
625 def _render_optionsWithSubscribe(self, verbElement): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
626 if self.options is not None: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
627 optionsElement = verbElement.parent.addElement('options') |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
628 self._render_options(optionsElement) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
629 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
630 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
631 def _parse_affiliations(self, verbElement): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
632 self.affiliations = {} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
633 for element in verbElement.elements(): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
634 if (element.uri == NS_PUBSUB_OWNER and |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
635 element.name == 'affiliation'): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
636 try: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
637 entity = jid.internJID(element['jid']).userhostJID() |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
638 except KeyError: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
639 raise BadRequest(text='Missing jid attribute') |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
640 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
641 if entity in self.affiliations: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
642 raise BadRequest(text='Multiple affiliations for an entity') |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
643 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
644 try: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
645 affiliation = element['affiliation'] |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
646 except KeyError: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
647 raise BadRequest(text='Missing affiliation attribute') |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
648 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
649 self.affiliations[entity] = affiliation |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
650 |
40
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
651 |
38
e3e02ead6bde
tmp(wokkel/pubsub): removed affiliations attribute which was there twice + added missing _render_affiliations
Goffi <goffi@goffi.org>
parents:
37
diff
changeset
|
652 def _render_affiliations(self, verbElement): |
69 | 653 for entity, affiliation in self.affiliations.items(): |
38
e3e02ead6bde
tmp(wokkel/pubsub): removed affiliations attribute which was there twice + added missing _render_affiliations
Goffi <goffi@goffi.org>
parents:
37
diff
changeset
|
654 affiliationElement = verbElement.addElement((NS_PUBSUB_OWNER, 'affiliation')) |
e3e02ead6bde
tmp(wokkel/pubsub): removed affiliations attribute which was there twice + added missing _render_affiliations
Goffi <goffi@goffi.org>
parents:
37
diff
changeset
|
655 affiliationElement['jid'] = entity.full() |
e3e02ead6bde
tmp(wokkel/pubsub): removed affiliations attribute which was there twice + added missing _render_affiliations
Goffi <goffi@goffi.org>
parents:
37
diff
changeset
|
656 affiliationElement['affiliation'] = affiliation |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
657 |
40
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
658 |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
659 def _parse_subscriptions(self, verbElement): |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
660 self.subscriptions = set() |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
661 seen_entities = set() |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
662 for element in verbElement.elements(): |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
663 if (element.uri == NS_PUBSUB_OWNER and |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
664 element.name == 'subscription'): |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
665 try: |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
666 subscriber = jid.internJID(element['jid']).userhostJID() |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
667 except KeyError: |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
668 raise BadRequest(text='Missing jid attribute') |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
669 |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
670 if subscriber in seen_entities: |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
671 raise BadRequest(text='Multiple subscriptions for an subscriber') |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
672 seen_entities.add(subscriber) |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
673 |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
674 try: |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
675 state = element['subscription'] |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
676 except KeyError: |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
677 # §8.8.2.1 says that value MUST NOT be changed |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
678 # if subscription is missing |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
679 continue |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
680 |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
681 self.subscriptions.add(Subscription(self.nodeIdentifier, |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
682 subscriber, |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
683 state)) |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
684 |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
685 |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
686 def _render_subscriptions(self, verbElement): |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
687 for subscription in self.subscriptions: |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
688 subscriptionElement = verbElement.addElement((NS_PUBSUB_OWNER, 'subscription')) |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
689 subscriptionElement['jid'] = subscription.subscriber.full() |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
690 subscriptionElement['subscription'] = subscription.state |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
691 |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
692 |
13
22f0cb2fa793
tmp(pubsub): added retract "notify" attribute management
Goffi <goffi@goffi.org>
parents:
8
diff
changeset
|
693 def _parse_notify(self, verbElement): |
22f0cb2fa793
tmp(pubsub): added retract "notify" attribute management
Goffi <goffi@goffi.org>
parents:
8
diff
changeset
|
694 value = verbElement.getAttribute('notify') |
22f0cb2fa793
tmp(pubsub): added retract "notify" attribute management
Goffi <goffi@goffi.org>
parents:
8
diff
changeset
|
695 |
22f0cb2fa793
tmp(pubsub): added retract "notify" attribute management
Goffi <goffi@goffi.org>
parents:
8
diff
changeset
|
696 if value: |
22f0cb2fa793
tmp(pubsub): added retract "notify" attribute management
Goffi <goffi@goffi.org>
parents:
8
diff
changeset
|
697 if value in BOOL_TRUE: |
22f0cb2fa793
tmp(pubsub): added retract "notify" attribute management
Goffi <goffi@goffi.org>
parents:
8
diff
changeset
|
698 self.notify = True |
22f0cb2fa793
tmp(pubsub): added retract "notify" attribute management
Goffi <goffi@goffi.org>
parents:
8
diff
changeset
|
699 elif value in BOOL_FALSE: |
22f0cb2fa793
tmp(pubsub): added retract "notify" attribute management
Goffi <goffi@goffi.org>
parents:
8
diff
changeset
|
700 self.notify = False |
22f0cb2fa793
tmp(pubsub): added retract "notify" attribute management
Goffi <goffi@goffi.org>
parents:
8
diff
changeset
|
701 else: |
22f0cb2fa793
tmp(pubsub): added retract "notify" attribute management
Goffi <goffi@goffi.org>
parents:
8
diff
changeset
|
702 raise BadRequest(text="Field notify must be a boolean value") |
22f0cb2fa793
tmp(pubsub): added retract "notify" attribute management
Goffi <goffi@goffi.org>
parents:
8
diff
changeset
|
703 |
22f0cb2fa793
tmp(pubsub): added retract "notify" attribute management
Goffi <goffi@goffi.org>
parents:
8
diff
changeset
|
704 |
22f0cb2fa793
tmp(pubsub): added retract "notify" attribute management
Goffi <goffi@goffi.org>
parents:
8
diff
changeset
|
705 def _render_notify(self, verbElement): |
22f0cb2fa793
tmp(pubsub): added retract "notify" attribute management
Goffi <goffi@goffi.org>
parents:
8
diff
changeset
|
706 if self.notify is not None: |
22f0cb2fa793
tmp(pubsub): added retract "notify" attribute management
Goffi <goffi@goffi.org>
parents:
8
diff
changeset
|
707 verbElement['notify'] = "true" if self.notify else "false" |
22f0cb2fa793
tmp(pubsub): added retract "notify" attribute management
Goffi <goffi@goffi.org>
parents:
8
diff
changeset
|
708 |
22f0cb2fa793
tmp(pubsub): added retract "notify" attribute management
Goffi <goffi@goffi.org>
parents:
8
diff
changeset
|
709 |
58
f4d569dc8e6b
wokkel/mam, wokkel/pubsub, wokkel/rsm: implemented "order-by" protoXEP (for Pubsub and MAM)
Goffi <goffi@goffi.org>
parents:
45
diff
changeset
|
710 def _parse_orderBy(self, verbElement): |
f4d569dc8e6b
wokkel/mam, wokkel/pubsub, wokkel/rsm: implemented "order-by" protoXEP (for Pubsub and MAM)
Goffi <goffi@goffi.org>
parents:
45
diff
changeset
|
711 pubsub_elt = verbElement.parent |
f4d569dc8e6b
wokkel/mam, wokkel/pubsub, wokkel/rsm: implemented "order-by" protoXEP (for Pubsub and MAM)
Goffi <goffi@goffi.org>
parents:
45
diff
changeset
|
712 self.orderBy = [] |
f4d569dc8e6b
wokkel/mam, wokkel/pubsub, wokkel/rsm: implemented "order-by" protoXEP (for Pubsub and MAM)
Goffi <goffi@goffi.org>
parents:
45
diff
changeset
|
713 for element in pubsub_elt.elements(NS_ORDER_BY, 'order'): |
f4d569dc8e6b
wokkel/mam, wokkel/pubsub, wokkel/rsm: implemented "order-by" protoXEP (for Pubsub and MAM)
Goffi <goffi@goffi.org>
parents:
45
diff
changeset
|
714 self.orderBy.append(element['by']) |
f4d569dc8e6b
wokkel/mam, wokkel/pubsub, wokkel/rsm: implemented "order-by" protoXEP (for Pubsub and MAM)
Goffi <goffi@goffi.org>
parents:
45
diff
changeset
|
715 |
f4d569dc8e6b
wokkel/mam, wokkel/pubsub, wokkel/rsm: implemented "order-by" protoXEP (for Pubsub and MAM)
Goffi <goffi@goffi.org>
parents:
45
diff
changeset
|
716 |
f4d569dc8e6b
wokkel/mam, wokkel/pubsub, wokkel/rsm: implemented "order-by" protoXEP (for Pubsub and MAM)
Goffi <goffi@goffi.org>
parents:
45
diff
changeset
|
717 def _render_orderBy(self, verbElement): |
f4d569dc8e6b
wokkel/mam, wokkel/pubsub, wokkel/rsm: implemented "order-by" protoXEP (for Pubsub and MAM)
Goffi <goffi@goffi.org>
parents:
45
diff
changeset
|
718 if self.orderBy is None: |
f4d569dc8e6b
wokkel/mam, wokkel/pubsub, wokkel/rsm: implemented "order-by" protoXEP (for Pubsub and MAM)
Goffi <goffi@goffi.org>
parents:
45
diff
changeset
|
719 return |
f4d569dc8e6b
wokkel/mam, wokkel/pubsub, wokkel/rsm: implemented "order-by" protoXEP (for Pubsub and MAM)
Goffi <goffi@goffi.org>
parents:
45
diff
changeset
|
720 pubsub_elt = verbElement.parent |
f4d569dc8e6b
wokkel/mam, wokkel/pubsub, wokkel/rsm: implemented "order-by" protoXEP (for Pubsub and MAM)
Goffi <goffi@goffi.org>
parents:
45
diff
changeset
|
721 for by_attr in self.orderBy: |
f4d569dc8e6b
wokkel/mam, wokkel/pubsub, wokkel/rsm: implemented "order-by" protoXEP (for Pubsub and MAM)
Goffi <goffi@goffi.org>
parents:
45
diff
changeset
|
722 order_elt = pubsub_elt.addElement((NS_ORDER_BY,'order')) |
f4d569dc8e6b
wokkel/mam, wokkel/pubsub, wokkel/rsm: implemented "order-by" protoXEP (for Pubsub and MAM)
Goffi <goffi@goffi.org>
parents:
45
diff
changeset
|
723 order_elt['by'] = by_attr |
f4d569dc8e6b
wokkel/mam, wokkel/pubsub, wokkel/rsm: implemented "order-by" protoXEP (for Pubsub and MAM)
Goffi <goffi@goffi.org>
parents:
45
diff
changeset
|
724 |
f4d569dc8e6b
wokkel/mam, wokkel/pubsub, wokkel/rsm: implemented "order-by" protoXEP (for Pubsub and MAM)
Goffi <goffi@goffi.org>
parents:
45
diff
changeset
|
725 |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
726 def parseElement(self, element): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
727 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
728 Parse the publish-subscribe verb and parameters out of a request. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
729 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
730 generic.Stanza.parseElement(self, element) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
731 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
732 verbs = [] |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
733 verbElements = [] |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
734 for child in element.pubsub.elements(): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
735 key = (self.stanzaType, child.uri, child.name) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
736 try: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
737 verb = self._requestVerbMap[key] |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
738 except KeyError: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
739 continue |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
740 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
741 verbs.append(verb) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
742 verbElements.append(child) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
743 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
744 if not verbs: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
745 raise NotImplementedError() |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
746 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
747 if len(verbs) > 1: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
748 if 'optionsSet' in verbs and 'subscribe' in verbs: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
749 self.verb = 'subscribe' |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
750 verbElement = verbElements[verbs.index('subscribe')] |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
751 else: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
752 raise NotImplementedError() |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
753 else: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
754 self.verb = verbs[0] |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
755 verbElement = verbElements[0] |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
756 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
757 for parameter in self._parameters[self.verb]: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
758 getattr(self, '_parse_%s' % parameter)(verbElement) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
759 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
760 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
761 def send(self, xs): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
762 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
763 Send this request to its recipient. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
764 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
765 This renders all of the relevant parameters for this specific |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
766 requests into an L{IQ}, and invoke its C{send} method. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
767 This returns a deferred that fires upon reception of a response. See |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
768 L{IQ} for details. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
769 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
770 @param xs: The XML stream to send the request on. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
771 @type xs: L{twisted.words.protocols.jabber.xmlstream.XmlStream} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
772 @rtype: L{defer.Deferred}. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
773 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
774 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
775 try: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
776 (self.stanzaType, |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
777 childURI, |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
778 childName) = self._verbRequestMap[self.verb] |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
779 except KeyError: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
780 raise NotImplementedError() |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
781 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
782 iq = IQ(xs, self.stanzaType) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
783 iq.addElement((childURI, 'pubsub')) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
784 verbElement = iq.pubsub.addElement(childName) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
785 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
786 if self.sender: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
787 iq['from'] = self.sender.full() |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
788 if self.recipient: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
789 iq['to'] = self.recipient.full() |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
790 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
791 for parameter in self._parameters[self.verb]: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
792 getattr(self, '_render_%s' % parameter)(verbElement) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
793 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
794 return iq.send() |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
795 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
796 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
797 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
798 class PubSubEvent(object): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
799 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
800 A publish subscribe event. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
801 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
802 @param sender: The entity from which the notification was received. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
803 @type sender: L{jid.JID} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
804 @param recipient: The entity to which the notification was sent. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
805 @type recipient: L{wokkel.pubsub.ItemsEvent} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
806 @param nodeIdentifier: Identifier of the node the event pertains to. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
807 @type nodeIdentifier: C{unicode} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
808 @param headers: SHIM headers, see L{wokkel.shim.extractHeaders}. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
809 @type headers: C{dict} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
810 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
811 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
812 def __init__(self, sender, recipient, nodeIdentifier, headers): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
813 self.sender = sender |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
814 self.recipient = recipient |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
815 self.nodeIdentifier = nodeIdentifier |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
816 self.headers = headers |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
817 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
818 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
819 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
820 class ItemsEvent(PubSubEvent): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
821 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
822 A publish-subscribe event that signifies new, updated and retracted items. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
823 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
824 @param items: List of received items as domish elements. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
825 @type items: C{list} of L{domish.Element} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
826 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
827 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
828 def __init__(self, sender, recipient, nodeIdentifier, items, headers): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
829 PubSubEvent.__init__(self, sender, recipient, nodeIdentifier, headers) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
830 self.items = items |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
831 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
832 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
833 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
834 class DeleteEvent(PubSubEvent): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
835 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
836 A publish-subscribe event that signifies the deletion of a node. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
837 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
838 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
839 redirectURI = None |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
840 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
841 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
842 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
843 class PurgeEvent(PubSubEvent): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
844 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
845 A publish-subscribe event that signifies the purging of a node. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
846 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
847 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
848 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
849 |
69 | 850 @implementer(IPubSubClient) |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
851 class PubSubClient(XMPPHandler): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
852 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
853 Publish subscribe client protocol. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
854 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
855 |
22
5246a9186b91
tmp (wokkel.pubsub): PubSubRequest class can be overriden everywhere, including PubSubClient
Goffi <goffi@goffi.org>
parents:
21
diff
changeset
|
856 _request_class = PubSubRequest |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
857 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
858 def connectionInitialized(self): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
859 self.xmlstream.addObserver('/message/event[@xmlns="%s"]' % |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
860 NS_PUBSUB_EVENT, self._onEvent) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
861 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
862 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
863 def _onEvent(self, message): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
864 if message.getAttribute('type') == 'error': |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
865 return |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
866 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
867 try: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
868 sender = jid.JID(message["from"]) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
869 recipient = jid.JID(message["to"]) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
870 except KeyError: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
871 return |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
872 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
873 actionElement = None |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
874 for element in message.event.elements(): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
875 if element.uri == NS_PUBSUB_EVENT: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
876 actionElement = element |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
877 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
878 if not actionElement: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
879 return |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
880 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
881 eventHandler = getattr(self, "_onEvent_%s" % actionElement.name, None) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
882 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
883 if eventHandler: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
884 headers = shim.extractHeaders(message) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
885 eventHandler(sender, recipient, actionElement, headers) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
886 message.handled = True |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
887 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
888 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
889 def _onEvent_items(self, sender, recipient, action, headers): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
890 nodeIdentifier = action["node"] |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
891 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
892 items = [element for element in action.elements() |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
893 if element.name in ('item', 'retract')] |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
894 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
895 event = ItemsEvent(sender, recipient, nodeIdentifier, items, headers) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
896 self.itemsReceived(event) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
897 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
898 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
899 def _onEvent_delete(self, sender, recipient, action, headers): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
900 nodeIdentifier = action["node"] |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
901 event = DeleteEvent(sender, recipient, nodeIdentifier, headers) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
902 if action.redirect: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
903 event.redirectURI = action.redirect.getAttribute('uri') |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
904 self.deleteReceived(event) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
905 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
906 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
907 def _onEvent_purge(self, sender, recipient, action, headers): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
908 nodeIdentifier = action["node"] |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
909 event = PurgeEvent(sender, recipient, nodeIdentifier, headers) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
910 self.purgeReceived(event) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
911 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
912 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
913 def itemsReceived(self, event): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
914 pass |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
915 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
916 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
917 def deleteReceived(self, event): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
918 pass |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
919 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
920 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
921 def purgeReceived(self, event): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
922 pass |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
923 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
924 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
925 def createNode(self, service, nodeIdentifier=None, options=None, |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
926 sender=None): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
927 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
928 Create a publish subscribe node. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
929 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
930 @param service: The publish subscribe service to create the node at. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
931 @type service: L{JID<twisted.words.protocols.jabber.jid.JID>} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
932 @param nodeIdentifier: Optional suggestion for the id of the node. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
933 @type nodeIdentifier: C{unicode} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
934 @param options: Optional node configuration options. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
935 @type options: C{dict} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
936 """ |
22
5246a9186b91
tmp (wokkel.pubsub): PubSubRequest class can be overriden everywhere, including PubSubClient
Goffi <goffi@goffi.org>
parents:
21
diff
changeset
|
937 request = self._request_class('create') |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
938 request.recipient = service |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
939 request.nodeIdentifier = nodeIdentifier |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
940 request.sender = sender |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
941 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
942 if options: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
943 form = data_form.Form(formType='submit', |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
944 formNamespace=NS_PUBSUB_NODE_CONFIG) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
945 form.makeFields(options) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
946 request.options = form |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
947 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
948 def cb(iq): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
949 try: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
950 new_node = iq.pubsub.create["node"] |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
951 except AttributeError: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
952 # the suggested node identifier was accepted |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
953 new_node = nodeIdentifier |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
954 return new_node |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
955 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
956 d = request.send(self.xmlstream) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
957 d.addCallback(cb) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
958 return d |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
959 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
960 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
961 def deleteNode(self, service, nodeIdentifier, sender=None): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
962 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
963 Delete a publish subscribe node. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
964 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
965 @param service: The publish subscribe service to delete the node from. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
966 @type service: L{JID<twisted.words.protocols.jabber.jid.JID>} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
967 @param nodeIdentifier: The identifier of the node. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
968 @type nodeIdentifier: C{unicode} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
969 """ |
22
5246a9186b91
tmp (wokkel.pubsub): PubSubRequest class can be overriden everywhere, including PubSubClient
Goffi <goffi@goffi.org>
parents:
21
diff
changeset
|
970 request = self._request_class('delete') |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
971 request.recipient = service |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
972 request.nodeIdentifier = nodeIdentifier |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
973 request.sender = sender |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
974 return request.send(self.xmlstream) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
975 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
976 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
977 def subscribe(self, service, nodeIdentifier, subscriber, |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
978 options=None, sender=None): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
979 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
980 Subscribe to a publish subscribe node. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
981 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
982 @param service: The publish subscribe service that keeps the node. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
983 @type service: L{JID<twisted.words.protocols.jabber.jid.JID>} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
984 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
985 @param nodeIdentifier: The identifier of the node. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
986 @type nodeIdentifier: C{unicode} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
987 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
988 @param subscriber: The entity to subscribe to the node. This entity |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
989 will get notifications of new published items. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
990 @type subscriber: L{JID<twisted.words.protocols.jabber.jid.JID>} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
991 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
992 @param options: Subscription options. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
993 @type options: C{dict} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
994 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
995 @return: Deferred that fires with L{Subscription} or errbacks with |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
996 L{SubscriptionPending} or L{SubscriptionUnconfigured}. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
997 @rtype: L{defer.Deferred} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
998 """ |
22
5246a9186b91
tmp (wokkel.pubsub): PubSubRequest class can be overriden everywhere, including PubSubClient
Goffi <goffi@goffi.org>
parents:
21
diff
changeset
|
999 request = self._request_class('subscribe') |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1000 request.recipient = service |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1001 request.nodeIdentifier = nodeIdentifier |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1002 request.subscriber = subscriber |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1003 request.sender = sender |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1004 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1005 if options: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1006 form = data_form.Form(formType='submit', |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1007 formNamespace=NS_PUBSUB_SUBSCRIBE_OPTIONS) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1008 form.makeFields(options) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1009 request.options = form |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1010 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1011 def cb(iq): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1012 subscription = Subscription.fromElement(iq.pubsub.subscription) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1013 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1014 if subscription.state == 'pending': |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1015 raise SubscriptionPending() |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1016 elif subscription.state == 'unconfigured': |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1017 raise SubscriptionUnconfigured() |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1018 else: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1019 # we assume subscription == 'subscribed' |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1020 # any other value would be invalid, but that should have |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1021 # yielded a stanza error. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1022 return subscription |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1023 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1024 d = request.send(self.xmlstream) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1025 d.addCallback(cb) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1026 return d |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1027 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1028 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1029 def unsubscribe(self, service, nodeIdentifier, subscriber, |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1030 subscriptionIdentifier=None, sender=None): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1031 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1032 Unsubscribe from a publish subscribe node. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1033 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1034 @param service: The publish subscribe service that keeps the node. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1035 @type service: L{JID<twisted.words.protocols.jabber.jid.JID>} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1036 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1037 @param nodeIdentifier: The identifier of the node. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1038 @type nodeIdentifier: C{unicode} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1039 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1040 @param subscriber: The entity to unsubscribe from the node. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1041 @type subscriber: L{JID<twisted.words.protocols.jabber.jid.JID>} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1042 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1043 @param subscriptionIdentifier: Optional subscription identifier. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1044 @type subscriptionIdentifier: C{unicode} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1045 """ |
22
5246a9186b91
tmp (wokkel.pubsub): PubSubRequest class can be overriden everywhere, including PubSubClient
Goffi <goffi@goffi.org>
parents:
21
diff
changeset
|
1046 request = self._request_class('unsubscribe') |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1047 request.recipient = service |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1048 request.nodeIdentifier = nodeIdentifier |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1049 request.subscriber = subscriber |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1050 request.subscriptionIdentifier = subscriptionIdentifier |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1051 request.sender = sender |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1052 return request.send(self.xmlstream) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1053 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1054 |
73
ab556b1c2ca4
wokkel (pubsub): publish-options parsing/rendering
Goffi <goffi@goffi.org>
parents:
69
diff
changeset
|
1055 def publish(self, service, nodeIdentifier, items=None, sender=None, options=None): |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1056 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1057 Publish to a publish subscribe node. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1058 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1059 @param service: The publish subscribe service that keeps the node. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1060 @type service: L{JID<twisted.words.protocols.jabber.jid.JID>} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1061 @param nodeIdentifier: The identifier of the node. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1062 @type nodeIdentifier: C{unicode} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1063 @param items: Optional list of L{Item}s to publish. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1064 @type items: C{list} |
73
ab556b1c2ca4
wokkel (pubsub): publish-options parsing/rendering
Goffi <goffi@goffi.org>
parents:
69
diff
changeset
|
1065 @param options: Optional publish-options form (see XEP-0060 §7.1.5) |
ab556b1c2ca4
wokkel (pubsub): publish-options parsing/rendering
Goffi <goffi@goffi.org>
parents:
69
diff
changeset
|
1066 @type options: C{dict} |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1067 """ |
22
5246a9186b91
tmp (wokkel.pubsub): PubSubRequest class can be overriden everywhere, including PubSubClient
Goffi <goffi@goffi.org>
parents:
21
diff
changeset
|
1068 request = self._request_class('publish') |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1069 request.recipient = service |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1070 request.nodeIdentifier = nodeIdentifier |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1071 request.items = items |
73
ab556b1c2ca4
wokkel (pubsub): publish-options parsing/rendering
Goffi <goffi@goffi.org>
parents:
69
diff
changeset
|
1072 if options: |
ab556b1c2ca4
wokkel (pubsub): publish-options parsing/rendering
Goffi <goffi@goffi.org>
parents:
69
diff
changeset
|
1073 form = data_form.Form(formType='submit', |
ab556b1c2ca4
wokkel (pubsub): publish-options parsing/rendering
Goffi <goffi@goffi.org>
parents:
69
diff
changeset
|
1074 formNamespace=NS_PUBSUB_PUBLISH_OPTIONS) |
ab556b1c2ca4
wokkel (pubsub): publish-options parsing/rendering
Goffi <goffi@goffi.org>
parents:
69
diff
changeset
|
1075 form.makeFields(options) |
ab556b1c2ca4
wokkel (pubsub): publish-options parsing/rendering
Goffi <goffi@goffi.org>
parents:
69
diff
changeset
|
1076 request.options = form |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1077 request.sender = sender |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1078 return request.send(self.xmlstream) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1079 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1080 |
58
f4d569dc8e6b
wokkel/mam, wokkel/pubsub, wokkel/rsm: implemented "order-by" protoXEP (for Pubsub and MAM)
Goffi <goffi@goffi.org>
parents:
45
diff
changeset
|
1081 def items(self, service, nodeIdentifier, maxItems=None, |
f4d569dc8e6b
wokkel/mam, wokkel/pubsub, wokkel/rsm: implemented "order-by" protoXEP (for Pubsub and MAM)
Goffi <goffi@goffi.org>
parents:
45
diff
changeset
|
1082 subscriptionIdentifier=None, sender=None, itemIdentifiers=None, |
f4d569dc8e6b
wokkel/mam, wokkel/pubsub, wokkel/rsm: implemented "order-by" protoXEP (for Pubsub and MAM)
Goffi <goffi@goffi.org>
parents:
45
diff
changeset
|
1083 orderBy=None): |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1084 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1085 Retrieve previously published items from a publish subscribe node. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1086 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1087 @param service: The publish subscribe service that keeps the node. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1088 @type service: L{JID<twisted.words.protocols.jabber.jid.JID>} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1089 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1090 @param nodeIdentifier: The identifier of the node. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1091 @type nodeIdentifier: C{unicode} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1092 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1093 @param maxItems: Optional limit on the number of retrieved items. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1094 @type maxItems: C{int} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1095 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1096 @param subscriptionIdentifier: Optional subscription identifier. In |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1097 case the node has been subscribed to multiple times, this narrows |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1098 the results to the specific subscription. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1099 @type subscriptionIdentifier: C{unicode} |
58
f4d569dc8e6b
wokkel/mam, wokkel/pubsub, wokkel/rsm: implemented "order-by" protoXEP (for Pubsub and MAM)
Goffi <goffi@goffi.org>
parents:
45
diff
changeset
|
1100 |
f4d569dc8e6b
wokkel/mam, wokkel/pubsub, wokkel/rsm: implemented "order-by" protoXEP (for Pubsub and MAM)
Goffi <goffi@goffi.org>
parents:
45
diff
changeset
|
1101 @param itemIdentifiers: Identifiers of the items to be retrieved. |
f4d569dc8e6b
wokkel/mam, wokkel/pubsub, wokkel/rsm: implemented "order-by" protoXEP (for Pubsub and MAM)
Goffi <goffi@goffi.org>
parents:
45
diff
changeset
|
1102 @type itemIdentifiers: C{set} |
f4d569dc8e6b
wokkel/mam, wokkel/pubsub, wokkel/rsm: implemented "order-by" protoXEP (for Pubsub and MAM)
Goffi <goffi@goffi.org>
parents:
45
diff
changeset
|
1103 |
f4d569dc8e6b
wokkel/mam, wokkel/pubsub, wokkel/rsm: implemented "order-by" protoXEP (for Pubsub and MAM)
Goffi <goffi@goffi.org>
parents:
45
diff
changeset
|
1104 @param orderBy: Keys to order by |
f4d569dc8e6b
wokkel/mam, wokkel/pubsub, wokkel/rsm: implemented "order-by" protoXEP (for Pubsub and MAM)
Goffi <goffi@goffi.org>
parents:
45
diff
changeset
|
1105 @type orderBy: L{list} of L{unicode} |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1106 """ |
22
5246a9186b91
tmp (wokkel.pubsub): PubSubRequest class can be overriden everywhere, including PubSubClient
Goffi <goffi@goffi.org>
parents:
21
diff
changeset
|
1107 request = self._request_class('items') |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1108 request.recipient = service |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1109 request.nodeIdentifier = nodeIdentifier |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1110 if maxItems: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1111 request.maxItems = str(int(maxItems)) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1112 request.subscriptionIdentifier = subscriptionIdentifier |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1113 request.sender = sender |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1114 request.itemIdentifiers = itemIdentifiers |
58
f4d569dc8e6b
wokkel/mam, wokkel/pubsub, wokkel/rsm: implemented "order-by" protoXEP (for Pubsub and MAM)
Goffi <goffi@goffi.org>
parents:
45
diff
changeset
|
1115 request.orderBy = orderBy |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1116 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1117 def cb(iq): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1118 items = [] |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1119 for element in iq.pubsub.items.elements(): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1120 if element.uri == NS_PUBSUB and element.name == 'item': |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1121 items.append(element) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1122 return items |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1123 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1124 d = request.send(self.xmlstream) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1125 d.addCallback(cb) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1126 return d |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1127 |
13
22f0cb2fa793
tmp(pubsub): added retract "notify" attribute management
Goffi <goffi@goffi.org>
parents:
8
diff
changeset
|
1128 def retractItems(self, service, nodeIdentifier, itemIdentifiers, notify=None, sender=None): |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1129 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1130 Retract items from a publish subscribe node. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1131 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1132 @param service: The publish subscribe service to delete the node from. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1133 @type service: L{JID<twisted.words.protocols.jabber.jid.JID>} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1134 @param nodeIdentifier: The identifier of the node. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1135 @type nodeIdentifier: C{unicode} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1136 @param itemIdentifiers: Identifiers of the items to be retracted. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1137 @type itemIdentifiers: C{set} |
13
22f0cb2fa793
tmp(pubsub): added retract "notify" attribute management
Goffi <goffi@goffi.org>
parents:
8
diff
changeset
|
1138 @param notify: True if notification is required |
22f0cb2fa793
tmp(pubsub): added retract "notify" attribute management
Goffi <goffi@goffi.org>
parents:
8
diff
changeset
|
1139 @type notify: C{unicode} |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1140 """ |
22
5246a9186b91
tmp (wokkel.pubsub): PubSubRequest class can be overriden everywhere, including PubSubClient
Goffi <goffi@goffi.org>
parents:
21
diff
changeset
|
1141 request = self._request_class('retract') |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1142 request.recipient = service |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1143 request.nodeIdentifier = nodeIdentifier |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1144 request.itemIdentifiers = itemIdentifiers |
13
22f0cb2fa793
tmp(pubsub): added retract "notify" attribute management
Goffi <goffi@goffi.org>
parents:
8
diff
changeset
|
1145 request.notify = notify |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1146 request.sender = sender |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1147 return request.send(self.xmlstream) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1148 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1149 def getOptions(self, service, nodeIdentifier, subscriber, |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1150 subscriptionIdentifier=None, sender=None): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1151 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1152 Get subscription options. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1153 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1154 @param service: The publish subscribe service that keeps the node. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1155 @type service: L{JID<twisted.words.protocols.jabber.jid.JID>} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1156 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1157 @param nodeIdentifier: The identifier of the node. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1158 @type nodeIdentifier: C{unicode} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1159 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1160 @param subscriber: The entity subscribed to the node. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1161 @type subscriber: L{JID<twisted.words.protocols.jabber.jid.JID>} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1162 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1163 @param subscriptionIdentifier: Optional subscription identifier. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1164 @type subscriptionIdentifier: C{unicode} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1165 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1166 @rtype: L{data_form.Form} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1167 """ |
22
5246a9186b91
tmp (wokkel.pubsub): PubSubRequest class can be overriden everywhere, including PubSubClient
Goffi <goffi@goffi.org>
parents:
21
diff
changeset
|
1168 request = self._request_class('optionsGet') |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1169 request.recipient = service |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1170 request.nodeIdentifier = nodeIdentifier |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1171 request.subscriber = subscriber |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1172 request.subscriptionIdentifier = subscriptionIdentifier |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1173 request.sender = sender |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1174 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1175 def cb(iq): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1176 form = data_form.findForm(iq.pubsub.options, |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1177 NS_PUBSUB_SUBSCRIBE_OPTIONS) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1178 form.typeCheck() |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1179 return form |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1180 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1181 d = request.send(self.xmlstream) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1182 d.addCallback(cb) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1183 return d |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1184 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1185 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1186 def setOptions(self, service, nodeIdentifier, subscriber, |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1187 options, subscriptionIdentifier=None, sender=None): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1188 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1189 Set subscription options. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1190 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1191 @param service: The publish subscribe service that keeps the node. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1192 @type service: L{JID<twisted.words.protocols.jabber.jid.JID>} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1193 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1194 @param nodeIdentifier: The identifier of the node. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1195 @type nodeIdentifier: C{unicode} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1196 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1197 @param subscriber: The entity subscribed to the node. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1198 @type subscriber: L{JID<twisted.words.protocols.jabber.jid.JID>} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1199 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1200 @param options: Subscription options. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1201 @type options: C{dict}. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1202 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1203 @param subscriptionIdentifier: Optional subscription identifier. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1204 @type subscriptionIdentifier: C{unicode} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1205 """ |
22
5246a9186b91
tmp (wokkel.pubsub): PubSubRequest class can be overriden everywhere, including PubSubClient
Goffi <goffi@goffi.org>
parents:
21
diff
changeset
|
1206 request = self._request_class('optionsSet') |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1207 request.recipient = service |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1208 request.nodeIdentifier = nodeIdentifier |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1209 request.subscriber = subscriber |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1210 request.subscriptionIdentifier = subscriptionIdentifier |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1211 request.sender = sender |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1212 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1213 form = data_form.Form(formType='submit', |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1214 formNamespace=NS_PUBSUB_SUBSCRIBE_OPTIONS) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1215 form.makeFields(options) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1216 request.options = form |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1217 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1218 d = request.send(self.xmlstream) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1219 return d |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1220 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1221 |
86
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1222 @implementer(IPubSubResource) |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1223 class PubSubResource(object): |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1224 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1225 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1226 features = [] |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1227 discoIdentity = disco.DiscoIdentity('pubsub', |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1228 'service', |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1229 'Publish-Subscribe Service') |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1230 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1231 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1232 def locateResource(self, request): |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1233 return self |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1234 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1235 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1236 def getInfo(self, requestor, service, nodeIdentifier): |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1237 return defer.succeed(None) |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1238 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1239 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1240 def getNodes(self, requestor, service, nodeIdentifier): |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1241 return defer.succeed([]) |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1242 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1243 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1244 def getConfigurationOptions(self): |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1245 return {} |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1246 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1247 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1248 def publish(self, request): |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1249 return defer.fail(Unsupported('publish')) |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1250 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1251 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1252 def subscribe(self, request): |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1253 return defer.fail(Unsupported('subscribe')) |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1254 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1255 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1256 def unsubscribe(self, request): |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1257 return defer.fail(Unsupported('subscribe')) |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1258 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1259 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1260 def subscriptions(self, request): |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1261 return defer.fail(Unsupported('retrieve-subscriptions')) |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1262 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1263 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1264 def affiliations(self, request): |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1265 return defer.fail(Unsupported('retrieve-affiliations')) |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1266 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1267 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1268 def create(self, request): |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1269 return defer.fail(Unsupported('create-nodes')) |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1270 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1271 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1272 def default(self, request): |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1273 return defer.fail(Unsupported('retrieve-default')) |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1274 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1275 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1276 def configureGet(self, request): |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1277 return defer.fail(Unsupported('config-node')) |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1278 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1279 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1280 def configureSet(self, request): |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1281 return defer.fail(Unsupported('config-node')) |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1282 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1283 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1284 def items(self, request): |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1285 return defer.fail(Unsupported('retrieve-items')) |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1286 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1287 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1288 def retract(self, request): |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1289 return defer.fail(Unsupported('retract-items')) |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1290 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1291 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1292 def purge(self, request): |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1293 return defer.fail(Unsupported('purge-nodes')) |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1294 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1295 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1296 def delete(self, request): |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1297 return defer.fail(Unsupported('delete-nodes')) |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1298 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1299 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1300 def affiliationsGet(self, request): |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1301 return defer.fail(Unsupported('retrieve-affiliations')) |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1302 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1303 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1304 def affiliationsSet(self, request): |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1305 return defer.fail(Unsupported('modify-affiliations')) |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1306 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1307 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1308 def subscriptionsGet(self, request): |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1309 return defer.fail(Unsupported('manage-subscriptions')) |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1310 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1311 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1312 def subscriptionsSet(self, request): |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1313 return defer.fail(Unsupported('manage-subscriptions')) |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1314 |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1315 |
69 | 1316 @implementer(IPubSubService, disco.IDisco) |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1317 class PubSubService(XMPPHandler, IQHandlerMixin): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1318 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1319 Protocol implementation for a XMPP Publish Subscribe Service. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1320 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1321 The word Service here is used as taken from the Publish Subscribe |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1322 specification. It is the party responsible for keeping nodes and their |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1323 subscriptions, and sending out notifications. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1324 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1325 Methods from the L{IPubSubService} interface that are called as a result |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1326 of an XMPP request may raise exceptions. Alternatively the deferred |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1327 returned by these methods may have their errback called. These are handled |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1328 as follows: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1329 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1330 - If the exception is an instance of L{error.StanzaError}, an error |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1331 response iq is returned. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1332 - Any other exception is reported using L{log.msg}. An error response |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1333 with the condition C{internal-server-error} is returned. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1334 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1335 The default implementation of said methods raises an L{Unsupported} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1336 exception and are meant to be overridden. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1337 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1338 @ivar discoIdentity: Service discovery identity as a dictionary with |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1339 keys C{'category'}, C{'type'} and C{'name'}. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1340 @ivar pubSubFeatures: List of supported publish-subscribe features for |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1341 service discovery, as C{str}. |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1342 @type pubSubFeatures: C{list} or C{None} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1343 """ |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1344 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1345 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1346 iqHandlers = { |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1347 '/*': '_onPubSubRequest', |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1348 } |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1349 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1350 _legacyHandlers = { |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1351 'publish': ('publish', ['sender', 'recipient', |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1352 'nodeIdentifier', 'items']), |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1353 'subscribe': ('subscribe', ['sender', 'recipient', |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1354 'nodeIdentifier', 'subscriber']), |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1355 'unsubscribe': ('unsubscribe', ['sender', 'recipient', |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1356 'nodeIdentifier', 'subscriber']), |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1357 'subscriptions': ('subscriptions', ['sender', 'recipient']), |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1358 'affiliations': ('affiliations', ['sender', 'recipient']), |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1359 'create': ('create', ['sender', 'recipient', 'nodeIdentifier']), |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1360 'getConfigurationOptions': ('getConfigurationOptions', []), |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1361 'default': ('getDefaultConfiguration', |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1362 ['sender', 'recipient', 'nodeType']), |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1363 'configureGet': ('getConfiguration', ['sender', 'recipient', |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1364 'nodeIdentifier']), |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1365 'configureSet': ('setConfiguration', ['sender', 'recipient', |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1366 'nodeIdentifier', 'options']), |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1367 'items': ('items', ['sender', 'recipient', 'nodeIdentifier', |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1368 'maxItems', 'itemIdentifiers']), |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1369 'retract': ('retract', ['sender', 'recipient', 'nodeIdentifier', |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1370 'itemIdentifiers']), |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1371 'purge': ('purge', ['sender', 'recipient', 'nodeIdentifier']), |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1372 'delete': ('delete', ['sender', 'recipient', 'nodeIdentifier']), |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1373 } |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1374 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1375 _request_class = PubSubRequest |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1376 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1377 hideNodes = False |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1378 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1379 def __init__(self, resource=None): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1380 self.resource = resource |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1381 self.discoIdentity = {'category': 'pubsub', |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1382 'type': 'service', |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1383 'name': 'Generic Publish-Subscribe Service'} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1384 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1385 self.pubSubFeatures = [] |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1386 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1387 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1388 def connectionMade(self): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1389 self.xmlstream.addObserver(PUBSUB_REQUEST, self.handleRequest) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1390 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1391 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1392 def getDiscoInfo(self, requestor, target, nodeIdentifier=''): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1393 def toInfo(nodeInfo): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1394 if not nodeInfo: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1395 return |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1396 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1397 (nodeType, metaData) = nodeInfo['type'], nodeInfo['meta-data'] |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1398 info.append(disco.DiscoIdentity('pubsub', nodeType)) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1399 if metaData: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1400 form = data_form.Form(formType="result", |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1401 formNamespace=NS_PUBSUB_META_DATA) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1402 form.addField( |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1403 data_form.Field( |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1404 var='pubsub#node_type', |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1405 value=nodeType, |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1406 label='The type of node (collection or leaf)' |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1407 ) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1408 ) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1409 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1410 for metaDatum in metaData: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1411 form.addField(data_form.Field.fromDict(metaDatum)) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1412 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1413 info.append(form) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1414 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1415 return |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1416 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1417 info = [] |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1418 |
22
5246a9186b91
tmp (wokkel.pubsub): PubSubRequest class can be overriden everywhere, including PubSubClient
Goffi <goffi@goffi.org>
parents:
21
diff
changeset
|
1419 request = self._request_class('discoInfo') |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1420 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1421 if self.resource is not None: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1422 resource = self.resource.locateResource(request) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1423 identity = resource.discoIdentity |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1424 features = resource.features |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1425 getInfo = resource.getInfo |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1426 else: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1427 category = self.discoIdentity['category'] |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1428 idType = self.discoIdentity['type'] |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1429 name = self.discoIdentity['name'] |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1430 identity = disco.DiscoIdentity(category, idType, name) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1431 features = self.pubSubFeatures |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1432 getInfo = self.getNodeInfo |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1433 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1434 if not nodeIdentifier: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1435 info.append(identity) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1436 info.append(disco.DiscoFeature(disco.NS_DISCO_ITEMS)) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1437 info.extend([disco.DiscoFeature("%s#%s" % (NS_PUBSUB, feature)) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1438 for feature in features]) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1439 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1440 d = defer.maybeDeferred(getInfo, requestor, target, nodeIdentifier or '') |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1441 d.addCallback(toInfo) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1442 d.addErrback(log.err) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1443 d.addCallback(lambda _: info) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1444 return d |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1445 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1446 |
41
f9d14d3d0835
tmp(wokkel/pubsub): allows getNodes to return names using tuples(node/names)
Goffi <goffi@goffi.org>
parents:
40
diff
changeset
|
1447 def _parseNodes(self, nodes, target): |
f9d14d3d0835
tmp(wokkel/pubsub): allows getNodes to return names using tuples(node/names)
Goffi <goffi@goffi.org>
parents:
40
diff
changeset
|
1448 """parse return values of resource.getNodes |
f9d14d3d0835
tmp(wokkel/pubsub): allows getNodes to return names using tuples(node/names)
Goffi <goffi@goffi.org>
parents:
40
diff
changeset
|
1449 |
f9d14d3d0835
tmp(wokkel/pubsub): allows getNodes to return names using tuples(node/names)
Goffi <goffi@goffi.org>
parents:
40
diff
changeset
|
1450 basestring values are used as node |
f9d14d3d0835
tmp(wokkel/pubsub): allows getNodes to return names using tuples(node/names)
Goffi <goffi@goffi.org>
parents:
40
diff
changeset
|
1451 tuple are unpacked as node, name |
f9d14d3d0835
tmp(wokkel/pubsub): allows getNodes to return names using tuples(node/names)
Goffi <goffi@goffi.org>
parents:
40
diff
changeset
|
1452 """ |
f9d14d3d0835
tmp(wokkel/pubsub): allows getNodes to return names using tuples(node/names)
Goffi <goffi@goffi.org>
parents:
40
diff
changeset
|
1453 items = [] |
f9d14d3d0835
tmp(wokkel/pubsub): allows getNodes to return names using tuples(node/names)
Goffi <goffi@goffi.org>
parents:
40
diff
changeset
|
1454 for node in nodes: |
62
c8b468a96c5c
wokkel (pubsub): fixed recursive reference in disco items
Goffi <goffi@goffi.org>
parents:
58
diff
changeset
|
1455 if not node: |
c8b468a96c5c
wokkel (pubsub): fixed recursive reference in disco items
Goffi <goffi@goffi.org>
parents:
58
diff
changeset
|
1456 continue |
69 | 1457 elif isinstance(node, str): |
41
f9d14d3d0835
tmp(wokkel/pubsub): allows getNodes to return names using tuples(node/names)
Goffi <goffi@goffi.org>
parents:
40
diff
changeset
|
1458 items.append(disco.DiscoItem(target, node)) |
f9d14d3d0835
tmp(wokkel/pubsub): allows getNodes to return names using tuples(node/names)
Goffi <goffi@goffi.org>
parents:
40
diff
changeset
|
1459 else: |
f9d14d3d0835
tmp(wokkel/pubsub): allows getNodes to return names using tuples(node/names)
Goffi <goffi@goffi.org>
parents:
40
diff
changeset
|
1460 _node, name = node |
f9d14d3d0835
tmp(wokkel/pubsub): allows getNodes to return names using tuples(node/names)
Goffi <goffi@goffi.org>
parents:
40
diff
changeset
|
1461 items.append(disco.DiscoItem(target, _node, name)) |
f9d14d3d0835
tmp(wokkel/pubsub): allows getNodes to return names using tuples(node/names)
Goffi <goffi@goffi.org>
parents:
40
diff
changeset
|
1462 return items |
f9d14d3d0835
tmp(wokkel/pubsub): allows getNodes to return names using tuples(node/names)
Goffi <goffi@goffi.org>
parents:
40
diff
changeset
|
1463 |
f9d14d3d0835
tmp(wokkel/pubsub): allows getNodes to return names using tuples(node/names)
Goffi <goffi@goffi.org>
parents:
40
diff
changeset
|
1464 |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1465 def getDiscoItems(self, requestor, target, nodeIdentifier=''): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1466 if self.hideNodes: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1467 d = defer.succeed([]) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1468 elif self.resource is not None: |
22
5246a9186b91
tmp (wokkel.pubsub): PubSubRequest class can be overriden everywhere, including PubSubClient
Goffi <goffi@goffi.org>
parents:
21
diff
changeset
|
1469 request = self._request_class('discoInfo') |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1470 resource = self.resource.locateResource(request) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1471 d = resource.getNodes(requestor, target, nodeIdentifier) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1472 elif nodeIdentifier: |
65
0bb020e9fd47
wokkel (pubsub): getNodes may be deferred
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
1473 d = defer.maybeDeferred(self.getNodes, requestor, target) |
0bb020e9fd47
wokkel (pubsub): getNodes may be deferred
Goffi <goffi@goffi.org>
parents:
62
diff
changeset
|
1474 |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1475 else: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1476 d = defer.succeed([]) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1477 |
41
f9d14d3d0835
tmp(wokkel/pubsub): allows getNodes to return names using tuples(node/names)
Goffi <goffi@goffi.org>
parents:
40
diff
changeset
|
1478 d.addCallback(self._parseNodes, target) |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1479 return d |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1480 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1481 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1482 def _onPubSubRequest(self, iq): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1483 request = self._request_class.fromElement(iq) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1484 if self.resource is not None: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1485 resource = self.resource.locateResource(request) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1486 else: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1487 resource = self |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1488 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1489 # Preprocess the request, knowing the handling resource |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1490 try: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1491 preProcessor = getattr(self, '_preProcess_%s' % request.verb) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1492 except AttributeError: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1493 pass |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1494 else: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1495 request = preProcessor(resource, request) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1496 if request is None: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1497 return defer.succeed(None) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1498 |
8 | 1499 # Process the request itself, |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1500 if resource is not self: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1501 try: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1502 handler = getattr(resource, request.verb) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1503 except AttributeError: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1504 text = "Request verb: %s" % request.verb |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1505 return defer.fail(Unsupported('', text)) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1506 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1507 d = handler(request) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1508 else: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1509 try: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1510 handlerName, argNames = self._legacyHandlers[request.verb] |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1511 except KeyError: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1512 text = "Request verb: %s" % request.verb |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1513 return defer.fail(Unsupported('', text)) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1514 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1515 handler = getattr(self, handlerName) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1516 args = [getattr(request, arg) for arg in argNames] |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1517 d = handler(*args) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1518 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1519 # If needed, translate the result into a response |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1520 try: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1521 cb = getattr(self, '_toResponse_%s' % request.verb) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1522 except AttributeError: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1523 pass |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1524 else: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1525 d.addCallback(cb, resource, request) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1526 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1527 return d |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1528 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1529 |
86
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1530 def _toResponse_subscribe( |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1531 self, |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1532 result: Subscription, |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1533 resource: PubSubResource, |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1534 request: PubSubRequest |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1535 ) -> domish.Element: |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1536 response = domish.Element((NS_PUBSUB, "pubsub")) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1537 response.addChild(result.toElement(NS_PUBSUB)) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1538 return response |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1539 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1540 |
86
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1541 def _toResponse_unsubscribe( |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1542 self, |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1543 result: Optional[Subscription], |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1544 resource: PubSubResource, |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1545 request: PubSubRequest |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1546 ) -> domish.Element: |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1547 response = domish.Element((NS_PUBSUB, "pubsub")) |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1548 if result is None: |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1549 result = Subscription(request.nodeIdentifier, request.subscriber, "none") |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1550 response.addChild(result.toElement(NS_PUBSUB)) |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1551 return response |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1552 |
636d48c2b77a
wokkel (pubsub): fix subscriptions node and unsubscribe response element:
Goffi <goffi@goffi.org>
parents:
80
diff
changeset
|
1553 |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1554 def _toResponse_subscriptions(self, result, resource, request): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1555 response = domish.Element((NS_PUBSUB, 'pubsub')) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1556 subscriptions = response.addElement('subscriptions') |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1557 for subscription in result: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1558 subscriptions.addChild(subscription.toElement(NS_PUBSUB)) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1559 return response |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1560 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1561 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1562 def _toResponse_affiliations(self, result, resource, request): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1563 response = domish.Element((NS_PUBSUB, 'pubsub')) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1564 affiliations = response.addElement('affiliations') |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1565 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1566 for nodeIdentifier, affiliation in result: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1567 item = affiliations.addElement('affiliation') |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1568 item['node'] = nodeIdentifier |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1569 item['affiliation'] = affiliation |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1570 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1571 return response |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1572 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1573 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1574 def _toResponse_create(self, result, resource, request): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1575 if not request.nodeIdentifier or request.nodeIdentifier != result: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1576 response = domish.Element((NS_PUBSUB, 'pubsub')) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1577 create = response.addElement('create') |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1578 create['node'] = result |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1579 return response |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1580 else: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1581 return None |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1582 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1583 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1584 def _formFromConfiguration(self, resource, values): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1585 fieldDefs = resource.getConfigurationOptions() |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1586 form = data_form.Form(formType="form", |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1587 formNamespace=NS_PUBSUB_NODE_CONFIG) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1588 form.makeFields(values, fieldDefs) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1589 return form |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1590 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1591 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1592 def _checkConfiguration(self, resource, form): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1593 fieldDefs = resource.getConfigurationOptions() |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1594 form.typeCheck(fieldDefs, filterUnknown=True) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1595 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1596 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1597 def _preProcess_create(self, resource, request): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1598 if request.options: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1599 self._checkConfiguration(resource, request.options) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1600 return request |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1601 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1602 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1603 def _preProcess_default(self, resource, request): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1604 if request.nodeType not in ('leaf', 'collection'): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1605 raise error.StanzaError('not-acceptable') |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1606 else: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1607 return request |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1608 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1609 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1610 def _toResponse_default(self, options, resource, request): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1611 response = domish.Element((NS_PUBSUB_OWNER, "pubsub")) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1612 default = response.addElement("default") |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1613 form = self._formFromConfiguration(resource, options) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1614 default.addChild(form.toElement()) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1615 return response |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1616 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1617 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1618 def _toResponse_configureGet(self, options, resource, request): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1619 response = domish.Element((NS_PUBSUB_OWNER, "pubsub")) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1620 configure = response.addElement("configure") |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1621 form = self._formFromConfiguration(resource, options) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1622 configure.addChild(form.toElement()) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1623 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1624 if request.nodeIdentifier: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1625 configure["node"] = request.nodeIdentifier |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1626 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1627 return response |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1628 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1629 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1630 def _preProcess_configureSet(self, resource, request): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1631 if request.options.formType == 'cancel': |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1632 return None |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1633 else: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1634 self._checkConfiguration(resource, request.options) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1635 return request |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1636 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1637 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1638 def _toResponse_items(self, result, resource, request): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1639 response = domish.Element((NS_PUBSUB, 'pubsub')) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1640 items = response.addElement('items') |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1641 items["node"] = request.nodeIdentifier |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1642 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1643 for item in result: |
21
54f834e40341
tmp (wokkel/rsm): various improvments:
Goffi <goffi@goffi.org>
parents:
17
diff
changeset
|
1644 item.uri = NS_PUBSUB |
54f834e40341
tmp (wokkel/rsm): various improvments:
Goffi <goffi@goffi.org>
parents:
17
diff
changeset
|
1645 items.addChild(item) |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1646 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1647 return response |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1648 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1649 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1650 def _createNotification(self, eventType, service, nodeIdentifier, |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1651 subscriber, subscriptions=None): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1652 headers = [] |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1653 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1654 if subscriptions: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1655 for subscription in subscriptions: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1656 if nodeIdentifier != subscription.nodeIdentifier: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1657 headers.append(('Collection', subscription.nodeIdentifier)) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1658 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1659 message = domish.Element((None, "message")) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1660 message["from"] = service.full() |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1661 message["to"] = subscriber.full() |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1662 event = message.addElement((NS_PUBSUB_EVENT, "event")) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1663 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1664 element = event.addElement(eventType) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1665 element["node"] = nodeIdentifier |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1666 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1667 if headers: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1668 message.addChild(shim.Headers(headers)) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1669 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1670 return message |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1671 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1672 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1673 def _toResponse_affiliationsGet(self, result, resource, request): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1674 response = domish.Element((NS_PUBSUB_OWNER, 'pubsub')) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1675 affiliations = response.addElement('affiliations') |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1676 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1677 if request.nodeIdentifier: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1678 affiliations['node'] = request.nodeIdentifier |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1679 |
69 | 1680 for entity, affiliation in result.items(): |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1681 item = affiliations.addElement('affiliation') |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1682 item['jid'] = entity.full() |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1683 item['affiliation'] = affiliation |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1684 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1685 return response |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1686 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1687 |
40
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
1688 def _toResponse_subscriptionsGet(self, result, resource, request): |
88
298dac50ca73
wokkel (pubsub): fix namespace in response of `subscriptionsGet`
Goffi <goffi@goffi.org>
parents:
86
diff
changeset
|
1689 response = domish.Element((NS_PUBSUB_OWNER, 'pubsub')) |
40
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
1690 subscriptions = response.addElement('subscriptions') |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
1691 subscriptions['node'] = request.nodeIdentifier |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
1692 for subscription in result: |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
1693 subscription_element = subscription.toElement(NS_PUBSUB) |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
1694 del subscription_element['node'] |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
1695 subscriptions.addChild(subscription_element) |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
1696 return response |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
1697 |
03224edb88af
tmp (wokkel/pubsub): subscriptions improvments:
Goffi <goffi@goffi.org>
parents:
39
diff
changeset
|
1698 |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1699 # public methods |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1700 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1701 def notifyPublish(self, service, nodeIdentifier, notifications): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1702 for subscriber, subscriptions, items in notifications: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1703 message = self._createNotification('items', service, |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1704 nodeIdentifier, subscriber, |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1705 subscriptions) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1706 for item in items: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1707 item.uri = NS_PUBSUB_EVENT |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1708 message.event.items.addChild(item) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1709 self.send(message) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1710 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1711 |
17
fd6957dfa8c6
tmp (wokkel.pubsub): implemented missing notifyRetract
Goffi <goffi@goffi.org>
parents:
14
diff
changeset
|
1712 def notifyRetract(self, service, nodeIdentifier, notifications): |
fd6957dfa8c6
tmp (wokkel.pubsub): implemented missing notifyRetract
Goffi <goffi@goffi.org>
parents:
14
diff
changeset
|
1713 for subscriber, subscriptions, items in notifications: |
fd6957dfa8c6
tmp (wokkel.pubsub): implemented missing notifyRetract
Goffi <goffi@goffi.org>
parents:
14
diff
changeset
|
1714 message = self._createNotification('items', service, |
fd6957dfa8c6
tmp (wokkel.pubsub): implemented missing notifyRetract
Goffi <goffi@goffi.org>
parents:
14
diff
changeset
|
1715 nodeIdentifier, subscriber, |
fd6957dfa8c6
tmp (wokkel.pubsub): implemented missing notifyRetract
Goffi <goffi@goffi.org>
parents:
14
diff
changeset
|
1716 subscriptions) |
fd6957dfa8c6
tmp (wokkel.pubsub): implemented missing notifyRetract
Goffi <goffi@goffi.org>
parents:
14
diff
changeset
|
1717 for item in items: |
fd6957dfa8c6
tmp (wokkel.pubsub): implemented missing notifyRetract
Goffi <goffi@goffi.org>
parents:
14
diff
changeset
|
1718 retract = domish.Element((None, "retract")) |
fd6957dfa8c6
tmp (wokkel.pubsub): implemented missing notifyRetract
Goffi <goffi@goffi.org>
parents:
14
diff
changeset
|
1719 retract['id'] = item['id'] |
fd6957dfa8c6
tmp (wokkel.pubsub): implemented missing notifyRetract
Goffi <goffi@goffi.org>
parents:
14
diff
changeset
|
1720 message.event.items.addChild(retract) |
fd6957dfa8c6
tmp (wokkel.pubsub): implemented missing notifyRetract
Goffi <goffi@goffi.org>
parents:
14
diff
changeset
|
1721 self.send(message) |
fd6957dfa8c6
tmp (wokkel.pubsub): implemented missing notifyRetract
Goffi <goffi@goffi.org>
parents:
14
diff
changeset
|
1722 |
fd6957dfa8c6
tmp (wokkel.pubsub): implemented missing notifyRetract
Goffi <goffi@goffi.org>
parents:
14
diff
changeset
|
1723 |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1724 def notifyDelete(self, service, nodeIdentifier, subscribers, |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1725 redirectURI=None): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1726 for subscriber in subscribers: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1727 message = self._createNotification('delete', service, |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1728 nodeIdentifier, |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1729 subscriber) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1730 if redirectURI: |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1731 redirect = message.event.delete.addElement('redirect') |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1732 redirect['uri'] = redirectURI |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1733 self.send(message) |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1734 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1735 |
80
46894097e7ee
wokkel (pubsub): add `notifyPurge` method
Goffi <goffi@goffi.org>
parents:
73
diff
changeset
|
1736 def notifyPurge(self, service, nodeIdentifier, subscribers): |
46894097e7ee
wokkel (pubsub): add `notifyPurge` method
Goffi <goffi@goffi.org>
parents:
73
diff
changeset
|
1737 for subscriber in subscribers: |
46894097e7ee
wokkel (pubsub): add `notifyPurge` method
Goffi <goffi@goffi.org>
parents:
73
diff
changeset
|
1738 message = self._createNotification('purge', service, |
46894097e7ee
wokkel (pubsub): add `notifyPurge` method
Goffi <goffi@goffi.org>
parents:
73
diff
changeset
|
1739 nodeIdentifier, |
46894097e7ee
wokkel (pubsub): add `notifyPurge` method
Goffi <goffi@goffi.org>
parents:
73
diff
changeset
|
1740 subscriber) |
46894097e7ee
wokkel (pubsub): add `notifyPurge` method
Goffi <goffi@goffi.org>
parents:
73
diff
changeset
|
1741 self.send(message) |
46894097e7ee
wokkel (pubsub): add `notifyPurge` method
Goffi <goffi@goffi.org>
parents:
73
diff
changeset
|
1742 |
46894097e7ee
wokkel (pubsub): add `notifyPurge` method
Goffi <goffi@goffi.org>
parents:
73
diff
changeset
|
1743 |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1744 def getNodeInfo(self, requestor, service, nodeIdentifier): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1745 return None |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1746 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1747 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1748 def getNodes(self, requestor, service): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1749 return [] |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1750 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1751 |
73
ab556b1c2ca4
wokkel (pubsub): publish-options parsing/rendering
Goffi <goffi@goffi.org>
parents:
69
diff
changeset
|
1752 def publish(self, requestor, service, nodeIdentifier, items, options): |
0
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1753 raise Unsupported('publish') |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1754 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1755 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1756 def subscribe(self, requestor, service, nodeIdentifier, subscriber): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1757 raise Unsupported('subscribe') |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1758 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1759 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1760 def unsubscribe(self, requestor, service, nodeIdentifier, subscriber): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1761 raise Unsupported('subscribe') |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1762 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1763 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1764 def subscriptions(self, requestor, service): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1765 raise Unsupported('retrieve-subscriptions') |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1766 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1767 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1768 def affiliations(self, requestor, service): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1769 raise Unsupported('retrieve-affiliations') |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1770 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1771 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1772 def create(self, requestor, service, nodeIdentifier): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1773 raise Unsupported('create-nodes') |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1774 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1775 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1776 def getConfigurationOptions(self): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1777 return {} |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1778 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1779 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1780 def getDefaultConfiguration(self, requestor, service, nodeType): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1781 raise Unsupported('retrieve-default') |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1782 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1783 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1784 def getConfiguration(self, requestor, service, nodeIdentifier): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1785 raise Unsupported('config-node') |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1786 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1787 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1788 def setConfiguration(self, requestor, service, nodeIdentifier, options): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1789 raise Unsupported('config-node') |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1790 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1791 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1792 def items(self, requestor, service, nodeIdentifier, maxItems, |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1793 itemIdentifiers): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1794 raise Unsupported('retrieve-items') |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1795 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1796 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1797 def retract(self, requestor, service, nodeIdentifier, itemIdentifiers): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1798 raise Unsupported('retract-items') |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1799 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1800 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1801 def purge(self, requestor, service, nodeIdentifier): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1802 raise Unsupported('purge-nodes') |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1803 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1804 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1805 def delete(self, requestor, service, nodeIdentifier): |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1806 raise Unsupported('delete-nodes') |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1807 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1808 |
09e7c32a6a00
use sat.tmp.wokkel as a buffer module until the changes are integrated to wokkel
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
1809 |