def __init__(self): """ Create listener for Android push notification """ XplPlugin.__init__(self, name='apushnot') # Create logger self.log.debug("Listener for Android push notification created") # Configuration : list of recipient and source key self.alias_list = {} num = 1 loop = True self._config = Query(self.myxpl, self.log) while loop == True: recipient = self._config.query('apushnot', 'name-%s' % str(num)) source = self._config.query('apushnot', 'source-%s' % str(num)) dfltitle = self._config.query('apushnot', 'default-title-%s' % str(num)) if recipient != None: mess = "Configuration : recipient=" + str( recipient) + " , source=" + str( source) + ", default title=" + str(dfltitle) self.log.info(mess) print(mess) self.alias_list[recipient] = { "recipient": recipient, "source": source, "dfltitle": dfltitle } num += 1 else: loop = False # no recipient configured if num == 1: msg = "No recipient configured. Exiting plugin" self.log.info(msg) print(msg) self.force_leave() return # Check title for alias in self.alias_list: if str(self.alias_list[alias]['dfltitle']) != "None": self.log.debug("default title for recipient " + str(self.alias_list[alias]['recipient']) + " is " + str(self.alias_list[alias]['dfltitle'])) else: self.log.error( "Can't find the default title for the recipient " + str(self.alias_list[alias]['recipient']) + " , please check the configuration page of this plugin") self.force_leave() return # Create APushNotification object self.apn_notification_manager = APushNotification(self.log) # Create listeners Listener(self.apn_notification_cb, self.myxpl, { 'schema': 'sendmsg.push', 'xpltype': 'xpl-cmnd' }) self.enable_hbeat()