本文整理汇总了Python中papyon.gnet.message.HTTP.HTTPMessage.parse方法的典型用法代码示例。如果您正苦于以下问题:Python HTTPMessage.parse方法的具体用法?Python HTTPMessage.parse怎么用?Python HTTPMessage.parse使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类papyon.gnet.message.HTTP.HTTPMessage
的用法示例。
在下文中一共展示了HTTPMessage.parse方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: parse
# 需要导入模块: from papyon.gnet.message.HTTP import HTTPMessage [as 别名]
# 或者: from papyon.gnet.message.HTTP.HTTPMessage import parse [as 别名]
def parse(self, chunk):
HTTPMessage.parse(self, chunk)
content_type = self.headers.get("Content-Type", "null")
raw_body = self.body
self.body = SLPMessageBody.build(content_type, raw_body)
示例2: _handle_MSG
# 需要导入模块: from papyon.gnet.message.HTTP import HTTPMessage [as 别名]
# 或者: from papyon.gnet.message.HTTP.HTTPMessage import parse [as 别名]
def _handle_MSG(self, command):
message = Message(None, command.payload)
content_type = message.content_type
if content_type[0] == 'text/x-msmsgsprofile':
self._client.profile._server_property_changed("profile",
command.payload)
if self._protocol_version < 15:
#self._send_command('SYN', ('0', '0'))
raise NotImplementedError, "Missing Implementation, please fix"
else:
self._send_command("BLP",
(self._client.profile.privacy,))
self._state = ProtocolState.SYNCHRONIZING
self._client.address_book.sync()
elif content_type[0] in \
('text/x-msmsgsinitialmdatanotification', \
'text/x-msmsgsoimnotification'):
if self._client.oim_box is not None:
self._client.oim_box._state = \
OIM.OfflineMessagesBoxState.NOT_SYNCHRONIZED
m = HTTPMessage()
m.parse(message.body)
mail_data = m.get_header('Mail-Data').strip()
if mail_data == 'too-large':
mail_data = None
self._client.oim_box.sync(mail_data)
if mail_data and \
content_type[0] == 'text/x-msmsgsinitialmdatanotification':
#Initial mail
start = mail_data.find('<IU>') + 4
end = mail_data.find('</IU>')
if start < end:
mailbox_unread = int(mail_data[start:end])
self._client.mailbox._initial_set(mailbox_unread)
elif content_type[0] == 'text/x-msmsgsinitialemailnotification':
#Initial mail (obsolete by MSNP11)
pass
elif content_type[0] == 'text/x-msmsgsemailnotification':
#New mail
m = HTTPMessage()
m.parse(message.body)
name = m.get_header('From')
address = m.get_header('From-Addr')
subject = m.get_header('Subject')
message_url = m.get_header('Message-URL')
post_url = m.get_header('Post-URL')
post_id = m.get_header('id')
dest = m.get_header('Dest-Folder')
if dest == 'ACTIVE':
self._client.mailbox._unread_mail_increased(1)
build = self._build_url_post_data
post_url, form_data = build(message_url, post_url, post_id)
self._client.mailbox._new_mail(name, address, subject,
post_url, form_data)
elif content_type[0] == 'text/x-msmsgsactivemailnotification':
#Movement of unread mail
m = HTTPMessage()
m.parse(message.body)
src = m.get_header('Src-Folder')
dest = m.get_header('Dest-Folder')
delta = int(m.get_header('Message-Delta'))
if src == 'ACTIVE':
self._client.mailbox._unread_mail_decreased(delta)
elif dest == 'ACTIVE':
self._client.mailbox._unread_mail_increased(delta)
示例3: _handle_MSG
# 需要导入模块: from papyon.gnet.message.HTTP import HTTPMessage [as 别名]
# 或者: from papyon.gnet.message.HTTP.HTTPMessage import parse [as 别名]
def _handle_MSG(self, command):
message = Message(None, command.payload)
content_type = message.content_type
if content_type[0] == 'text/x-msmsgsprofile':
profile = {}
lines = command.payload.split("\r\n")
for line in lines:
line = line.strip()
if line:
name, value = line.split(":", 1)
profile[name] = value.strip()
self._client.profile._server_property_changed("profile", profile)
self.set_privacy(self._client.profile.privacy)
self._state = ProtocolState.SYNCHRONIZING
self._client.address_book.sync()
elif content_type[0] in \
('text/x-msmsgsinitialmdatanotification', \
'text/x-msmsgsoimnotification'):
if self._client.oim_box is not None:
self._client.oim_box._state = \
OIM.OfflineMessagesBoxState.NOT_SYNCHRONIZED
m = HTTPMessage()
m.parse(message.body)
mail_data = m.get_header('Mail-Data').strip()
if mail_data == 'too-large':
mail_data = None
self._client.oim_box.sync(mail_data)
if mail_data and \
content_type[0] == 'text/x-msmsgsinitialmdatanotification':
#Initial mail
start = mail_data.find('<IU>') + 4
end = mail_data.find('</IU>')
if start < end:
mailbox_unread = int(mail_data[start:end])
self._client.mailbox._initial_set(mailbox_unread)
elif content_type[0] == 'text/x-msmsgsinitialemailnotification':
#Initial mail (obsolete by MSNP11)
pass
elif content_type[0] == 'text/x-msmsgsemailnotification':
#New mail
m = HTTPMessage()
m.parse(message.body)
name = decode_rfc2047_string(m.get_header('From'))
address = m.get_header('From-Addr')
subject = decode_rfc2047_string(m.get_header('Subject'))
message_url = m.get_header('Message-URL')
post_url = m.get_header('Post-URL')
post_id = m.get_header('id')
dest = m.get_header('Dest-Folder')
if dest == 'ACTIVE':
self._client.mailbox._unread_mail_increased(1)
build = self._build_url_post_data
post_url, form_data = build(message_url, post_url, post_id)
self._client.mailbox._new_mail(name, address, subject,
post_url, form_data)
elif content_type[0] == 'text/x-msmsgsactivemailnotification':
#Movement of unread mail
m = HTTPMessage()
m.parse(message.body)
src = m.get_header('Src-Folder')
dest = m.get_header('Dest-Folder')
delta = int(m.get_header('Message-Delta'))
if src == 'ACTIVE':
self._client.mailbox._unread_mail_decreased(delta)
elif dest == 'ACTIVE':
self._client.mailbox._unread_mail_increased(delta)