LINUX.ORG.RU

История изменений

Исправление noname_user, (текущая версия) :

вообще суть вот в чем, используя websocket-client либу:

class Dropmail:
	def __init__(self, server='wss://dropmail.me/websocket'):
		self.emails = dict()
		self.default_email = None
		self._supported_domains = None

		self.socket = websocket.create_connection(server)
так вот если подрубиться к нему (self.socket.recv()) тут же получим адрес почты (в моем конкретно случае) и соответственно если постоянно дергать while True это:
	def next_message(self):
		# Message contains an 'I' character followed by
		# a json-encoded message
		raw_message = self.socket.recv()[1:]
		message = json.loads(raw_message)
		return message
мы будем тягать все ответы что логично и основной вопрос это как мне слать пакет к примеру на получение или восстановления почты (опять же на конкретном примере) и получать его в ответе например ф-ции get_new_mail, вся проблема в зацикленном next_message, то есть я вечно чекаю на наличие новых сообщений и при попытке создать новый ящик вся логика пойдет к черту.
Хоть убейте не могу понять как это без костылей и говнокода решить

код get_new_mail:
	def get_new_mail(self, domain=None):
		if domain in self.supported_domains:
			packet = 'A{}'.format(domain)
		elif not domain:
			packet = 'M'
		else:
			raise ValueError('Requested address from domain "{}", but not in list of supported domains\n({})'.format(domain, self.supported_domains))

		self.socket.send(packet)
		account_info = self.socket.recv()

Исходная версия noname_user, :

вообще суть вот в чем, используя websocket-client либу:

class Dropmail:
	def __init__(self, server='wss://dropmail.me/websocket'):
		self.emails = dict()
		self.default_email = None
		self._supported_domains = None

		self.socket = websocket.create_connection(server)
так вот если подрубиться к нему (self.socket.recv()) тут же получим адрес почты (в моем конкретно случае) и соответственно если постоянно дергать while True это:
	def next_message(self):
		# Message contains an 'I' character followed by
		# a json-encoded message
		raw_message = self.socket.recv()[1:]
		message = json.loads(raw_message)
		return message
мы будем тягать все ответы что логично и основной вопрос это как мне слать пакет к примеру на получение или восстановления почты (опять же на конкретном примере) и получать его в ответе например ф-ции get_new_mail, вся проблема в зацикленном next_message, то есть я вечно чекаю на наличие новых сообщений и при попытке создать новый ящик вся логика пойдет к черту.
Хоть убейте не могу понять как это без костылей и говнокода решить