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

View file

@ -22,7 +22,7 @@ import urllib
from weboob.tools.browser import BaseBrowser, BasePage
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']
@ -43,7 +43,8 @@ class OkCBrowser(BaseBrowser):
('http://%s/messages\?.*' % DOMAIN, MessagesPage),
('http://%s/profile/.*/photos' % DOMAIN, PhotosPage),
('http://%s/profile/[^/]*' % DOMAIN, ProfilePage),
('http://%s/visitors' % DOMAIN, VisitsPage)
('http://%s/visitors' % DOMAIN, VisitsPage),
('http://%s/quickmatch' % DOMAIN, QuickMatchPage)
))
logged_in = False
@ -182,21 +183,11 @@ class OkCBrowser(BaseBrowser):
# else:
# return True
#def search_profiles(self, **kwargs):
# if self.search_query is None:
# r = self.api_request('searchs', '[default]')
# self.search_query = r['result']['search']['query']
# 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
def search_profiles(self, **kwargs):
self.location(self.absurl('/quickmatch'))
user_id = self.page.get_id()
return set([user_id])
@check_login
def get_profile(self, id):

View file

@ -204,4 +204,10 @@ class VisitsPage(BasePage):
'date': visitor_timestamp
})
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