Changeset 9755
- Timestamp:
- 06/03/08 16:15:57 (6 months ago)
- Location:
- trunk/src
- Files:
-
- 2 modified
-
common/connection_handlers.py (modified) (3 diffs)
-
gajim.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/common/connection_handlers.py
r9749 r9755 1372 1372 HAS_IDLE = False 1373 1373 1374 self.gmail_last_tid = None 1375 self.gmail_last_time = None 1376 1374 1377 def build_http_auth_answer(self, iq_obj, answer): 1375 1378 if answer == 'yes': … … 1583 1586 gajim.log.debug('Got notification of new gmail e-mail on %s. Asking the server for more info.' % jid) 1584 1587 iq = common.xmpp.Iq(typ = 'get') 1585 iq.set Attr('id', '13')1588 iq.setID(self.connection.getAnID()) 1586 1589 query = iq.setTag('query') 1587 1590 query.setNamespace(common.xmpp.NS_GMAILNOTIFY) 1591 # we want only be notified about newer mails 1592 if self.gmail_last_tid: 1593 query.setAttr('newer-than-tid', self.gmail_last_tid) 1594 if self.gmail_last_time: 1595 query.setAttr('newer-than-time', self.gmail_last_time) 1588 1596 self.connection.send(iq) 1589 1597 raise common.xmpp.NodeProcessed … … 1602 1610 gmail_messages = gm.getTag('mailbox').getTags('mail-thread-info') 1603 1611 for gmessage in gmail_messages: 1604 sender = gmessage.getTag('senders').getTag('sender') 1605 if not sender: 1612 unread_senders = [] 1613 for sender in gmessage.getTag('senders').getTags('sender'): 1614 if sender.getAttr('unread') != '1': 1615 continue 1616 if sender.getAttr('name'): 1617 unread_senders.append(sender.getAttr('name') + '< ' + \ 1618 sender.getAttr('address') + '>') 1619 else: 1620 unread_senders.append(sender.getAttr('address')) 1621 1622 if not unread_senders: 1606 1623 continue 1607 gmail_from = sender.getAttr('address')1608 1624 gmail_subject = gmessage.getTag('subject').getData() 1609 1625 gmail_snippet = gmessage.getTag('snippet').getData() 1626 tid = int(gmessage.getAttr('tid')) 1627 if not self.gmail_last_tid or tid > self.gmail_last_tid: 1628 self.gmail_last_tid = tid 1610 1629 gmail_messages_list.append({ \ 1611 'From': gmail_from, \1630 'From': unread_senders, \ 1612 1631 'Subject': gmail_subject, \ 1613 'Snippet': gmail_snippet}) 1632 'Snippet': gmail_snippet, \ 1633 'url': gmessage.getAttr('url'), \ 1634 'participation': gmessage.getAttr('participation'), \ 1635 'messages': gmessage.getAttr('messages'), \ 1636 'date': gmessage.getAttr('date')}) 1637 self.gmail_last_time = int(gm.getTag('mailbox').getAttr( 1638 'result-time')) 1639 1614 1640 jid = gajim.get_jid_from_account(self.name) 1615 1641 gajim.log.debug(('You have %s new gmail e-mails on %s.') % (newmsgs, jid)) -
trunk/src/gajim.py
r9748 r9755 1649 1649 1650 1650 if gajim.config.get('notify_on_new_gmail_email_extra'): 1651 cnt = 0 1651 1652 for gmessage in gmail_messages_list: 1652 #FIXME: emulate Gtalk client popups. find out what they parse and how 1653 #they decide what to show 1654 # each message has a 'From', 'Subject' and 'Snippet' field 1655 text += _('\nFrom: %(from_address)s') % \ 1656 {'from_address': gmessage['From']} 1653 #FIXME: emulate Gtalk client popups. find out what they parse and 1654 # how they decide what to show each message has a 'From', 1655 # 'Subject' and 'Snippet' field 1656 if cnt >=5: 1657 break 1658 senders = reduce(lambda b, a: a + ',\n ' + b, 1659 gmessage['From']) 1660 text += _('\n\nFrom: %(from_address)s\nSubject: %(subject)s\n%(snippet)s') % \ 1661 {'from_address': senders, 'subject': gmessage['Subject'], 1662 'snippet': gmessage['Snippet']} 1663 cnt += 1 1657 1664 1658 1665 if gajim.config.get_per('soundevents', 'gmail_received', 'enabled'): … … 1660 1667 path = gtkgui_helpers.get_path_to_generic_or_avatar(img) 1661 1668 notify.popup(_('New E-mail'), jid, account, 'gmail', 1662 path_to_image = path, title = title, text = text) 1669 path_to_image=path, title=title, 1670 text=gobject.markup_escape_text(text)) 1663 1671 1664 1672 if self.remote_ctrl:
