implement chatoob messages command

This commit is contained in:
Christophe Benz 2010-05-16 17:42:27 +02:00
commit a4a74eda4f
4 changed files with 40 additions and 5 deletions

View file

@ -38,7 +38,7 @@ from weboob.backends.aum.pages.login import LoginPage, RedirectPage, BanPage, Er
from weboob.backends.aum.pages.edit import EditPhotoPage, EditPhotoCbPage, EditAnnouncePage, EditDescriptionPage, EditSexPage, EditPersonalityPage
from weboob.backends.aum.pages.wait import WaitPage
from weboob.capabilities.chat import Contact
from weboob.capabilities.chat import ChatContact, ChatMessage
__all__ = ['AdopteUnMec']
@ -271,11 +271,22 @@ class AdopteUnMec(BaseBrowser):
print 'isSlutOnline(%s) = %s' % (id, r)
return r
def iter_chat_contacts(self, online=True, offline=True):
def _get_chat_infos(self):
json = simplejson.load(self.openurl('http://www.adopteunmec.com/1.1_cht_get.php?anticache=%f' % random.random()))
if json['error']:
raise ChatException(u'Error while getting chat infos. json:\n%s' % json)
for contact in json['contacts']:
return json
def iter_chat_contacts(self, online=True, offline=True):
def iter_dedupe(contacts):
yielded_ids = set()
for contact in contacts:
if contact['id'] not in yielded_ids:
yield contact
yielded_ids.add(contact['id'])
json = self._get_chat_infos()
for contact in iter_dedupe(json['contacts']):
if online and contact['cat'] == 1 or offline and contact['cat'] == 3:
if contact['cat'] == 1:
online = True
@ -283,7 +294,13 @@ class AdopteUnMec(BaseBrowser):
online = False
else:
raise ChatException(u'Unknown online status: contact=%s' % contact)
yield Contact(_id=contact['id'], pseudo=contact['pseudo'], online=online, avatar_url=contact['cover'], age=contact['birthday'])
yield ChatContact(_id=contact['id'], pseudo=contact['pseudo'], online=online, avatar_url=contact['cover'], age=contact['birthday'])
def iter_chat_messages(self, _id=None):
json = self._get_chat_infos()
if json['messages'] is not None:
for message in json['messages']:
yield ChatMessage(id_from=message['id_from'], id_to=message['id_to'], message=message['message'], date=message['date'])
def send_chat_message(self, _id, message):
url = 'http://www.adopteunmec.com/1.1_cht_send.php?anticache=%f' % random.random()