def send_alert(self, to_users, subject, message, from_user, sub_group): jid_list = [] from_jid = get_config("JABBER_FROM_JID", None).value from_password = get_config("JABBER_FROM_PASSWORD", None).value jid_space_char = get_config("JABBER_LOCAL_SPACE_CHAR", None).value jabber_domain = get_config("JABBER_LOCAL_DOMAIN", None).value local_jabber = get_config("JABBER_LOCAL_ENABLED", None).value == "1" full_message = render_to_string( "jabber_message.txt", { 'subject': subject, 'message': message, 'sub_group': sub_group.name, 'from_user': from_user.username, 'time': datetime.now(pytz.utc) }) for user in to_users: if self.is_registered(user, sub_group): if local_jabber: jid_list.append(("%s@%s" % (user.username.replace( " ", jid_space_char), jabber_domain)).encode('utf-8')) for jid in user.jabber_accounts.all(): jid_list.append(jid.jid.encode('utf-8')) client = JabberClient(jid=from_jid.encode('utf-8'), password=from_password.encode('utf-8'), to_list=jid_list, message=full_message.encode('utf-8')) if client.connect(): client.process()
def send_alert(self, to_users, subject, message, from_user, sub_group): jid_list = [] from_jid = get_config("JABBER_FROM_JID", None).value from_password = get_config("JABBER_FROM_PASSWORD", None).value jid_space_char = get_config("JABBER_LOCAL_SPACE_CHAR", None).value jabber_domain = get_config("JABBER_LOCAL_DOMAIN", None).value local_jabber = get_config("JABBER_LOCAL_ENABLED", None).value == "1" full_message = render_to_string("jabber_message.txt", {'subject': subject, 'message': message, 'sub_group': sub_group.name, 'from_user': from_user.username, 'time': datetime.now(pytz.utc)}) for user in to_users: if self.is_registered(user, sub_group): if local_jabber: jid_list.append(str("%s@%s" % (user.username.replace(" ", jid_space_char), jabber_domain))) for jid in user.jabber_accounts.all(): jid_list.append(str(jid.jid)) client = JabberClient(jid=str(from_jid), password=str(from_password), to_list=jid_list, message=str(full_message)) if client.connect(): client.process()
class App: def __init__(self,parent): self.parent=parent self.f = Frame(parent) self.arrPad=ArrowPad(self.f,self.controlButtonPress) self.arrPad.pack() self.optButton=Button(self.f,text="Options...",command=self.optionsButtonPress) self.optButton.pack() self.f.pack() if self.checkConfig(): self.connect() else: self.jabberClient=None OptionsWindow(self.f) if self.checkConfig(): self.connect() #self.f.after(1000,self.checkConnectionStatus) def connect(self): self.jabberClient=JabberClient(config.get("tkclient_username"),config.get("tkclient_password")) self.jabberClient.connect() self.signalConnectionStatus() def checkConfig(self): """Checks whether username, password and bot address are present in the config""" return config.get("tkclient_username") and config.get("tkclient_password") and config.get("bot_username") def optionsButtonPress(self): o=OptionsWindow(self.f) def checkConnectionStatus(self): print "status check" self.f.after(1000, self.checkConnectionStatus) def signalConnectionStatus(self): if not self.jabberClient or not self.jabberClient.isConnected(): self.arrPad.setSignal("connected","alert") return if self.jabberClient.isConnected(): self.arrPad.setSignal("connected","ok") def controlButtonPress(self,bName): #bName is "pan|tilt [+-][123]" command,amount=bName.split() amount=int(amount) if amount<0: direction=-1 amount=-amount else: direction=1 amount=amount degrees=int(config.get("tkclient_%s%d"%(command,amount))) #Look up config file vars like tkclient_pan1 self.jabberClient.sendMsg("%s %d"%(command,degrees*direction))
def connect(self): self.jabberClient=JabberClient(config.get("tkclient_username"),config.get("tkclient_password")) self.jabberClient.connect() self.signalConnectionStatus()