Adding profile walker to okc
This commit is contained in:
parent
641bbf7a7a
commit
bf4300e9be
3 changed files with 18 additions and 18 deletions
|
|
@ -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 = {}
|
||||||
|
|
|
||||||
|
|
@ -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):
|
||||||
|
|
|
||||||
|
|
@ -205,3 +205,9 @@ class VisitsPage(BasePage):
|
||||||
})
|
})
|
||||||
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
|
||||||
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue