def _got_hello_ack(self): self.log(logging.INFO, "Sending credentials") d = { 'login':utils.str2win(self._login), 'password':utils.str2win(self.__password), 'status':self.__status, 'user_agent':utils.str2win(self.__agent) } p = protocol.MMPPacket(typ=MRIM_CS_LOGIN2,dict=d) self._send_packet(p)
def mmp_add_sms_contact(self,phone,nick='',status=0,ackf=None,acka={}): if (phone in self.contact_list.getEmails()) and not \ (self.contact_list.isIgnoredUser(phone) or \ self.contact_list.isRemovedUser(phone)): return if not nick: nick = phone enc_nick = utils.str2win(nick) d = { 'flags': CONTACT_FLAG_SMS, 'group_id': 1000003, 'email': "phone", 'name': enc_nick, 'phones': phone, 'text':utils.encode_auth_string(self.myname,' ') } p = protocol.MMPPacket(typ=MRIM_CS_ADD_CONTACT,dict=d) ret_id = self._send_packet(p) self.ack_buf[ret_id] = { 'mail':"phone", 'nick':nick, 'status':status } if ackf: self.ack_buf[ret_id].update({'ackf':ackf,'acka':acka})
def mmp_send_subscribe(self, to, body=' '): if (to in self.contact_list.getEmails()) and (not self.contact_list.getAuthFlag(to)): return enc_body = utils.str2win(body) msg = protocol.Message(to,enc_body,flags=[MESSAGE_FLAG_AUTHORIZE]) self._send_packet(msg)
def mmp_send_message(self, to, body, ackf=None, acka={}): enc_body = utils.str2win(body) #msg = protocol.Message(to,enc_body) msg = protocol.Message(to,enc_body,flags=[MESSAGE_FLAG_RTF]) ret_id = self._send_packet(msg) if ackf: self.ack_buf[ret_id] = {'ackf':ackf,'acka':acka}
def workup_search_input(mess): xdf = [i for i in mess.getQueryChildren() if i.getNamespace() == xmpp.NS_DATA] d = {} if not xdf: return d xdata = xmpp.protocol.DataForm(node=xdf[0]) for k,v in xdata.asDict().items(): if not v: continue value = utils.str2win(v.strip()) if not value: continue if k == 'email': d = {} user = domain = '' try: user, domain = value.split('@') except ValueError: pass if user and domain: d[MRIM_CS_WP_REQUEST_PARAM_USER] = user d[MRIM_CS_WP_REQUEST_PARAM_DOMAIN] = domain return d elif k == 'nick': d[MRIM_CS_WP_REQUEST_PARAM_NICKNAME] = value elif k == 'firstname': d[MRIM_CS_WP_REQUEST_PARAM_FIRSTNAME] = value elif k == 'lastname': d[MRIM_CS_WP_REQUEST_PARAM_LASTNAME] = value elif k == 'sex': d[MRIM_CS_WP_REQUEST_PARAM_SEX] = value elif k == 'age_from': d[MRIM_CS_WP_REQUEST_PARAM_DATE1] = value elif k == 'age_to': d[MRIM_CS_WP_REQUEST_PARAM_DATE2] = value elif k == 'city_id': d[MRIM_CS_WP_REQUEST_PARAM_CITY_ID] = value elif k == 'country_id': d[MRIM_CS_WP_REQUEST_PARAM_COUNTRY_ID] = value elif k == 'zodiac': d[MRIM_CS_WP_REQUEST_PARAM_ZODIAC] = value elif k == 'birthmonth': d[MRIM_CS_WP_REQUEST_PARAM_BIRTHDAY_MONTH] = value elif k == 'birthday': d[MRIM_CS_WP_REQUEST_PARAM_BIRTHDAY_DAY] = value elif k == 'online' and value in ['1', 'true']: d[MRIM_CS_WP_REQUEST_PARAM_ONLINE] = ' ' return d
def mmp_modify_sms(self, e_mail, numbers, ackf=None, acka={}): if e_mail in self.contact_list.getEmails(): contact_id = self.contact_list.getUserId(e_mail) name = self.contact_list.getUserNick(e_mail) phones = ','.join(numbers) group_id = self.contact_list.getUserGroup(e_mail) flags = self.contact_list.getUserFlags(e_mail) d = { 'id':contact_id, 'flags': flags, 'group_id':group_id, 'contact':e_mail, 'name':utils.str2win(name), 'phones':phones } p = protocol.MMPPacket(typ=MRIM_CS_MODIFY_CONTACT,dict=d) ret_id = self._send_packet(p) if ackf: self.ack_buf[ret_id].update({'ackf':ackf,'acka':acka})
def mmp_del_contact(self, e_mail, ackf=None, acka={}): if e_mail in self.contact_list.getEmails(): contact_id = self.contact_list.getUserId(e_mail) name = self.contact_list.getUserNick(e_mail) phones = self.contact_list.getPhones(e_mail) flags = self.contact_list.getUserFlags(e_mail) | 0x1 d = { 'id':contact_id, 'flags': flags, 'group_id':0, 'contact':e_mail, 'name':utils.str2win(name), 'phones':','.join(phones) } p = protocol.MMPPacket(typ=MRIM_CS_MODIFY_CONTACT,dict=d) ret_id = self._send_packet(p) self.ack_buf[ret_id] = {'mail':e_mail} if ackf: self.ack_buf[ret_id].update({'ackf':ackf,'acka':acka})
def process_send_sms_xdata(xdata): ret_code = False fields = validate_send_sms_xdata(xdata) if not fields: result = i18n.BAD_XDATA else: number = fields['number'] text = fields['text'] translit = fields['translit'] if utils.is_valid_sms_number(number): enc_text = utils.str2win(text) if translit=='1': enc_text = utils.translit(enc_text) if utils.is_valid_sms_text(enc_text): ret_code = True result = [number, enc_text] else: result = i18n.TOO_BIG_SMS_TEXT else: result = i18n.INCORRECT_SMS_NUMBER return (ret_code, result)