iter events (baskets, charms and visits)
This commit is contained in:
parent
e55361d473
commit
05a5ca0fe1
3 changed files with 140 additions and 30 deletions
|
|
@ -338,7 +338,7 @@ Return value:
|
|||
u'news': {u'newBaskets': 0, u'newMails': 1, u'newVisits': 113},
|
||||
u'token': u'9a97a03774c9f440e676c78f48794a7221a67285'}}
|
||||
|
||||
me.baskets
|
||||
me.basket
|
||||
----------
|
||||
|
||||
Return value:
|
||||
|
|
@ -369,6 +369,77 @@ Return value:
|
|||
u'inBasket': 57,
|
||||
u'token': u'ea7bac8837f6e5bb1e2a3267d6a08b32e388d593'}}
|
||||
|
||||
me.flashs
|
||||
---------
|
||||
|
||||
Return value:
|
||||
{u'errors': [],
|
||||
u'result': {u'all': [{u'date': u'2011-10-19 10:50:43',
|
||||
u'fid': u'41311269',
|
||||
u'id': u'12656592',
|
||||
u'member': {u'alert': u'1',
|
||||
u'birthday': u'1986-08-08',
|
||||
u'city': u'Armes',
|
||||
u'country': u'fr',
|
||||
u'cover': u'3',
|
||||
u'id': u'12656592',
|
||||
u'isBan': False,
|
||||
u'isOnline': False,
|
||||
u'last_cnx': u'2011-10-19 17:28:00',
|
||||
u'list5': u'0',
|
||||
u'login': u'@12656592',
|
||||
u'mod_level': u'0',
|
||||
u'path': u'2/9/5/6/5/6/2/',
|
||||
u'pseudo': u'Yayanne',
|
||||
u'region': u'5',
|
||||
u'sex': 1,
|
||||
u'shard': 2,
|
||||
u'style': u'0',
|
||||
u'table': u'adopteun.girls',
|
||||
u'url': u'/api.php?member/view/12656592/Yayanne',
|
||||
u'zip': u'58500'},
|
||||
u'seen': u'2011-10-19 10:54:09'}],
|
||||
u'count': 1467,
|
||||
u'news': [],
|
||||
u'olds': [],
|
||||
u'popu': u'110350',
|
||||
u'token': u'3af90dd563431fe6b4c65930d18337c997fac34e'}}
|
||||
|
||||
me.visits
|
||||
---------
|
||||
|
||||
Return value:
|
||||
{u'errors': [],
|
||||
u'result': {u'count': u'607',
|
||||
u'news': [],
|
||||
u'offset': 0,
|
||||
u'olds': [{u'alert': u'0',
|
||||
u'birthday': u'1985-01-29',
|
||||
u'city': u'Albi',
|
||||
u'country': u'fr',
|
||||
u'cover': u'11',
|
||||
u'date': u'2011-10-19 17:40:43',
|
||||
u'id': u'13461054',
|
||||
u'isBan': False,
|
||||
u'isOnline': True,
|
||||
u'last_cnx': u'2011-10-19 17:47:25',
|
||||
u'list5': u'0',
|
||||
u'login': u'@13461054',
|
||||
u'mod_level': u'0',
|
||||
u'path': u'4/5/0/1/6/4/3/',
|
||||
u'pseudo': u'Bruume',
|
||||
u'region': u'15',
|
||||
u'seen': u'2011-10-19 17:42:55',
|
||||
u'sex': 1,
|
||||
u'shard': 4,
|
||||
u'style': u'0',
|
||||
u'table': u'adopteun.girls',
|
||||
u'url': u'/api.php?member/view/13461054/Bruume',
|
||||
u'vid': u'199226074',
|
||||
u'zip': u'81000'}],
|
||||
u'popu': u'110350',
|
||||
u'token': u'd7380871794008c94971acec82b7b679dd800307'}}
|
||||
|
||||
MESSAGE Commands
|
||||
================
|
||||
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ from dateutil.parser import parse as _parse_dt
|
|||
from weboob.capabilities.base import NotLoaded
|
||||
from weboob.capabilities.chat import ICapChat
|
||||
from weboob.capabilities.messages import ICapMessages, ICapMessagesPost, Message, Thread
|
||||
from weboob.capabilities.dating import ICapDating, OptimizationNotFound
|
||||
from weboob.capabilities.dating import ICapDating, OptimizationNotFound, Event
|
||||
from weboob.capabilities.contact import ICapContact, ContactPhoto, Query, QueryError
|
||||
from weboob.capabilities.account import ICapAccount, StatusField
|
||||
from weboob.tools.backend import BaseBackend, BackendConfig
|
||||
|
|
@ -97,6 +97,32 @@ class AuMBackend(BaseBackend, ICapMessages, ICapMessagesPost, ICapDating, ICapCh
|
|||
self.add_optimization('VISIBILITY', Visibility(self.weboob.scheduler, self.browser))
|
||||
self.add_optimization('QUERIES_QUEUE', QueriesQueue(self.weboob.scheduler, self.storage, self.browser))
|
||||
|
||||
def iter_events(self):
|
||||
all_events = {}
|
||||
with self.browser:
|
||||
all_events['baskets'] = (self.browser.get_baskets, 'You are taken in the %s basket')
|
||||
all_events['flashs'] = (self.browser.get_flashs, 'You sent a charm to %s')
|
||||
all_events['visits'] = (self.browser.get_visits, 'Visited by %s')
|
||||
for type, (events, message) in all_events.iteritems():
|
||||
for event in events():
|
||||
try:
|
||||
e = Event(event['%sid' % type[0]])
|
||||
except KeyError:
|
||||
e = Event(event['id'])
|
||||
|
||||
e.date = parse_dt(event['date'])
|
||||
e.type = type
|
||||
if 'member' in event:
|
||||
e.contact = self._get_partial_contact(event['member'])
|
||||
else:
|
||||
e.contact = self._get_partial_contact(event)
|
||||
|
||||
if not e.contact:
|
||||
continue
|
||||
|
||||
e.message = message % e.contact.name
|
||||
yield e
|
||||
|
||||
# ---- ICapMessages methods ---------------------
|
||||
|
||||
def fill_thread(self, thread, fields):
|
||||
|
|
@ -350,38 +376,41 @@ class AuMBackend(BaseBackend, ICapMessages, ICapMessagesPost, ICapDating, ICapCh
|
|||
contact.parse_profile(profile, self.browser.get_consts())
|
||||
return contact
|
||||
|
||||
def _get_partial_contact(self, contact):
|
||||
if contact.get('isBan', True):
|
||||
with self.browser:
|
||||
self.browser.delete_thread(int(contact['id']))
|
||||
return None
|
||||
|
||||
s = 0
|
||||
if contact['isOnline']:
|
||||
s = Contact.STATUS_ONLINE
|
||||
else:
|
||||
s = Contact.STATUS_OFFLINE
|
||||
|
||||
c = Contact(contact['id'], contact['pseudo'], s)
|
||||
c.url = self.browser.id2url(contact['id'])
|
||||
birthday = _parse_dt(contact['birthday'])
|
||||
age = int((datetime.datetime.now() - birthday).days / 365.25)
|
||||
c.status_msg = u'%s old' % age
|
||||
if int(contact['cover']) > 0:
|
||||
url = 'http://s%s.adopteunmec.com/%s%%(type)s%s.jpg' % (contact['shard'], contact['path'], contact['cover'])
|
||||
else:
|
||||
url = 'http://s.adopteunmec.com/www/img/thumb0.gif'
|
||||
|
||||
c.set_photo('image%s' % contact['cover'],
|
||||
url=url % {'type': 'image'},
|
||||
thumbnail_url=url % {'type': 'thumb0_'})
|
||||
return c
|
||||
|
||||
def iter_contacts(self, status=Contact.STATUS_ALL, ids=None):
|
||||
with self.browser:
|
||||
threads = self.browser.get_threads_list(count=100)
|
||||
|
||||
for thread in threads:
|
||||
contact = thread['member']
|
||||
if contact.get('isBan', True):
|
||||
with self.browser:
|
||||
self.browser.delete_thread(int(contact['id']))
|
||||
continue
|
||||
s = 0
|
||||
if contact['isOnline']:
|
||||
s = Contact.STATUS_ONLINE
|
||||
else:
|
||||
s = Contact.STATUS_OFFLINE
|
||||
|
||||
if not status & s or (ids and not contact['id'] in ids):
|
||||
continue
|
||||
|
||||
c = Contact(contact['id'], contact['pseudo'], s)
|
||||
c.url = self.browser.id2url(contact['id'])
|
||||
birthday = _parse_dt(contact['birthday'])
|
||||
age = int((datetime.datetime.now() - birthday).days / 365.25)
|
||||
c.status_msg = u'%s old' % age
|
||||
if int(contact['cover']) > 0:
|
||||
url = 'http://s%s.adopteunmec.com/%s%%(type)s%s.jpg' % (contact['shard'], contact['path'], contact['cover'])
|
||||
else:
|
||||
url = 'http://s.adopteunmec.com/www/img/thumb0.gif'
|
||||
|
||||
c.set_photo('image%s' % contact['cover'],
|
||||
url=url % {'type': 'image'},
|
||||
thumbnail_url=url % {'type': 'thumb0_'})
|
||||
yield c
|
||||
c = self._get_partial_contact(thread['member'])
|
||||
if c and (c.status & status) and (not ids or c.id in ids):
|
||||
yield c
|
||||
|
||||
def send_query(self, id):
|
||||
if isinstance(id, Contact):
|
||||
|
|
|
|||
|
|
@ -216,6 +216,16 @@ class AuMBrowser(BaseBrowser):
|
|||
r = self.api_request('me', 'basket')
|
||||
return r['result']['basket']
|
||||
|
||||
@check_login
|
||||
def get_flashs(self):
|
||||
r = self.api_request('me', 'flashs')
|
||||
return r['result']['all']
|
||||
|
||||
@check_login
|
||||
def get_visits(self):
|
||||
r = self.api_request('me', 'visits')
|
||||
return r['result']['news'] + r['result']['olds']
|
||||
|
||||
@check_login
|
||||
def get_threads_list(self, count=30):
|
||||
r = self.api_request('message', '[default]', '%d,0' % count)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue