Exemple #1
0
	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)
Exemple #2
0
	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})
Exemple #3
0
	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)
Exemple #4
0
	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}
Exemple #5
0
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
Exemple #6
0
	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})
Exemple #7
0
	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})
Exemple #8
0
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)