Adding profile walker to okc

This commit is contained in:
Ahmed Boussadia 2014-05-07 15:52:00 +02:00 committed by Romain Bignon
commit bf4300e9be
3 changed files with 18 additions and 18 deletions

View file

@ -36,6 +36,7 @@ from weboob.tools.misc import local2utc
from .browser import OkCBrowser from .browser import OkCBrowser
from .optim.visibility import Visibility from .optim.visibility import Visibility
from .optim.queries_queue import QueriesQueue from .optim.queries_queue import QueriesQueue
from .optim.profiles_walker import ProfilesWalker
__all__ = ['OkCBackend'] __all__ = ['OkCBackend']
@ -75,7 +76,8 @@ class OkCBackend(BaseBackend, ICapMessages, ICapContact, ICapMessagesPost, ICapD
DESCRIPTION = u'OkCupid dating website' DESCRIPTION = u'OkCupid dating website'
CONFIG = BackendConfig(Value('username', label='Username'), CONFIG = BackendConfig(Value('username', label='Username'),
ValueBackendPassword('password', label='Password')) ValueBackendPassword('password', label='Password'))
STORAGE = {'queries_queue': {'queue': []}, STORAGE = {'profiles_walker': {'viewed': []},
'queries_queue': {'queue': []},
'sluts': {}, 'sluts': {},
#'notes': {}, #'notes': {},
} }
@ -88,6 +90,7 @@ class OkCBackend(BaseBackend, ICapMessages, ICapContact, ICapMessagesPost, ICapD
def init_optimizations(self): def init_optimizations(self):
self.add_optimization('VISIBILITY', Visibility(self.weboob.scheduler, self.browser)) self.add_optimization('VISIBILITY', Visibility(self.weboob.scheduler, self.browser))
self.add_optimization('QUERIES_QUEUE', QueriesQueue(self.weboob.scheduler, self.storage, self.browser)) self.add_optimization('QUERIES_QUEUE', QueriesQueue(self.weboob.scheduler, self.storage, self.browser))
self.add_optimization('PROFILE_WALKER', ProfilesWalker(self.weboob.scheduler, self.storage, self.browser))
def iter_events(self): def iter_events(self):
all_events = {} all_events = {}

View file

@ -22,7 +22,7 @@ import urllib
from weboob.tools.browser import BaseBrowser, BasePage from weboob.tools.browser import BaseBrowser, BasePage
from weboob.tools.ordereddict import OrderedDict from weboob.tools.ordereddict import OrderedDict
from .pages import LoginPage, ThreadPage, MessagesPage, PostMessagePage, ProfilePage, PhotosPage, VisitsPage from .pages import LoginPage, ThreadPage, MessagesPage, PostMessagePage, ProfilePage, PhotosPage, VisitsPage, QuickMatchPage
__all__ = ['OkCBrowser'] __all__ = ['OkCBrowser']
@ -43,7 +43,8 @@ class OkCBrowser(BaseBrowser):
('http://%s/messages\?.*' % DOMAIN, MessagesPage), ('http://%s/messages\?.*' % DOMAIN, MessagesPage),
('http://%s/profile/.*/photos' % DOMAIN, PhotosPage), ('http://%s/profile/.*/photos' % DOMAIN, PhotosPage),
('http://%s/profile/[^/]*' % DOMAIN, ProfilePage), ('http://%s/profile/[^/]*' % DOMAIN, ProfilePage),
('http://%s/visitors' % DOMAIN, VisitsPage) ('http://%s/visitors' % DOMAIN, VisitsPage),
('http://%s/quickmatch' % DOMAIN, QuickMatchPage)
)) ))
logged_in = False logged_in = False
@ -182,21 +183,11 @@ class OkCBrowser(BaseBrowser):
# else: # else:
# return True # return True
#def search_profiles(self, **kwargs): @check_login
# if self.search_query is None: def search_profiles(self, **kwargs):
# r = self.api_request('searchs', '[default]') self.location(self.absurl('/quickmatch'))
# self.search_query = r['result']['search']['query'] user_id = self.page.get_id()
return set([user_id])
# params = {}
# for key, value in json.loads(self.search_query).iteritems():
# if isinstance(value, dict):
# for k, v in value.iteritems():
# params['%s%s' % (key, k.capitalize())] = v
# else:
# params[key] = value or ''
# r = self.api_request('searchs', 'advanced', '30,0', params)
# ids = [s['id'] for s in r['result']['search']]
# return set(ids)
@check_login @check_login
def get_profile(self, id): def get_profile(self, id):

View file

@ -204,4 +204,10 @@ class VisitsPage(BasePage):
'date': visitor_timestamp 'date': visitor_timestamp
}) })
return visitors return visitors
class QuickMatchPage(BasePage):
def get_id(self):
element = self.parser.select(self.document.getroot(), '//*[@id="sn"]', method='xpath')[0]
visitor_id = unicode(element.get('value'))
return visitor_id