can use okc with monboob
This commit is contained in:
parent
a40643bf40
commit
db2494d3ad
3 changed files with 38 additions and 54 deletions
|
|
@ -157,7 +157,7 @@ class OkCBackend(BaseBackend, ICapMessages, ICapContact, ICapMessagesPost, ICapD
|
|||
|
||||
child = None
|
||||
msg = None
|
||||
slut = self._get_slut(mails['member']['pseudo'])
|
||||
slut = self._get_slut(thread.id)
|
||||
if contacts is None:
|
||||
contacts = {}
|
||||
|
||||
|
|
@ -166,7 +166,7 @@ class OkCBackend(BaseBackend, ICapMessages, ICapContact, ICapMessagesPost, ICapD
|
|||
|
||||
for mail in mails['messages']:
|
||||
flags = Message.IS_HTML
|
||||
if parse_dt(mail['date']) > slut['lastmsg'] and mail['id_from'] != self.browser.get_my_name():
|
||||
if parse_dt(mail['date']) > slut['lastmsg']:
|
||||
flags |= Message.IS_UNREAD
|
||||
|
||||
if get_profiles:
|
||||
|
|
@ -187,7 +187,7 @@ class OkCBackend(BaseBackend, ICapMessages, ICapContact, ICapMessagesPost, ICapD
|
|||
receivers=[my_name if mail['id_from'] != my_name else mails['member']['pseudo']],
|
||||
date=parse_dt(mail['date']),
|
||||
content=unescape(mail['message']).strip(),
|
||||
signature=signature,
|
||||
signature='<pre>%s</pre>' % signature,
|
||||
children=[],
|
||||
flags=flags)
|
||||
if child:
|
||||
|
|
@ -203,39 +203,19 @@ class OkCBackend(BaseBackend, ICapMessages, ICapContact, ICapMessagesPost, ICapD
|
|||
|
||||
return thread
|
||||
|
||||
#def iter_unread_messages(self, thread=None):
|
||||
# try:
|
||||
# contacts = {}
|
||||
# with self.browser:
|
||||
# threads = self.browser.get_threads_list()
|
||||
# for thread in threads:
|
||||
# if thread['member'].get('isBan', thread['member'].get('dead', False)):
|
||||
# with self.browser:
|
||||
# self.browser.delete_thread(int(thread['member']['id']))
|
||||
# continue
|
||||
# if self.antispam and not self.antispam.check_thread(thread):
|
||||
# self.logger.info('Skipped a spam-unread-thread from %s' % thread['member']['pseudo'])
|
||||
# self.report_spam(thread['member']['pseudo'])
|
||||
# continue
|
||||
# slut = self._get_slut(thread['member']['pseudo'])
|
||||
# if parse_dt(thread['date']) > slut['lastmsg']:
|
||||
# t = self.get_thread(thread['member']['pseudo'], contacts, get_profiles=True)
|
||||
# for m in t.iter_all_messages():
|
||||
# if m.flags & m.IS_UNREAD:
|
||||
# yield m
|
||||
|
||||
# except BrowserUnavailable as e:
|
||||
# self.logger.debug('No messages, browser is unavailable: %s' % e)
|
||||
# pass # don't care about waiting
|
||||
def iter_unread_messages(self, thread=None):
|
||||
contacts = {}
|
||||
for thread in self.browser.get_threads_list():
|
||||
t = self.get_thread(thread['username'], contacts, get_profiles=True)
|
||||
for m in t.iter_all_messages():
|
||||
if m.flags & m.IS_UNREAD:
|
||||
yield m
|
||||
|
||||
def set_message_read(self, message):
|
||||
if message.sender == self.browser.get_my_name():
|
||||
return
|
||||
|
||||
slut = self._get_slut(message.sender)
|
||||
slut = self._get_slut(message.thread.id)
|
||||
if slut['lastmsg'] < message.date:
|
||||
slut['lastmsg'] = message.date
|
||||
self.storage.set('sluts', message.sender, slut)
|
||||
self.storage.set('sluts', message.thread.id, slut)
|
||||
self.storage.save()
|
||||
|
||||
def _get_slut(self, id):
|
||||
|
|
@ -357,25 +337,25 @@ class OkCBackend(BaseBackend, ICapMessages, ICapContact, ICapMessagesPost, ICapD
|
|||
yield c
|
||||
|
||||
def send_query(self, id):
|
||||
if isinstance(id, Contact):
|
||||
id = id.id
|
||||
if isinstance(id, Contact):
|
||||
id = id.id
|
||||
|
||||
queries_queue = None
|
||||
try:
|
||||
queries_queue = self.get_optimization('QUERIES_QUEUE')
|
||||
except OptimizationNotFound:
|
||||
pass
|
||||
queries_queue = None
|
||||
try:
|
||||
queries_queue = self.get_optimization('QUERIES_QUEUE')
|
||||
except OptimizationNotFound:
|
||||
pass
|
||||
|
||||
if queries_queue and queries_queue.is_running():
|
||||
if queries_queue.enqueue_query(id):
|
||||
return Query(id, 'A profile was visited')
|
||||
else:
|
||||
return Query(id, 'Unable to visit profile: it has been enqueued')
|
||||
else:
|
||||
with self.browser:
|
||||
if not self.browser.visit_profile(id):
|
||||
raise QueryError('Could not visit profile')
|
||||
return Query(id, 'Profile was visited')
|
||||
if queries_queue and queries_queue.is_running():
|
||||
if queries_queue.enqueue_query(id):
|
||||
return Query(id, 'A profile was visited')
|
||||
else:
|
||||
return Query(id, 'Unable to visit profile: it has been enqueued')
|
||||
else:
|
||||
with self.browser:
|
||||
if not self.browser.visit_profile(id):
|
||||
raise QueryError('Could not visit profile')
|
||||
return Query(id, 'Profile was visited')
|
||||
|
||||
#def get_notes(self, id):
|
||||
# if isinstance(id, Contact):
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ class ProfilesWalker(Optimization):
|
|||
self.browser = browser
|
||||
self.logger = getLogger('walker', browser.logger)
|
||||
|
||||
self.config = storage.get('priority_connection', 'config', default=None)
|
||||
self.config = storage.get('profile_walker', 'config', default=None)
|
||||
if self.config == {}:
|
||||
self.config = None
|
||||
|
||||
|
|
@ -70,7 +70,7 @@ class ProfilesWalker(Optimization):
|
|||
|
||||
def set_config(self, params):
|
||||
self.config = params
|
||||
self.storage.set('priority_connection', 'config', self.config)
|
||||
self.storage.set('profile_walker', 'config', self.config)
|
||||
self.storage.save()
|
||||
|
||||
def get_config(self):
|
||||
|
|
|
|||
|
|
@ -43,6 +43,7 @@ class ThreadPage(BasePage):
|
|||
threads.append({
|
||||
u'username' : unicode(elem.getchildren()[0].get('href').split('/')[-1].split('?')[0]),
|
||||
u'id' : unicode(elem.get('id', '').split('_')[1]),
|
||||
u'date' : unicode(elem.find('.//p[@class="date"]').text)
|
||||
})
|
||||
|
||||
return threads
|
||||
|
|
@ -57,7 +58,10 @@ class MessagesPage(BasePage):
|
|||
'messages' : [],
|
||||
}
|
||||
|
||||
mails['member']['pseudo'] = self.document.xpath('//li[starts-with(@id, "usr_")]')[0].attrib['id'].split('_', 1)[-1]
|
||||
try:
|
||||
mails['member']['pseudo'] = self.document.xpath('//li[starts-with(@id, "usr_")]')[0].attrib['id'].split('_', 1)[-1]
|
||||
except IndexError:
|
||||
mails['member']['pseudo'] = 'Unknown'
|
||||
|
||||
for li_msg in reversed(ul_item.getchildren()):
|
||||
div = li_msg.getchildren()[1]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue