annotate src/bridge/bridge_constructor/dbus_frontend_template.py @ 297:c5554e2939dd

plugin XEP 0277: author for in request + author, updated management for out request - a workaround is now used to parse "nick" tag (Jappix behaviour) - author and updated can now be used in data when sendind microblog. Is no author is given, user jid is used, if no updated is given, current timestamp is used
author Goffi <goffi@goffi.org>
date Fri, 18 Feb 2011 22:32:02 +0100
parents 1d2e0dfe7114
children 2b52a5da0978
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
267
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
1 #!/usr/bin/python
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
2 #-*- coding: utf-8 -*-
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
3
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
4 """
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
5 SAT communication bridge
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
6 Copyright (C) 2009, 2010, 2011 Jérôme Poisson (goffi@goffi.org)
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
7
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
8 This program is free software: you can redistribute it and/or modify
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
9 it under the terms of the GNU General Public License as published by
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
10 the Free Software Foundation, either version 3 of the License, or
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
11 (at your option) any later version.
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
12
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
13 This program is distributed in the hope that it will be useful,
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
16 GNU General Public License for more details.
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
17
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
18 You should have received a copy of the GNU General Public License
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
19 along with this program. If not, see <http://www.gnu.org/licenses/>.
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
20 """
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
21
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
22 from bridge_frontend import BridgeFrontend
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
23 import dbus, dbus.glib
272
1d2e0dfe7114 bridge: core & frontend sides of bridge are now generated
Goffi <goffi@goffi.org>
parents: 267
diff changeset
24 from logging import debug
267
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
25
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
26 class BridgeExceptionNoService(Exception):
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
27 pass
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
28
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
29 class DBusBridgeFrontend(BridgeFrontend):
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
30 def __init__(self):
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
31 try:
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
32 self.sessions_bus = dbus.SessionBus()
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
33 self.db_object = self.sessions_bus.get_object('org.goffi.SAT',
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
34 '/org/goffi/SAT/bridge')
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
35 self.db_comm_iface = dbus.Interface(self.db_object,
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
36 dbus_interface='org.goffi.SAT.communication')
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
37 self.db_req_iface = dbus.Interface(self.db_object,
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
38 dbus_interface='org.goffi.SAT.request')
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
39 except dbus.exceptions.DBusException,e:
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
40 if e._dbus_error_name=='org.freedesktop.DBus.Error.ServiceUnknown':
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
41 raise BridgeExceptionNoService
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
42 else:
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
43 raise e
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
44 #props = self.db_comm_iface.getProperties()
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
45
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
46 def register(self, functionName, handler, iface="communication"):
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
47 if iface == "communication":
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
48 self.db_comm_iface.connect_to_signal(functionName, handler)
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
49 elif iface == "request":
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
50 self.db_req_iface.connect_to_signal(functionName, handler)
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
51
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
52 ##METHODS_PART##
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
53
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
54 #methods from plugins
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
55 def getRoomJoined(self, profile_key='@DEFAULT@'):
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
56 return self.db_comm_iface.getRoomJoined(profile_key)
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
57
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
58 def getRoomSubjects(self, profile_key='@DEFAULT@'):
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
59 return self.db_comm_iface.getRoomSubjects(profile_key)
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
60
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
61 def joinMUC(self, service, roomId, nick, profile_key='@DEFAULT@'):
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
62 return self.db_comm_iface.joinMUC(service, roomId, nick, profile_key)
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
63
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
64 def tarotGameCreate(self, room_jid, players, profile_key='@DEFAULT@'):
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
65 return self.db_comm_iface.tarotGameCreate(room_jid, players, profile_key)
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
66
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
67 def tarotGameReady(self, player, referee, profile_key='@DEFAULT@'):
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
68 return self.db_comm_iface.tarotGameReady(player, referee, profile_key)
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
69
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
70 def tarotGameContratChoosed(self, player, referee, contrat, profile_key='@DEFAULT@'):
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
71 return self.db_comm_iface.tarotGameContratChoosed(player, referee, contrat, profile_key)
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
72
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
73 def tarotGamePlayCards(self, player, referee, cards, profile_key='@DEFAULT@'):
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
74 return self.db_comm_iface.tarotGamePlayCards(player, referee, cards, profile_key)
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
75
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
76 def sendFile(self, to, path, profile_key='@DEFAULT@'):
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
77 return self.db_comm_iface.sendFile(to, path, profile_key)
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
78
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
79 def findGateways(self, target, profile_key='@DEFAULT@'):
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
80 return self.db_comm_iface.findGateways(target, profile_key)
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
81
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
82 def getCard(self, target, profile_key='@DEFAULT@'):
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
83 return self.db_comm_iface.getCard(target, profile_key)
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
84
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
85 def getCardCache(self, target):
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
86 return self.db_comm_iface.getCardCache(target)
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
87
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
88 def getAvatarFile(self, hash):
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
89 return self.db_comm_iface.getAvatarFile(hash)
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
90
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
91 def in_band_register(self, target, profile_key='@DEFAULT@'):
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
92 return self.db_comm_iface.in_band_register(target, profile_key)
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
93
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
94 def gatewayRegister(self, action, target, data, profile_key='@DEFAULT@'):
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
95 if data == None:
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
96 data = [('', '')] #XXX: we have to do this awful hack because python dbus need to guess the signature
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
97 return self.db_req_iface.gatewayRegister(action, target, data, profile_key)
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
98
bdcd535e179e Bridge constructor:
Goffi <goffi@goffi.org>
parents:
diff changeset
99