[okc] Initial message posting

This commit is contained in:
Roger Philibert 2012-03-22 02:32:47 +01:00 committed by Romain Bignon
commit 5b508ca340
3 changed files with 18 additions and 23 deletions

View file

@ -42,7 +42,6 @@ from .browser import OkCBrowser
__all__ = ['OkCBackend'] __all__ = ['OkCBackend']
def parse_dt(s): def parse_dt(s):
now = datetime.datetime.now() now = datetime.datetime.now()
if u'' in s: if u'' in s:
@ -62,8 +61,7 @@ def parse_dt(s):
d = _parse_dt(s) d = _parse_dt(s)
return local2utc(d) return local2utc(d)
class OkCBackend(BaseBackend, ICapMessages, ICapContact): class OkCBackend(BaseBackend, ICapMessages, ICapContact, ICapMessagesPost):
#, ICapMessagesPost, ICapContact):
NAME = 'okc' NAME = 'okc'
MAINTAINER = 'Roger Philibert' MAINTAINER = 'Roger Philibert'
EMAIL = 'roger.philibert@gmail.com' EMAIL = 'roger.philibert@gmail.com'
@ -223,9 +221,9 @@ class OkCBackend(BaseBackend, ICapMessages, ICapContact):
# ---- ICapMessagesPost methods --------------------- # ---- ICapMessagesPost methods ---------------------
#def post_message(self, message): def post_message(self, message):
# with self.browser: with self.browser:
# self.browser.post_mail(message.thread.id, message.content) self.browser.post_mail(message.thread.id, message.content)
# ---- ICapContact methods --------------------- # ---- ICapContact methods ---------------------

View file

@ -32,7 +32,7 @@ except ImportError:
from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword, BrowserUnavailable from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword, BrowserUnavailable
from weboob.tools.ordereddict import OrderedDict from weboob.tools.ordereddict import OrderedDict
from .pages import LoginPage, ThreadPage, MessagesPage, ProfilePage, PhotosPage from .pages import LoginPage, ThreadPage, MessagesPage, PostMessagePage, ProfilePage, PhotosPage
__all__ = ['OkCBrowser'] __all__ = ['OkCBrowser']
@ -47,6 +47,7 @@ class OkCBrowser(BaseBrowser):
PAGES = OrderedDict(( PAGES = OrderedDict((
('https://%s/login.*' % DOMAIN, LoginPage), ('https://%s/login.*' % DOMAIN, LoginPage),
('http://%s/messages' % DOMAIN, ThreadPage), ('http://%s/messages' % DOMAIN, ThreadPage),
('http://%s/messages\?compose=1' % DOMAIN, PostMessagePage),
('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),
@ -151,22 +152,11 @@ class OkCBrowser(BaseBrowser):
break break
return mails return mails
#@check_login @check_login
#@url2id def post_mail(self, id, content):
#def post_mail(self, id, content): self.location(self.absurl('/messages?compose=1'))
# new_content = u'' content = content.replace('\n', '\r\n').encode('Windows-1252', 'replace')
# for c in content: self.page.post_mail(id, content)
# try:
# new_content += '&%s;' % codepoint2name[ord(c)]
# except KeyError:
# new_content += c
# content = new_content.replace('\n', '\r\n').encode('Windows-1252', 'replace')
# try:
# self.api_request('message', 'new', data={'memberId': id, 'message': content})
# except AuMException, e:
# raise CantSendMessage(unicode(e))
#@check_login #@check_login
#@url2id #@url2id

View file

@ -134,3 +134,10 @@ class PhotosPage(BasePage):
def get_photos(self): def get_photos(self):
imgs = self.parser.select(self.document.getroot(), "//div[@class='pic clearfix']//img", method='xpath') imgs = self.parser.select(self.document.getroot(), "//div[@class='pic clearfix']//img", method='xpath')
return [img.get('src') for img in imgs] return [img.get('src') for img in imgs]
class PostMessagePage(BasePage):
def post_mail(self, id, content):
self.browser.select_form(name='f2')
self.browser['r1'] = id
self.browser['body'] = content
self.browser.submit()