core: plugins refactored according to bridge + updatedValue now use profile
This commit is contained in:
parent
b3322dabae
commit
ad29111416
13 changed files with 164 additions and 155 deletions
|
|
@ -69,12 +69,12 @@ class GroupBlog():
|
|||
for i in range(1,21):
|
||||
self.host.plugins["XEP-0163"].addPEPEvent("MICROBLOG_%02d" % i, NS_MICROBLOG % i, self.groupblogCB, None)
|
||||
|
||||
host.bridge.addMethod("cleanBlogCollection", ".communication", in_sign='s', out_sign='',
|
||||
host.bridge.addMethod("cleanBlogCollection", ".plugin", in_sign='s', out_sign='',
|
||||
method=self.cleanBlogCollection,
|
||||
doc = {
|
||||
})
|
||||
|
||||
host.bridge.addMethod("getMblogNodes", ".communication", in_sign='s', out_sign='a{sas}',
|
||||
host.bridge.addMethod("getMblogNodes", ".plugin", in_sign='s', out_sign='a{sas}',
|
||||
method=self.getMblogNodes,
|
||||
async = True,
|
||||
doc = { 'summary':"retrieve mblog node, and their association with roster's groups",
|
||||
|
|
@ -82,7 +82,7 @@ class GroupBlog():
|
|||
'return':'list of microblog data (dict)'
|
||||
})
|
||||
|
||||
host.bridge.addMethod("sendGroupBlog", ".communication", in_sign='asss', out_sign='',
|
||||
host.bridge.addMethod("sendGroupBlog", ".plugin", in_sign='asss', out_sign='',
|
||||
method=self.sendGroupBlog,
|
||||
doc = { 'summary':"Send a microblog to a list of groups",
|
||||
'param_0':'list of groups which can read the microblog',
|
||||
|
|
@ -90,7 +90,7 @@ class GroupBlog():
|
|||
'param_2':'%(doc_profile)s'
|
||||
})
|
||||
|
||||
host.bridge.addMethod("subscribeGroupBlog", ".communication", in_sign='ss', out_sign='',
|
||||
host.bridge.addMethod("subscribeGroupBlog", ".plugin", in_sign='ss', out_sign='',
|
||||
method=self.subscribeGroupBlog,
|
||||
doc = { 'summary':"Subscribe to the group blog of somebody",
|
||||
'param_0':'jid of the group node published',
|
||||
|
|
|
|||
|
|
@ -64,18 +64,18 @@ class Quiz():
|
|||
self.host = host
|
||||
self.games={}
|
||||
self.waiting_inv = {} #Invitation waiting for people to join to launch a game
|
||||
host.bridge.addMethod("quizGameLaunch", ".communication", in_sign='ass', out_sign='', method=self.quizGameLaunch) #args: room_jid, players, profile
|
||||
host.bridge.addMethod("quizGameCreate", ".communication", in_sign='sass', out_sign='', method=self.quizGameCreate) #args: room_jid, players, profile
|
||||
host.bridge.addMethod("quizGameReady", ".communication", in_sign='sss', out_sign='', method=self.newPlayerReady) #args: player, referee, profile
|
||||
host.bridge.addMethod("quizGameAnswer", ".communication", in_sign='ssss', out_sign='', method=self.playerAnswer)
|
||||
host.bridge.addSignal("quizGameStarted", ".communication", signature='ssass') #args: room_jid, referee, players, profile
|
||||
host.bridge.addSignal("quizGameNew", ".communication",
|
||||
host.bridge.addMethod("quizGameLaunch", ".plugin", in_sign='ass', out_sign='', method=self.quizGameLaunch) #args: room_jid, players, profile
|
||||
host.bridge.addMethod("quizGameCreate", ".plugin", in_sign='sass', out_sign='', method=self.quizGameCreate) #args: room_jid, players, profile
|
||||
host.bridge.addMethod("quizGameReady", ".plugin", in_sign='sss', out_sign='', method=self.newPlayerReady) #args: player, referee, profile
|
||||
host.bridge.addMethod("quizGameAnswer", ".plugin", in_sign='ssss', out_sign='', method=self.playerAnswer)
|
||||
host.bridge.addSignal("quizGameStarted", ".plugin", signature='ssass') #args: room_jid, referee, players, profile
|
||||
host.bridge.addSignal("quizGameNew", ".plugin",
|
||||
signature='sa{ss}s',
|
||||
doc = { 'summary': 'Start a new game',
|
||||
'param_0': "room_jid: jid of game's room",
|
||||
'param_1': "game_data: data of the game",
|
||||
'param_2': '%(doc_profile)s'})
|
||||
host.bridge.addSignal("quizGameQuestion", ".communication",
|
||||
host.bridge.addSignal("quizGameQuestion", ".plugin",
|
||||
signature = 'sssis',
|
||||
doc = { 'summary': "Send the current question",
|
||||
'param_0': "room_jid: jid of game's room",
|
||||
|
|
@ -83,14 +83,14 @@ class Quiz():
|
|||
'param_2': "question: question to ask",
|
||||
'param_3': "timer: timer",
|
||||
'param_4': '%(doc_profile)s'})
|
||||
host.bridge.addSignal("quizGamePlayerBuzzed", ".communication",
|
||||
host.bridge.addSignal("quizGamePlayerBuzzed", ".plugin",
|
||||
signature = 'ssbs',
|
||||
doc = { 'summary': "A player just pressed the buzzer",
|
||||
'param_0': "room_jid: jid of game's room",
|
||||
'param_1': "player: player who pushed the buzzer",
|
||||
'param_2': "pause: should the game be paused ?",
|
||||
'param_3': '%(doc_profile)s'})
|
||||
host.bridge.addSignal("quizGamePlayerSays", ".communication",
|
||||
host.bridge.addSignal("quizGamePlayerSays", ".plugin",
|
||||
signature = 'sssis',
|
||||
doc = { 'summary': "A player just pressed the buzzer",
|
||||
'param_0': "room_jid: jid of game's room",
|
||||
|
|
@ -98,7 +98,7 @@ class Quiz():
|
|||
'param_2': "text: what the player say",
|
||||
'param_3': "delay: how long, in seconds, the text must appear",
|
||||
'param_4': '%(doc_profile)s'})
|
||||
host.bridge.addSignal("quizGameAnswerResult", ".communication",
|
||||
host.bridge.addSignal("quizGameAnswerResult", ".plugin",
|
||||
signature = 'ssba{si}s',
|
||||
doc = { 'summary': "Result of the just given answer",
|
||||
'param_0': "room_jid: jid of game's room",
|
||||
|
|
@ -106,12 +106,12 @@ class Quiz():
|
|||
'param_2': "good_answer: True if the answer is right",
|
||||
'param_3': "score: dict of score with player as key",
|
||||
'param_4': '%(doc_profile)s'})
|
||||
host.bridge.addSignal("quizGameTimerExpired", ".communication",
|
||||
host.bridge.addSignal("quizGameTimerExpired", ".plugin",
|
||||
signature = 'ss',
|
||||
doc = { 'summary': "Nobody answered the question in time",
|
||||
'param_0': "room_jid: jid of game's room",
|
||||
'param_1': '%(doc_profile)s'})
|
||||
host.bridge.addSignal("quizGameTimerRestarted", ".communication",
|
||||
host.bridge.addSignal("quizGameTimerRestarted", ".plugin",
|
||||
signature = 'sis',
|
||||
doc = { 'summary': "Nobody answered the question in time",
|
||||
'param_0': "room_jid: jid of game's room",
|
||||
|
|
|
|||
|
|
@ -65,19 +65,19 @@ class Tarot():
|
|||
self.games={}
|
||||
self.waiting_inv = {} #Invitation waiting for people to join to launch a game
|
||||
self.contrats = [_('Passe'), _('Petite'), _('Garde'), _('Garde Sans'), _('Garde Contre')]
|
||||
host.bridge.addMethod("tarotGameLaunch", ".communication", in_sign='ass', out_sign='', method=self.launchGame) #args: room_jid, players, profile
|
||||
host.bridge.addMethod("tarotGameCreate", ".communication", in_sign='sass', out_sign='', method=self.createGame) #args: room_jid, players, profile
|
||||
host.bridge.addMethod("tarotGameReady", ".communication", in_sign='sss', out_sign='', method=self.newPlayerReady) #args: player, referee, profile
|
||||
host.bridge.addMethod("tarotGameContratChoosed", ".communication", in_sign='ssss', out_sign='', method=self.contratChoosed) #args: player, referee, contrat, profile
|
||||
host.bridge.addMethod("tarotGamePlayCards", ".communication", in_sign='ssa(ss)s', out_sign='', method=self.play_cards) #args: player, referee, cards, profile
|
||||
host.bridge.addSignal("tarotGameStarted", ".communication", signature='ssass') #args: room_jid, referee, players, profile
|
||||
host.bridge.addSignal("tarotGameNew", ".communication", signature='sa(ss)s') #args: room_jid, hand, profile
|
||||
host.bridge.addSignal("tarotGameChooseContrat", ".communication", signature='sss') #args: room_jid, xml_data, profile
|
||||
host.bridge.addSignal("tarotGameShowCards", ".communication", signature='ssa(ss)a{ss}s') #args: room_jid, type ["chien", "poignée",...], cards, data[dict], profile
|
||||
host.bridge.addSignal("tarotGameCardsPlayed", ".communication", signature='ssa(ss)s') #args: room_jid, player, type ["chien", "poignée",...], cards, data[dict], profile
|
||||
host.bridge.addSignal("tarotGameYourTurn", ".communication", signature='ss') #args: room_jid, profile
|
||||
host.bridge.addSignal("tarotGameScore", ".communication", signature='ssasass') #args: room_jid, xml_data, winners (list of nicks), loosers (list of nicks), profile
|
||||
host.bridge.addSignal("tarotGameInvalidCards", ".communication", signature='ssa(ss)a(ss)s') #args: room_jid, game phase, played_cards, invalid_cards, profile
|
||||
host.bridge.addMethod("tarotGameLaunch", ".plugin", in_sign='ass', out_sign='', method=self.launchGame) #args: room_jid, players, profile
|
||||
host.bridge.addMethod("tarotGameCreate", ".plugin", in_sign='sass', out_sign='', method=self.createGame) #args: room_jid, players, profile
|
||||
host.bridge.addMethod("tarotGameReady", ".plugin", in_sign='sss', out_sign='', method=self.newPlayerReady) #args: player, referee, profile
|
||||
host.bridge.addMethod("tarotGameContratChoosed", ".plugin", in_sign='ssss', out_sign='', method=self.contratChoosed) #args: player, referee, contrat, profile
|
||||
host.bridge.addMethod("tarotGamePlayCards", ".plugin", in_sign='ssa(ss)s', out_sign='', method=self.play_cards) #args: player, referee, cards, profile
|
||||
host.bridge.addSignal("tarotGameStarted", ".plugin", signature='ssass') #args: room_jid, referee, players, profile
|
||||
host.bridge.addSignal("tarotGameNew", ".plugin", signature='sa(ss)s') #args: room_jid, hand, profile
|
||||
host.bridge.addSignal("tarotGameChooseContrat", ".plugin", signature='sss') #args: room_jid, xml_data, profile
|
||||
host.bridge.addSignal("tarotGameShowCards", ".plugin", signature='ssa(ss)a{ss}s') #args: room_jid, type ["chien", "poignée",...], cards, data[dict], profile
|
||||
host.bridge.addSignal("tarotGameCardsPlayed", ".plugin", signature='ssa(ss)s') #args: room_jid, player, type ["chien", "poignée",...], cards, data[dict], profile
|
||||
host.bridge.addSignal("tarotGameYourTurn", ".plugin", signature='ss') #args: room_jid, profile
|
||||
host.bridge.addSignal("tarotGameScore", ".plugin", signature='ssasass') #args: room_jid, xml_data, winners (list of nicks), loosers (list of nicks), profile
|
||||
host.bridge.addSignal("tarotGameInvalidCards", ".plugin", signature='ssa(ss)a(ss)s') #args: room_jid, game phase, played_cards, invalid_cards, profile
|
||||
host.trigger.add("MUC user joined", self.userJoinedTrigger)
|
||||
self.deck_ordered = []
|
||||
for value in ['excuse']+map(str,range(1,22)):
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ class XmlLog():
|
|||
host.memory.importParams(self.params)
|
||||
|
||||
#bridge
|
||||
host.bridge.addSignal("xmlLog", ".communication", signature='sss') #args: direction("IN" or "OUT"), xml_data, profile
|
||||
host.bridge.addSignal("xmlLog", ".plugin", signature='sss') #args: direction("IN" or "OUT"), xml_data, profile
|
||||
|
||||
do_log = bool(self.host.memory.getParamA("Xml log", "Debug"))
|
||||
if do_log:
|
||||
|
|
|
|||
|
|
@ -58,14 +58,14 @@ class XEP_0045():
|
|||
info(_("Plugin XEP_0045 initialization"))
|
||||
self.host = host
|
||||
self.clients={}
|
||||
host.bridge.addMethod("joinMUC", ".communication", in_sign='ssss', out_sign='', method=self._join)
|
||||
host.bridge.addMethod("getRoomJoined", ".communication", in_sign='s', out_sign='a(ssass)', method=self.getRoomJoined)
|
||||
host.bridge.addMethod("getRoomSubjects", ".communication", in_sign='s', out_sign='a(sss)', method=self.getRoomSubjects)
|
||||
host.bridge.addMethod("getUniqueRoomName", ".communication", in_sign='s', out_sign='s', method=self.getUniqueName)
|
||||
host.bridge.addSignal("roomJoined", ".communication", signature='ssasss') #args: room_id, room_service, room_nicks, user_nick, profile
|
||||
host.bridge.addSignal("roomUserJoined", ".communication", signature='sssa{ss}s') #args: room_id, room_service, user_nick, user_data, profile
|
||||
host.bridge.addSignal("roomUserLeft", ".communication", signature='sssa{ss}s') #args: room_id, room_service, user_nick, user_data, profile
|
||||
host.bridge.addSignal("roomNewSubject", ".communication", signature='ssss') #args: room_id, room_service, subject, profile
|
||||
host.bridge.addMethod("joinMUC", ".plugin", in_sign='ssss', out_sign='', method=self._join)
|
||||
host.bridge.addMethod("getRoomJoined", ".plugin", in_sign='s', out_sign='a(ssass)', method=self.getRoomJoined)
|
||||
host.bridge.addMethod("getRoomSubjects", ".plugin", in_sign='s', out_sign='a(sss)', method=self.getRoomSubjects)
|
||||
host.bridge.addMethod("getUniqueRoomName", ".plugin", in_sign='s', out_sign='s', method=self.getUniqueName)
|
||||
host.bridge.addSignal("roomJoined", ".plugin", signature='ssasss') #args: room_id, room_service, room_nicks, user_nick, profile
|
||||
host.bridge.addSignal("roomUserJoined", ".plugin", signature='sssa{ss}s') #args: room_id, room_service, user_nick, user_data, profile
|
||||
host.bridge.addSignal("roomUserLeft", ".plugin", signature='sssa{ss}s') #args: room_id, room_service, user_nick, user_data, profile
|
||||
host.bridge.addSignal("roomNewSubject", ".plugin", signature='ssss') #args: room_id, room_service, subject, profile
|
||||
|
||||
def __check_profile(self, profile):
|
||||
"""check if profile is used and connected
|
||||
|
|
|
|||
|
|
@ -71,17 +71,21 @@ class XEP_0054():
|
|||
self.vcard_cache = host.memory.getPrivate("vcard_cache") or {} #used to store nicknames and avatar, key = jid
|
||||
if not os.path.exists(self.avatar_path):
|
||||
os.makedirs(self.avatar_path)
|
||||
host.bridge.addMethod("getCard", ".communication", in_sign='ss', out_sign='s', method=self.getCard)
|
||||
host.bridge.addMethod("getAvatarFile", ".communication", in_sign='s', out_sign='s', method=self.getAvatarFile)
|
||||
host.bridge.addMethod("getCardCache", ".communication", in_sign='s', out_sign='a{ss}', method=self.getCardCache)
|
||||
host.bridge.addMethod("getCard", ".plugin", in_sign='ss', out_sign='s', method=self.getCard)
|
||||
host.bridge.addMethod("getAvatarFile", ".plugin", in_sign='s', out_sign='s', method=self.getAvatarFile)
|
||||
host.bridge.addMethod("getCardCache", ".plugin", in_sign='s', out_sign='a{ss}', method=self.getCardCache)
|
||||
|
||||
def getHandler(self, profile):
|
||||
return XEP_0054_handler(self)
|
||||
|
||||
def update_cache(self, jid, name, value):
|
||||
def update_cache(self, jid, name, value, profile):
|
||||
"""update cache value
|
||||
- save value in memory in case of change
|
||||
- send updatedValue signal if the value is new or updated
|
||||
@param jid: jid of the owner of the vcard
|
||||
@param name: name of the item which changed
|
||||
@param value: new value of the item
|
||||
@param profile: profile which received the update
|
||||
"""
|
||||
if not self.vcard_cache.has_key(jid.userhost()):
|
||||
self.vcard_cache[jid.userhost()] = {}
|
||||
|
|
@ -91,7 +95,7 @@ class XEP_0054():
|
|||
if not old_value or value != old_value:
|
||||
cache[name] = value
|
||||
self.host.memory.setPrivate("vcard_cache", self.vcard_cache)
|
||||
self.host.bridge.updatedValue('card_'+name, {'jid':jid.userhost(), name:value})
|
||||
self.host.bridge.updatedValue('card_'+name, {'jid':jid.userhost(), name:value}, profile)
|
||||
|
||||
def get_cache(self, jid, name):
|
||||
"""return cached value for jid
|
||||
|
|
@ -123,7 +127,7 @@ class XEP_0054():
|
|||
return hash
|
||||
|
||||
@defer.deferredGenerator
|
||||
def vCard2Dict(self, vcard, target):
|
||||
def vCard2Dict(self, vcard, target, profile):
|
||||
"""Convert a VCard to a dict, and save binaries"""
|
||||
debug (_("parsing vcard"))
|
||||
dictionary = {}
|
||||
|
|
@ -134,7 +138,7 @@ class XEP_0054():
|
|||
dictionary['fullname'] = unicode(elem)
|
||||
elif elem.name == 'NICKNAME':
|
||||
dictionary['nick'] = unicode(elem)
|
||||
self.update_cache(target, 'nick', dictionary['nick'])
|
||||
self.update_cache(target, 'nick', dictionary['nick'], profile)
|
||||
elif elem.name == 'URL':
|
||||
dictionary['website'] = unicode(elem)
|
||||
elif elem.name == 'EMAIL':
|
||||
|
|
@ -149,18 +153,18 @@ class XEP_0054():
|
|||
if not dictionary["avatar"]: #can happen in case of e.g. empty photo elem
|
||||
del dictionary['avatar']
|
||||
else:
|
||||
self.update_cache(target, 'avatar', dictionary['avatar'])
|
||||
self.update_cache(target, 'avatar', dictionary['avatar'], profile)
|
||||
else:
|
||||
info (_('FIXME: [%s] VCard tag is not managed yet') % elem.name)
|
||||
|
||||
yield dictionary
|
||||
|
||||
def vcard_ok(self, answer):
|
||||
def vcard_ok(self, answer, profile):
|
||||
"""Called after the first get IQ"""
|
||||
debug (_("VCard found"))
|
||||
|
||||
if answer.firstChildElement().name == "vCard":
|
||||
d = self.vCard2Dict(answer.firstChildElement(), jid.JID(answer["from"]))
|
||||
d = self.vCard2Dict(answer.firstChildElement(), jid.JID(answer["from"]), profile)
|
||||
d.addCallback(lambda data: self.host.bridge.actionResult("RESULT", answer['id'], data))
|
||||
else:
|
||||
error (_("FIXME: vCard not found as first child element"))
|
||||
|
|
@ -179,13 +183,14 @@ class XEP_0054():
|
|||
if not xmlstream:
|
||||
error (_('Asking vcard for an non-existant or not connected profile'))
|
||||
return ""
|
||||
profile = self.host.memory.getProfileName(profile_key)
|
||||
to_jid = jid.JID(target)
|
||||
debug(_("Asking for %s's VCard") % to_jid.userhost())
|
||||
reg_request=IQ(xmlstream,'get')
|
||||
reg_request["from"]=current_jid.full()
|
||||
reg_request["to"] = to_jid.userhost()
|
||||
query=reg_request.addElement('vCard', NS_VCARD)
|
||||
reg_request.send(to_jid.userhost()).addCallbacks(self.vcard_ok, self.vcard_err)
|
||||
reg_request.send(to_jid.userhost()).addCallbacks(self.vcard_ok, self.vcard_err, [profile])
|
||||
return reg_request["id"]
|
||||
|
||||
def getAvatarFile(self, hash):
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ class XEP_0060():
|
|||
self.host = host
|
||||
self.managedNodes=[]
|
||||
self.clients={}
|
||||
"""host.bridge.addMethod("getItems", ".communication", in_sign='ssa{ss}s', out_sign='as', method=self.getItems,
|
||||
"""host.bridge.addMethod("getItems", ".plugin", in_sign='ssa{ss}s', out_sign='as', method=self.getItems,
|
||||
async = True,
|
||||
doc = { 'summary':'retrieve items',
|
||||
'param_0':'service: pubsub service',
|
||||
|
|
|
|||
|
|
@ -47,8 +47,8 @@ class XEP_0077():
|
|||
info(_("Plugin XEP_0077 initialization"))
|
||||
self.host = host
|
||||
self.triggers = {} #used by other protocol (e.g. XEP-0100) to finish registration. key = target_jid
|
||||
host.bridge.addMethod("in_band_register", ".communication", in_sign='ss', out_sign='s', method=self.in_band_register)
|
||||
host.bridge.addMethod("in_band_submit", ".request", in_sign='sa(ss)', out_sign='s', method=self.in_band_submit)
|
||||
host.bridge.addMethod("in_band_register", ".plugin", in_sign='ss', out_sign='s', method=self.in_band_register)
|
||||
host.bridge.addMethod("in_band_submit", ".plugin", in_sign='sa(ss)', out_sign='s', method=self.in_band_submit)
|
||||
|
||||
def addTrigger(self, target, cb, profile):
|
||||
"""Add a callback which is called when registration to target is successful"""
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ class XEP_0096():
|
|||
info(_("Plugin XEP_0096 initialization"))
|
||||
self.host = host
|
||||
self._waiting_for_approval = {}
|
||||
host.bridge.addMethod("sendFile", ".communication", in_sign='sss', out_sign='s', method=self.sendFile)
|
||||
host.bridge.addMethod("sendFile", ".plugin", in_sign='sss', out_sign='s', method=self.sendFile)
|
||||
|
||||
def getHandler(self, profile):
|
||||
return XEP_0096_handler(self)
|
||||
|
|
|
|||
|
|
@ -44,8 +44,8 @@ class XEP_0100():
|
|||
info(_("Gateways plugin initialization"))
|
||||
self.host = host
|
||||
self.__gateways = {} #dict used to construct the answer to findGateways. Key = target jid
|
||||
host.bridge.addMethod("findGateways", ".communication", in_sign='ss', out_sign='s', method=self.findGateways)
|
||||
host.bridge.addMethod("gatewayRegister", ".request", in_sign='ssa(ss)s', out_sign='s', method=self.gatewayRegister)
|
||||
host.bridge.addMethod("findGateways", ".plugin", in_sign='ss', out_sign='s', method=self.findGateways)
|
||||
host.bridge.addMethod("gatewayRegister", ".plugin", in_sign='ssa(ss)s', out_sign='s', method=self.gatewayRegister)
|
||||
|
||||
def __inc_handled_items(self, request_id):
|
||||
self.__gateways[request_id]['__handled_items']+=1
|
||||
|
|
|
|||
|
|
@ -50,8 +50,8 @@ class XEP_0163():
|
|||
self.pep_events=set()
|
||||
self.pep_out_cb={}
|
||||
host.trigger.add("PubSub Disco Info", self.disoInfoTrigger)
|
||||
host.bridge.addSignal("personalEvent", ".communication", signature='ssa{ss}s') #args: from (jid), type(MOOD, TUNE, etc), data, profile
|
||||
host.bridge.addMethod("sendPersonalEvent", ".communication", in_sign='sa{ss}s', out_sign='i', method=self.sendPersonalEvent) #args: type(MOOD, TUNE, etc), data, profile_key; return 0 or error_code
|
||||
host.bridge.addSignal("personalEvent", ".plugin", signature='ssa{ss}s') #args: from (jid), type(MOOD, TUNE, etc), data, profile
|
||||
host.bridge.addMethod("sendPersonalEvent", ".plugin", in_sign='sa{ss}s', out_sign='i', method=self.sendPersonalEvent) #args: type(MOOD, TUNE, etc), data, profile_key; return 0 or error_code
|
||||
self.addPEPEvent("MOOD", NS_USER_MOOD, self.userMoodCB, self.sendMood)
|
||||
|
||||
def disoInfoTrigger(self, disco_info, profile):
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ class XEP_0249():
|
|||
def __init__(self, host):
|
||||
info(_("Plugin XEP_0249 initialization"))
|
||||
self.host = host
|
||||
host.bridge.addMethod("inviteMUC", ".communication", in_sign='sssa{ss}s', out_sign='', method=self._invite)
|
||||
host.bridge.addMethod("inviteMUC", ".plugin", in_sign='sssa{ss}s', out_sign='', method=self._invite)
|
||||
|
||||
def getHandler(self, profile):
|
||||
return XEP_0249_handler(self)
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ class XEP_0277():
|
|||
info(_("Microblogging plugin initialization"))
|
||||
self.host = host
|
||||
self.host.plugins["XEP-0163"].addPEPEvent("MICROBLOG", NS_MICROBLOG, self.microblogCB, self.sendMicroblog)
|
||||
host.bridge.addMethod("getLastMicroblogs", ".communication",
|
||||
host.bridge.addMethod("getLastMicroblogs", ".plugin",
|
||||
in_sign='sis', out_sign='aa{ss}',
|
||||
method=self.getLastMicroblogs,
|
||||
async = True,
|
||||
|
|
@ -69,7 +69,7 @@ class XEP_0277():
|
|||
'param_2':'%(doc_profile)s',
|
||||
'return':'list of microblog data (dict)'
|
||||
})
|
||||
host.bridge.addMethod("setMicroblogAccess", ".communication", in_sign='ss', out_sign='',
|
||||
host.bridge.addMethod("setMicroblogAccess", ".plugin", in_sign='ss', out_sign='',
|
||||
method=self.setMicroblogAccess,
|
||||
async = True,
|
||||
doc = {
|
||||
|
|
|
|||
Loading…
Reference in a new issue