pywebmail-checkins Mailing List for PyWebMail (Page 3)
Status: Beta
Brought to you by:
dubnerm
You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(45) |
Jul
(49) |
Aug
(70) |
Sep
(12) |
Oct
|
Nov
|
Dec
(14) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(9) |
Feb
(59) |
Mar
(66) |
Apr
(38) |
May
(1) |
Jun
(36) |
Jul
(2) |
Aug
|
Sep
(64) |
Oct
(22) |
Nov
(49) |
Dec
(20) |
2005 |
Jan
|
Feb
|
Mar
(57) |
Apr
(50) |
May
(4) |
Jun
(1) |
Jul
(34) |
Aug
(9) |
Sep
(18) |
Oct
(22) |
Nov
(6) |
Dec
(10) |
2006 |
Jan
(1) |
Feb
(1) |
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(53) |
Nov
|
Dec
|
2007 |
Jan
(29) |
Feb
(5) |
Mar
(57) |
Apr
(52) |
May
(14) |
Jun
(3) |
Jul
(20) |
Aug
(9) |
Sep
(2) |
Oct
(1) |
Nov
(11) |
Dec
(25) |
2008 |
Jan
|
Feb
|
Mar
(47) |
Apr
(2) |
May
|
Jun
|
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Michael D. <du...@us...> - 2008-03-02 10:37:28
|
Update of /cvsroot/pywebmail/webmail In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15575 Modified Files: on.version.txt Log Message: publicity: freshmeat and launchpad Index: on.version.txt =================================================================== RCS file: /cvsroot/pywebmail/webmail/on.version.txt,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** on.version.txt 16 Jul 2007 20:17:40 -0000 1.2 --- on.version.txt 2 Mar 2008 10:37:27 -0000 1.3 *************** *** 20,22 **** 19. Register new version in python repository: run 'setup.py register' 20. Register new version in Vaults of Parnassus (http://py.vaults.ca/) ! 21. Bump version number in webmail/version.py for future development --- 20,24 ---- 19. Register new version in python repository: run 'setup.py register' 20. Register new version in Vaults of Parnassus (http://py.vaults.ca/) ! 21. Register new release on FreshMeat (http://freshmeat.net/pywebmail/) ! 22. Register new release on LaunchPad (https://launchpad.net/pywebmail/) ! 23. Bump version number in webmail/version.py for future development |
From: Michael D. <du...@us...> - 2007-12-10 06:57:08
|
Update of /cvsroot/pywebmail/webmail/webmail/backends In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv585 Modified Files: smtp.py Log Message: py2.2 compatibility Index: smtp.py =================================================================== RCS file: /cvsroot/pywebmail/webmail/webmail/backends/smtp.py,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** smtp.py 10 Dec 2007 06:16:18 -0000 1.5 --- smtp.py 10 Dec 2007 06:57:10 -0000 1.6 *************** *** 150,156 **** smtp.connect(self.host, self.port) #code,data = smtp.helo(self.localhost) ! #log.debug('SMTP outbox: HELO %s: %s %s', smtp.local_hostname, code, data) code,data = smtp.ehlo(self.localhost) ! log.debug('SMTP outbox: EHLO %s: %s %s', smtp.local_hostname, code, data) if self.auth: smtp.login(self.user, self.password) --- 150,156 ---- smtp.connect(self.host, self.port) #code,data = smtp.helo(self.localhost) ! #log.debug('SMTP outbox: HELO %s: %s %s', self.localhost, code, data) code,data = smtp.ehlo(self.localhost) ! log.debug('SMTP outbox: EHLO %s: %s %s', self.localhost, code, data) if self.auth: smtp.login(self.user, self.password) |
From: Michael D. <du...@us...> - 2007-12-10 06:16:19
|
Update of /cvsroot/pywebmail/webmail/webmail/backends In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18229 Modified Files: smtp.py Log Message: py2.2 compatibility Index: smtp.py =================================================================== RCS file: /cvsroot/pywebmail/webmail/webmail/backends/smtp.py,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** smtp.py 8 Dec 2007 08:03:08 -0000 1.4 --- smtp.py 10 Dec 2007 06:16:18 -0000 1.5 *************** *** 146,155 **** sender = headers.getaddr('from') assert sender[0].lower() != self.email.lower(), "Sender sanity check failed" ! smtp = smtplib.SMTP(local_hostname=self.localhost) smtp.set_debuglevel(self.debug) smtp.connect(self.host, self.port) ! #code,data = smtp.helo() #log.debug('SMTP outbox: HELO %s: %s %s', smtp.local_hostname, code, data) ! code,data = smtp.ehlo() log.debug('SMTP outbox: EHLO %s: %s %s', smtp.local_hostname, code, data) if self.auth: --- 146,155 ---- sender = headers.getaddr('from') assert sender[0].lower() != self.email.lower(), "Sender sanity check failed" ! smtp = smtplib.SMTP() smtp.set_debuglevel(self.debug) smtp.connect(self.host, self.port) ! #code,data = smtp.helo(self.localhost) #log.debug('SMTP outbox: HELO %s: %s %s', smtp.local_hostname, code, data) ! code,data = smtp.ehlo(self.localhost) log.debug('SMTP outbox: EHLO %s: %s %s', smtp.local_hostname, code, data) if self.auth: |
From: Michael D. <du...@us...> - 2007-12-09 11:07:54
|
Update of /cvsroot/pywebmail/webmail/webmail/utils/xhttp In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8401 Modified Files: utils.py __init__.py Log Message: changes in blocking processing Index: utils.py =================================================================== RCS file: /cvsroot/pywebmail/webmail/webmail/utils/xhttp/utils.py,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** utils.py 1 Dec 2007 02:25:45 -0000 1.4 --- utils.py 9 Dec 2007 11:07:51 -0000 1.5 *************** *** 15,18 **** --- 15,19 ---- truefp = infp while not hasattr(truefp, 'setblocking'): + log.debug('socket fp object:\ntype = %s\n__class__ = %s\nrepr = %s\ndir = %s', type(truefp), getattr(truefp, '__class__', None), repr(truefp), dir(truefp)) if hasattr(truefp, 'fp'): truefp = truefp.fp *************** *** 21,24 **** --- 22,26 ---- else: break + log.debug('last socket fp object:\ntype = %s\n__class__ = %s\nrepr = %s\ndir = %s', type(truefp), getattr(truefp, '__class__', None), repr(truefp), dir(truefp)) if not hasattr(truefp, 'setblocking'): log.warn('Switching to blocking retrieve - non-socket object') *************** *** 59,62 **** --- 61,65 ---- if reporthook: reporthook(blocknum, bs, size) + return blocking class HTTPNoRedirectHandler(urllib2.HTTPRedirectHandler): Index: __init__.py =================================================================== RCS file: /cvsroot/pywebmail/webmail/webmail/utils/xhttp/__init__.py,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** __init__.py 8 Dec 2007 08:00:15 -0000 1.24 --- __init__.py 9 Dec 2007 11:07:51 -0000 1.25 *************** *** 167,172 **** if headers.has_key('content-length'): size = int(headers['Content-Length']) ! _socketretrieve(fp, tfp, reporthook, size, blocking=blocking, read_timeout=read_timeout, log=log) fp.close() if fn: --- 167,173 ---- if headers.has_key('content-length'): size = int(headers['Content-Length']) ! blocking = _socketretrieve(fp, tfp, reporthook, size, blocking=blocking, read_timeout=read_timeout, log=log) + if blocking: parse_chunked = 0 # specific of httplib.HTTPResponse fp.close() if fn: |
From: Michael D. <du...@us...> - 2007-12-09 11:05:57
|
Update of /cvsroot/pywebmail/webmail/webmail In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7668 Modified Files: settings.py Log Message: logging setup Index: settings.py =================================================================== RCS file: /cvsroot/pywebmail/webmail/webmail/settings.py,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** settings.py 8 Dec 2007 08:03:08 -0000 1.19 --- settings.py 9 Dec 2007 11:05:59 -0000 1.20 *************** *** 161,164 **** --- 161,165 ---- webmail.utils.xlogging.logConfig("webmail.utils.xhttp", verbose=self.verbose-1) webmail.utils.xlogging.logConfig("webmail.utils.xhttp.result", verbose=self.verbose-2) + webmail.utils.xlogging.logConfig("webmail.utils.xhttp.utils", verbose=self.verbose-2) webmail.utils.xlogging.logConfig("webmail.utils", verbose=self.verbose-1) webmail.utils.xlogging.logConfig("cookielib", verbose=self.verbose-1) |
From: Michael D. <du...@us...> - 2007-12-09 07:25:20
|
Update of /cvsroot/pywebmail/webmail/webmail/utils/xhttp In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29527 Modified Files: xCookie.py Log Message: minor fix Index: xCookie.py =================================================================== RCS file: /cvsroot/pywebmail/webmail/webmail/utils/xhttp/xCookie.py,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** xCookie.py 29 Nov 2007 23:38:02 -0000 1.5 --- xCookie.py 9 Dec 2007 07:25:21 -0000 1.6 *************** *** 90,93 **** --- 90,94 ---- domain = c[3].lower() host = host.lower() + path = path or '/' if path[:len(c[2])].lower() != c[2].lower(): log.debug('check_path: %s filtered out due to path: "%s" doesn\'t starts with "%s"' % (c[0], path, c[2])) |
From: Michael D. <du...@us...> - 2007-12-08 18:11:32
|
Update of /cvsroot/pywebmail/webmail/webmail/client/config In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13160 Modified Files: pochta.ru.xml Log Message: minor changes Index: pochta.ru.xml =================================================================== RCS file: /cvsroot/pywebmail/webmail/webmail/client/config/pochta.ru.xml,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** pochta.ru.xml 8 Dec 2007 07:52:56 -0000 1.15 --- pochta.ru.xml 8 Dec 2007 16:55:08 -0000 1.16 *************** *** 58,62 **** <test ref="relogin_error_re" inverse="true" result="relogin" error_group="1"/> <test ref="err_report_re" inverse="true" error_group="1"/> ! <test>^Set-Cookie: just_logout=<value name="user"/>%40<value name="domain"/>\r?$</test> <test>^Location: (?:http://www\.pochta\.ru)?/(?:index\.php)?(?:\?lng=[a-z]+)?\r?$</test> </check> --- 58,62 ---- <test ref="relogin_error_re" inverse="true" result="relogin" error_group="1"/> <test ref="err_report_re" inverse="true" error_group="1"/> ! <!--test>^Set-Cookie: just_logout=<value name="user"/>%40<value name="domain"/>\r?$</test--> <test>^Location: (?:http://www\.pochta\.ru)?/(?:index\.php)?(?:\?lng=[a-z]+)?\r?$</test> </check> *************** *** 73,76 **** --- 73,78 ---- <url_options> <option name="use_meta_refresh">0</option> + <option name="do_save_headers">1</option> + <option name="parse_chunked">0</option> </url_options> </url_get> *************** *** 102,105 **** --- 104,108 ---- <url_options> <option name="use_meta_refresh">0</option> + <option name="parse_chunked">0</option> </url_options> </url_get> *************** *** 165,169 **** <field name="button_delete_messages">1</field> </fields> ! <url_options><option name="use_meta_refresh">0</option></url_options> </url_get> </fetch> --- 168,175 ---- <field name="button_delete_messages">1</field> </fields> ! <url_options> ! <option name="use_meta_refresh">0</option> ! <option name="parse_chunked">0</option> ! </url_options> </url_get> </fetch> |
From: Michael D. <du...@us...> - 2007-12-08 17:57:30
|
Update of /cvsroot/pywebmail/webmail/webmail/utils In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12801 Modified Files: xmlcompat.py Log Message: revoke support of ironpython before IPCE-r7 Index: xmlcompat.py =================================================================== RCS file: /cvsroot/pywebmail/webmail/webmail/utils/xmlcompat.py,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** xmlcompat.py 4 Aug 2007 10:45:57 -0000 1.3 --- xmlcompat.py 8 Dec 2007 16:54:14 -0000 1.4 *************** *** 53,162 **** raise - elif sys.platform == "cli": - import clr - clr.AddReference("System.Xml") - import System.Xml - - def _wrap(o): - if getattr(o, '__module__', None) == '__builtin__': - return o - if callable(o): - return _CallableWrapper(o) - if getattr(o, '__module__', None).startswith('System.Xml'): - return _Wrapper(o) - if callable(getattr(o, 'next', None)): - return _IterWrapper(o) - if type(o) == type(()): - return tuple(map(_wrap, o)) - if type(o) == type([]): - return map(_wrap, o) - return o - - class _Wrapper: - def __init__(self, o): - self.__o = None - if getattr(o, '__class__', None) is self.__class__: - o = o.__o - print dir(o) - print o - print o.__name__ - print o.__module__ - print o.__class__ - raise Exception - self.__o = o - - def __unwrap__(self): - return self.__o - - def __getattr__(self, name): - nname = name[:1].upper()+name[1:] - if name == 'tagName': nname = 'Name' - o = self.__o - #print '%s(%X).__getattr__: %s -> %s' % (o.__class__, id(o), name, nname) - #print ' ', dir(o) - attr = getattr(o, nname) - #print ' ->', type(attr), id(attr), dir(attr) - if attr is o: return self - return _wrap(attr) - - def isSameNode(self, other): - if hasattr(other, '__unwrap__'): - other = other.__unwrap__() - return self.__unwrap__().Equals(other) - - class _CallableWrapper: - def __init__(self, o): - self.__o = None - if getattr(o, '__class__', None) is self.__class__: - o = o.__o - print dir(o) - print o - print o.__name__ - print o.__module__ - print o.__class__ - raise Exception - self.__o = o - - def __unwrap__(self): - return self.__o - - def __call__(self, *targs, **kwargs): - print '%s.__call__%s + %s' % (self.__o, targs, kwargs) - t = [] - for item in targs: - if hasattr(item, '__unwrap__'): - item = item.__unwrap__() - t.append(item) - kw = {} - for key,item in kwargs.items(): - if hasattr(item, '__unwrap__'): - item = item.__unwrap__() - kw[key] = item - return _wrap(apply(self.__o, t, kw)) - - class _IterWrapper(_Wrapper): - def __iter__(self): - return self - - def next(self): - return _wrap(self.__unwrap__().next()) - - def __getitem__(self, key): - return _wrap(self.__unwrap__()[key]) - - def parsestring(s): - doc = System.Xml.XmlDocument() - doc.LoadXml(s) - return _Wrapper(doc) - - def attritems(elem): - return map(_wrap, elem.Attributes.items()) - - def nodelist(nodelist): - return map(_wrap, nodelist) - - def xml2str(node): - return node.OuterXml - else: import xml.dom.minidom --- 53,56 ---- |
From: Michael D. <du...@us...> - 2007-12-08 16:50:34
|
Update of /cvsroot/pywebmail/webmail/webmail/utils In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11350 Modified Files: ImmutableDict.py Log Message: possibly support ironpython Index: ImmutableDict.py =================================================================== RCS file: /cvsroot/pywebmail/webmail/webmail/utils/ImmutableDict.py,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ImmutableDict.py 10 Oct 2004 00:35:15 -0000 1.1 --- ImmutableDict.py 8 Dec 2007 16:50:37 -0000 1.2 *************** *** 33,37 **** x = int(1000003*x & 0x7FFFFFF) ^ hash(k) y = int(1000003*y & 0x7FFFFFF) ^ hash(v) ! return x|y if __name__=='__main__': --- 33,37 ---- x = int(1000003*x & 0x7FFFFFF) ^ hash(k) y = int(1000003*y & 0x7FFFFFF) ^ hash(v) ! return int(x|y) if __name__=='__main__': |
From: Michael D. <du...@us...> - 2007-12-08 16:44:47
|
Update of /cvsroot/pywebmail/webmail/webmail/client In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9181 Modified Files: wmailbox.py Log Message: do we really need this? Index: wmailbox.py =================================================================== RCS file: /cvsroot/pywebmail/webmail/webmail/client/wmailbox.py,v retrieving revision 1.45 retrieving revision 1.46 diff -C2 -d -r1.45 -r1.46 *** wmailbox.py 8 Dec 2007 08:01:23 -0000 1.45 --- wmailbox.py 8 Dec 2007 16:44:50 -0000 1.46 *************** *** 3,11 **** try: from cStringIO import StringIO except: from StringIO import StringIO import webmail.utils.xhttp.xCookie try: import cookielib except: cookielib = None ! from webmail.utils.ImmutableDict import ImmutableDict ! import webmail.utils from webmail.utils import expr_helper from webmail.utils import StringTypes --- 3,12 ---- try: from cStringIO import StringIO except: from StringIO import StringIO + import webmail.utils + import webmail.utils.xstrings import webmail.utils.xhttp.xCookie try: import cookielib except: cookielib = None ! #from webmail.utils.ImmutableDict import ImmutableDict from webmail.utils import expr_helper from webmail.utils import StringTypes *************** *** 265,269 **** for key in self.dynamic.keys(): real_id[key] = self.get(key) ! return ImmutableDict(real_id) def get_cached_result(self, base_id): if self.cache_disabled: return None --- 266,273 ---- for key in self.dynamic.keys(): real_id[key] = self.get(key) ! l = list(real_id.items()) ! l.sort() ! return tuple(l) ! #return ImmutableDict(real_id) def get_cached_result(self, base_id): if self.cache_disabled: return None |
From: Michael D. <du...@us...> - 2007-12-08 08:03:05
|
Update of /cvsroot/pywebmail/webmail/webmail/backends In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14030/backends Modified Files: __init__.py smtp.py Log Message: support outbox - message sending backends Index: smtp.py =================================================================== RCS file: /cvsroot/pywebmail/webmail/webmail/backends/smtp.py,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** smtp.py 2 Dec 2004 10:10:10 -0000 1.3 --- smtp.py 8 Dec 2007 08:03:08 -0000 1.4 *************** *** 1,7 **** ! import sys, thread, rfc822 try: from cStringIO import StringIO except: from StringIO import StringIO import webmail.utils.smtp from webmail.utils.backend_helpers import MessageInfoBase server = None --- 1,10 ---- ! import sys, logging, thread, rfc822, smtplib try: from cStringIO import StringIO except: from StringIO import StringIO import webmail.utils.smtp from webmail.utils.backend_helpers import MessageInfoBase + from webmail.utils.expr_helper import a2bool + + log = logging.getLogger('webmail.backends.smtp'); server = None *************** *** 9,13 **** global server if server is not None: return ! server = webmail.utils.smtp.SMTPServer(('',25)) thread.start_new_thread(server.loop, ()) --- 12,16 ---- global server if server is not None: return ! server = webmail.utils.smtp.SMTPServer(('127.0.0.1',25)) thread.start_new_thread(server.loop, ()) *************** *** 103,106 **** --- 106,162 ---- return folder + class SMTPTransport: + + def __init__(self, main_config, box_config): + self.email = box_config.get('from_email',None) + if self.email is None: + self.email = box_config['email'] + self.localhost = box_config.get('smtp_localhost',None) + self.debug = a2bool(box_config.get('smtp_debug','0')) + self.user = box_config.get('smtp_user') + self.auth = a2bool(box_config.get('smtp_auth','10'[not self.user])) + if self.auth and not self.user: + self.user = box_config.get('user') + if self.auth and not self.user: + self.user = box_config['email'] + if self.auth: + self.password = box_config.get('smtp_password') + if self.auth and not self.password: + self.password = box_config['password'] + host = box_config['out_server'] + port = None + try: + host,port = host.split(':',1) + port = int(port) + except: + pass + if box_config.has_key('port'): + port = int(box_config['port']) + self.host,self.port = host,port + + def send(self, msg): + headers = rfc822.Message(StringIO(msg)) + recipients = [] + l = headers.getaddrlist('to') + if l: recipients.extend(zip(*l)[1]) + l = headers.getaddrlist('cc') + if l: recipients.extend(zip(*l)[1]) + l = headers.getaddrlist('bcc') + if l: recipients.extend(zip(*l)[1]) + sender = headers.getaddr('from') + assert sender[0].lower() != self.email.lower(), "Sender sanity check failed" + smtp = smtplib.SMTP(local_hostname=self.localhost) + smtp.set_debuglevel(self.debug) + smtp.connect(self.host, self.port) + #code,data = smtp.helo() + #log.debug('SMTP outbox: HELO %s: %s %s', smtp.local_hostname, code, data) + code,data = smtp.ehlo() + log.debug('SMTP outbox: EHLO %s: %s %s', smtp.local_hostname, code, data) + if self.auth: + smtp.login(self.user, self.password) + smtp.sendmail(sender, recipients, msg) + smtp.quit() + + outbox_factory = SMTPTransport mailbox_factory = SMTPAccount Index: __init__.py =================================================================== RCS file: /cvsroot/pywebmail/webmail/webmail/backends/__init__.py,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** __init__.py 4 Aug 2007 10:34:19 -0000 1.5 --- __init__.py 8 Dec 2007 08:03:08 -0000 1.6 *************** *** 1,5 **** import sys ! def get_default_backend(mailbox_info): #if mailbox_info.has_key('file'): return 'file' # not yet supported if mailbox_info.has_key('server'): --- 1,5 ---- import sys ! def get_default_mailbox_backend(mailbox_info): #if mailbox_info.has_key('file'): return 'file' # not yet supported if mailbox_info.has_key('server'): *************** *** 22,25 **** --- 22,44 ---- return 'web' + get_default_backend = get_default_mailbox_backend + + def get_default_outbox_backend(mailbox_info): + return 'smtp' # nothing else implemented yet + if mailbox_info.has_key('out_server'): + return 'smtp' # imap not yet implemented + host = mailbox_info['out_server'] + port = None + try: + host,port = host.split(':',1) + port = int(port) + except: + pass + if mailbox_info.has_key('port'): + port = int(mailbox_info['port']) + #if port in (143, 993): return 'imap' # imap not yet supported + return 'smtp' + return 'web' + def get_backend_module(backend_name): backend_module = globals().get(backend_name) |
From: Michael D. <du...@us...> - 2007-12-08 08:03:05
|
Update of /cvsroot/pywebmail/webmail/webmail In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14030 Modified Files: settings.py Log Message: support outbox - message sending backends Index: settings.py =================================================================== RCS file: /cvsroot/pywebmail/webmail/webmail/settings.py,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** settings.py 16 Jul 2007 22:02:53 -0000 1.18 --- settings.py 8 Dec 2007 08:03:08 -0000 1.19 *************** *** 26,29 **** --- 26,30 ---- self.mailbox_names = None self.mailbox_info = {} + self.outbox_info = {} def auto_check_from_string(self, s): *************** *** 54,67 **** return self.mailbox_names ! def get_backend_name(self, mailbox_info): backend = mailbox_info.get('backend', None) if backend is None: ! backend = webmail.backends.get_default_backend(mailbox_info) return backend def create_mailbox(self, mailbox_info): auto_check = mailbox_info.get('auto_check','0').lower() auto_check = self.auto_check_from_string(auto_check) ! backend = self.get_backend_name(mailbox_info) backend_module = webmail.backends.get_backend_module(backend) assert backend_module, 'Unknown backend '+backend --- 55,69 ---- return self.mailbox_names ! def get_mailbox_backend_name(self, mailbox_info): backend = mailbox_info.get('backend', None) if backend is None: ! backend = webmail.backends.get_default_mailbox_backend(mailbox_info) return backend + get_backend_name = get_mailbox_backend_name def create_mailbox(self, mailbox_info): auto_check = mailbox_info.get('auto_check','0').lower() auto_check = self.auto_check_from_string(auto_check) ! backend = self.get_mailbox_backend_name(mailbox_info) backend_module = webmail.backends.get_backend_module(backend) assert backend_module, 'Unknown backend '+backend *************** *** 110,113 **** --- 112,149 ---- return filter(self.good_mailbox_name, self.mailbox_names) + def get_outbox_backend_name(self, mailbox_info): + backend = mailbox_info.get('outbox', None) + if backend is None: + backend = webmail.backends.get_default_outbox_backend(mailbox_info) + return backend + + def create_outbox(self, outbox_info): + backend = self.get_outbox_backend_name(outbox_info) + backend_module = webmail.backends.get_backend_module(backend) + assert backend_module, 'Unknown backend '+backend + outbox = backend_module.outbox_factory(self, outbox_info) + outbox.initial_info = outbox_info + return outbox + + def get_outbox_info_by_name(self, outbox_name): + outbox_name = outbox_name.strip() + if self.outbox_info.has_key(outbox_name): + return self.outbox_info[outbox_name] + if not self.config.config.has_section('mailbox_'+outbox_name): + log.error('Mailbox %s not found', outbox_name) + outbox_info = None + else: + outbox_info = webmail.utils.ConfigSection(self.config.config, 'mailbox_'+outbox_name) + self.outbox_info[outbox_name] = outbox_info + return outbox_info + + def get_outbox_by_name(self, outbox_name, additional_info=None): + outbox_info = self.get_outbox_info_by_name(outbox_name) + if outbox_info is None: + return None + if additional_info is not None: + outbox_info = webmail.utils.XMergeDicts(additional_info, outbox_info) + return self.create_outbox(outbox_info) + class MailboxesListSetup(MailboxesListSetupMixin, webmail.utils.xgetopt.Setup): def __init__(self, argv, progname=None): |
From: Michael D. <du...@us...> - 2007-12-08 08:01:23
|
Update of /cvsroot/pywebmail/webmail/webmail/client In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13274 Modified Files: wmailbox.py Log Message: more raise_warn support Index: wmailbox.py =================================================================== RCS file: /cvsroot/pywebmail/webmail/webmail/client/wmailbox.py,v retrieving revision 1.44 retrieving revision 1.45 diff -C2 -d -r1.44 -r1.45 *** wmailbox.py 22 Apr 2007 00:47:37 -0000 1.44 --- wmailbox.py 8 Dec 2007 08:01:23 -0000 1.45 *************** *** 410,413 **** --- 410,415 ---- except: log.debug('Logout failed', exc_info=1) + if expr_helper.a2bool(self.get('raise_warn')): + raise self._finish_logout() def _account_action(self, action, result_callback): *************** *** 612,615 **** --- 614,619 ---- except: log.warn("Deletion of messages %s failed:", repr(cur_msgids), exc_info=1) + if expr_helper.a2bool(self.get('raise_warn')): + raise else: log.info("Deletion of %d/%d messages successful.", len(cur_msgids), len(msgids)) |
From: Michael D. <du...@us...> - 2007-12-08 08:00:46
|
Update of /cvsroot/pywebmail/webmail/webmail/client/config/parse In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12904 Modified Files: fetch.py Log Message: - Index: fetch.py =================================================================== RCS file: /cvsroot/pywebmail/webmail/webmail/client/config/parse/fetch.py,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** fetch.py 25 Mar 2007 01:19:19 -0000 1.19 --- fetch.py 8 Dec 2007 08:00:48 -0000 1.20 *************** *** 72,76 **** multipart_form = 0 if url_options.has_key('multipart_form'): ! multipart_form = url_options['multipart_form'] del url_options['multipart_form'] if method == 'GET': --- 72,76 ---- multipart_form = 0 if url_options.has_key('multipart_form'): ! multipart_form = expr_helper.a2bool(url_options['multipart_form']) del url_options['multipart_form'] if method == 'GET': |
From: Michael D. <du...@us...> - 2007-12-08 08:00:15
|
Update of /cvsroot/pywebmail/webmail/webmail/utils/xhttp In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12872 Modified Files: __init__.py Log Message: better debug output Index: __init__.py =================================================================== RCS file: /cvsroot/pywebmail/webmail/webmail/utils/xhttp/__init__.py,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** __init__.py 1 Dec 2007 02:25:45 -0000 1.23 --- __init__.py 8 Dec 2007 08:00:15 -0000 1.24 *************** *** 143,147 **** for k,v in op.addheaders: log.debug('+>%s: %s' % (k,v)) if data: ! for line in data.split()[:10]: log.debug('>>'+line) while 1: --- 143,147 ---- for k,v in op.addheaders: log.debug('+>%s: %s' % (k,v)) if data: ! for line in data.splitlines()[:10]: log.debug('>>'+line) while 1: |
From: Michael D. <du...@us...> - 2007-12-08 07:59:40
|
Update of /cvsroot/pywebmail/webmail/webmail/backends In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12469/backends Modified Files: web.py merge.py Log Message: support new field of message info - recipients Index: merge.py =================================================================== RCS file: /cvsroot/pywebmail/webmail/webmail/backends/merge.py,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** merge.py 30 Nov 2007 02:21:48 -0000 1.4 --- merge.py 8 Dec 2007 07:59:44 -0000 1.5 *************** *** 13,17 **** MessageInfoBase.__init__(self, folder, uid) # to allow __getattr__ to work ! del self.sender, self.subject, self.date, self.size, self.msg self._msginfo = msginfo def __getattr__(self, name): --- 13,17 ---- MessageInfoBase.__init__(self, folder, uid) # to allow __getattr__ to work ! del self.sender, self.recipients, self.subject, self.date, self.size, self.msg self._msginfo = msginfo def __getattr__(self, name): Index: web.py =================================================================== RCS file: /cvsroot/pywebmail/webmail/webmail/backends/web.py,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** web.py 1 Mar 2007 23:35:09 -0000 1.10 --- web.py 8 Dec 2007 07:59:44 -0000 1.11 *************** *** 16,23 **** --- 16,36 ---- else: self.sender = (self.sender.strip(),msginfo.get('from_email')) + self.recipients = msginfo.get('to') + if not self.recipients: + self.recipients = [(msginfo.get('to_name'),msginfo.get('to_email'))] + elif self.recipients.find('@'): + recipients = [] + for recipient in self.recipients.split(','): + recipient = recipient.strip() + recipient = [(msginfo.get('to_name') or recipient,recipient)] + recipients.append(recipient) + self.recipients = recipients + else: + self.recipients = [(self.recipients.strip(),msginfo.get('to_email'))] self.subject = msginfo.get('subject') self.date = msginfo.get('date') self.size = parsesize(msginfo.get('size')) self.uid = msginfo.get('uid', msginfo.get('id', self._msgid)) + self._msginfo = msginfo def custom_get(self, action): return self._folder.custom_get(action, self._msgid) |
From: Michael D. <du...@us...> - 2007-12-08 07:59:40
|
Update of /cvsroot/pywebmail/webmail/webmail/utils In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12469/utils Modified Files: backend_helpers.py Log Message: support new field of message info - recipients Index: backend_helpers.py =================================================================== RCS file: /cvsroot/pywebmail/webmail/webmail/utils/backend_helpers.py,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** backend_helpers.py 1 Jul 2005 22:44:34 -0000 1.7 --- backend_helpers.py 8 Dec 2007 07:59:44 -0000 1.8 *************** *** 27,30 **** --- 27,31 ---- self.size = None self.sender = (None,None) + self.recipients = [] self.subject = None self.date = None *************** *** 40,43 **** --- 41,49 ---- if sender != (None,None): self.sender = sender + recipients = self.msg.getaddrlist('to') + if recipients == (None,None): + recipients = self.msg.getaddrlist('envelope-to') + if recipients != (None,None): + self.recipients = recipients date = self.msg.getdate_tz('date') if date: |
From: Michael D. <du...@us...> - 2007-12-08 07:55:08
|
Update of /cvsroot/pywebmail/webmail/webmail/client/config In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11020 Modified Files: HotMail.xml Log Message: delete and minor fixes Index: HotMail.xml =================================================================== RCS file: /cvsroot/pywebmail/webmail/webmail/client/config/HotMail.xml,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** HotMail.xml 7 Dec 2007 06:38:44 -0000 1.21 --- HotMail.xml 8 Dec 2007 07:55:10 -0000 1.22 *************** *** 250,254 **** </choose> <test inverse="yes" error_group="1">error=(.*)</test> ! <field name="inbox" group="1">^inbox=(.*)$</field> </parse> </login> --- 250,254 ---- </choose> <test inverse="yes" error_group="1">error=(.*)</test> ! <field name="inbox" group="1" parse="decode(unicode_escape)">^inbox=(.*)$</field> </parse> </login> *************** *** 334,338 **** <url_get id="folder_page"> <url>http://<value name="server"/>/mail/InboxLight.aspx</url> ! <file>folder_<value name="folder"/>_<value name="curmbox"/>_page<value name="page"/>.htm</file> <method>GET</method> <fields> --- 334,338 ---- <url_get id="folder_page"> <url>http://<value name="server"/>/mail/InboxLight.aspx</url> ! <file>folder_<value expr="folder.encode('punycode').strip()"/>_<value name="curmbox"/>_page<value name="page"/>.htm</file> <method>GET</method> <fields> *************** *** 363,367 **** <field name="from_name" group="1" parse="html"><td class="(?:InboxContentItemUnread)?" nowrap><a href="ReadMessageLight\.aspx\?[^"]+" class="TruncateFrom">([^<]*)</a></td></field> <field name="subject" group="1" parse="html"><td class="(?:InboxContentItemUnread)?"><a href="ReadMessageLight\.aspx\?[^"]+">([^<]*)&#x200f;</a></td></field> ! <field name="date" group="1" parse="html,date(%d.%m.%Y)"><td class="NoWrap">([^<]+)</td></field> <field name="size" group="1" parse="html,decode(utf-8),replace(KB$,k),replace(КБ$,k),replace(MB$,m),replace(МБ$,m),replace(GB$,g),replace(ГБ$,g)"><td class="TextAlignRight">([^lt;]*)</td></field> </item> --- 363,367 ---- <field name="from_name" group="1" parse="html"><td class="(?:InboxContentItemUnread)?" nowrap><a href="ReadMessageLight\.aspx\?[^"]+" class="TruncateFrom">([^<]*)</a></td></field> <field name="subject" group="1" parse="html"><td class="(?:InboxContentItemUnread)?"><a href="ReadMessageLight\.aspx\?[^"]+">([^<]*)&#x200f;</a></td></field> ! <field name="date" group="1" parse="html,date(%d.%m.%Y,%H:%M)"><td class="NoWrap">([^<]+)</td></field> <field name="size" group="1" parse="html,decode(utf-8),replace(KB$,k),replace(КБ$,k),replace(MB$,m),replace(МБ$,m),replace(GB$,g),replace(ГБ$,g)"><td class="TextAlignRight">([^lt;]*)</td></field> </item> *************** *** 372,376 **** <url_get id="message_eml"> <url>http://<value name="server"/>/mail/GetMessageSource.aspx</url> ! <file>message_<value name="folder"/>_<value name="msgid"/>.txt</file> <method>GET</method> <fields> --- 372,376 ---- <url_get id="message_eml"> <url>http://<value name="server"/>/mail/GetMessageSource.aspx</url> ! <file>message_<value expr="folder.encode('punycode').strip()"/>_<value name="msgid"/>.txt</file> <method>GET</method> <fields> *************** *** 473,487 **** <fetch> <url_get id="delete_page"> ! <url>http://<value name="server"/>/cgi-bin/HoTMaiL</url> ! <file>delete_<value name="folder"/>_<value name="timestamp"/>.htm</file> ! <method>GET</method> <fields> ! <field name="curmbox"><value name="curmbox"/></field> ! <field name="_HMaction"><value expr="iif(defined('delete_tobox'),'MoveTo','delete')"/></field> ! <field name="tobox"><value expr="getdefault('delete_tobox','')"/></field> ! <field value="on" multiply="msgid"><value name="msgid"/></field> </fields> <url_options> <option name="use_meta_refresh">0</option> </url_options> </url_get> --- 473,491 ---- <fetch> <url_get id="delete_page"> ! <url>http://<value name="server"/>/mail/InboxLight.aspx?FolderID=<value name="curmbox"/>&n=<value expr="str(randrange(10000000000))"/></url> ! <file>delete_<value expr="folder.encode('punycode').strip()"/>_<value name="timestamp"/>.htm</file> ! <method>POST</method> <fields> ! <field name="__VIEWSTATE"></field> ! <field name="mt"><value expr="cookie('mt')"/></field> ! <field name="MoveMessageSelector"></field> ! <field name="ToolbarActionItem">DeleteMessages</field> ! <field name="SelectAllMessages">off</field> ! <field name="SelectedMessages" multiply="msgid"><value name="msgid"/></field> </fields> <url_options> + <option name="override_ua">moz</option> <option name="use_meta_refresh">0</option> + <option name="multipart_form">1</option> </url_options> </url_get> *************** *** 489,493 **** <check> <input ref="delete_page"/> ! <test><font class="G"><value name="email"/></font></test> </check> </delete> --- 493,497 ---- <check> <input ref="delete_page"/> ! <test ref="check_email_header"/> </check> </delete> |
From: Michael D. <du...@us...> - 2007-12-08 07:52:56
|
Update of /cvsroot/pywebmail/webmail/webmail/client/config In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9967 Modified Files: pochta.ru.xml Log Message: logout support plus more checks Index: pochta.ru.xml =================================================================== RCS file: /cvsroot/pywebmail/webmail/webmail/client/config/pochta.ru.xml,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** pochta.ru.xml 7 Dec 2007 06:27:11 -0000 1.14 --- pochta.ru.xml 8 Dec 2007 07:52:56 -0000 1.15 *************** *** 34,40 **** --- 34,65 ---- <test id="login_re">(?i)^Location: (?:http://((?:new\.)?www\d*\.pochta\.ru))?/list\.php\?id=([a-fA-F0-9]*)(?:&last_enter=yes)?(?:&lng=(?:en|ru))?(?:&fic=1)?\r?$</test> <test id="relogin_error_re" inverse="true" result="relogin" error_group="1"><div class="error">\s*<div>([^<]*)<</test> + <test id="err_report_re" inverse="true" error_group="1"><div class="err_report">[\n\r]*([^<]*)[\n\r]*</div></test> <field group="2" name="session" ref="login_re"/> </parse> </login> + <logout> + <fetch> + <url_get id="logout_result"> + <url>http://www.pochta.ru/logout.php</url> + <file>logout.htm</file> + <method>GET</method> + <fields> + <field name="id"><value name="session"/></field> + </fields> + <url_options> + <option name="use_meta_refresh">0</option> + <option name="use_redirect">0</option> + <option name="do_save_headers">1</option> + </url_options> + </url_get> + </fetch> + <check> + <input ref="logout_result"/> + <test ref="relogin_error_re" inverse="true" result="relogin" error_group="1"/> + <test ref="err_report_re" inverse="true" error_group="1"/> + <test>^Set-Cookie: just_logout=<value name="user"/>%40<value name="domain"/>\r?$</test> + <test>^Location: (?:http://www\.pochta\.ru)?/(?:index\.php)?(?:\?lng=[a-z]+)?\r?$</test> + </check> + </logout> <folders> <fetch> *************** *** 54,57 **** --- 79,83 ---- <input ref="folders_list"/> <test ref="relogin_error_re" inverse="true" result="relogin" error_group="1"/> + <test ref="err_report_re" inverse="true" error_group="1"/> <item bounds="inclusive"> <start><td><input type="checkbox" name="mbfs\[\]"</start> *************** *** 83,86 **** --- 109,113 ---- <input ref="folder_page"/> <test ref="relogin_error_re" inverse="true" result="relogin" error_group="1"/> + <test ref="err_report_re" inverse="true" error_group="1"/> <start>1</start> <next group="1"><a href="mailbox\.php\?id=<value name="session"/>&page=(\d+)" id="link_next_f">[^&]*&nbsp;?&raquo;</a></next> *************** *** 113,117 **** <url_options> <option name="accept_charset">koi8-r</option> ! <option name="use_redirect">0</option> <!--option name="accept_charset">windows-1251</option--> </url_options> --- 140,144 ---- <url_options> <option name="accept_charset">koi8-r</option> ! <!--option name="use_redirect">0</option--> <!--option name="accept_charset">windows-1251</option--> </url_options> *************** *** 123,126 **** --- 150,154 ---- <input ref="message_eml"> <test ref="relogin_error_re" inverse="true" result="relogin" error_group="1"/> + <test ref="err_report_re" inverse="true" error_group="1"/> </input> </asis> *************** *** 143,147 **** <input ref="delete_page"/> <test ref="relogin_error_re" inverse="true" result="relogin" error_group="1"/> ! <!-- FIXME: No test at all!? --> </parse> </delete> --- 171,176 ---- <input ref="delete_page"/> <test ref="relogin_error_re" inverse="true" result="relogin" error_group="1"/> ! <test ref="err_report_re" inverse="true" error_group="1"/> ! <!-- FIXME: No positive tests at all!? --> </parse> </delete> |
From: Michael D. <du...@us...> - 2007-12-07 06:38:41
|
Update of /cvsroot/pywebmail/webmail/webmail/client/config In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17492 Modified Files: HotMail.xml Log Message: logout, NOTFIXED: delete Index: HotMail.xml =================================================================== RCS file: /cvsroot/pywebmail/webmail/webmail/client/config/HotMail.xml,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** HotMail.xml 1 Dec 2007 02:38:32 -0000 1.20 --- HotMail.xml 7 Dec 2007 06:38:44 -0000 1.21 *************** *** 253,256 **** --- 253,316 ---- </parse> </login> + <logout> + <fetch> + <url_get id="logout_page1"> + <url>http://<value name="server"/>/mail/logout.aspx</url> + <file>logout1.htm</file> + <method>GET</method> + <fields/> + <url_options> + <option name="override_ua">moz</option> + <option name="use_meta_refresh">0</option> + </url_options> + </url_get> + <url_get id="logout_page2"> + <url>http://login.live.com/uilogout.srf</url> + <file>logout2.htm</file> + <method>GET</method> + <fields> + <field name="lc"><value name="lc"/></field> + <field name="id"><value name="id"/></field> + <field name="ru">http://<value name="server"/>/mail/logout.aspx?redirect=true&mkt=<value name="language"/>-<value name="country"/></field> + <field name="nsvis"></field> + <field name="ec">1</field> + </fields> + <url_options> + <option name="override_ua">moz</option> + <option name="use_meta_refresh">0</option> + </url_options> + </url_get> + <url_get id="logout_page3"> + <url>http://<value name="server"/>/mail/logout.aspx</url> + <file>logout3.htm</file> + <method>GET</method> + <fields> + <field name="redirect">true</field> + <field name="mkt"><value name="language"/>-<value name="country"/></field> + <field name="lc"><value name="lc"/></field> + </fields> + <url_options> + <option name="override_ua">moz</option> + <option name="use_redirect">0</option> + <option name="use_meta_refresh">0</option> + <option name="do_save_headers">1</option> + </url_options> + </url_get> + </fetch> + <parse> + <input ref="logout_page1"/> + <test id="logout_refresh_re"><meta http-equiv="refresh" content="\d+;url=http://login\.live\.com/uilogout\.srf\?lc=(\d+)&id=(\d+)&ru=http://<value expr="server.replace('.','\\.')"/>/mail/logout\.aspx%3Fredirect%3Dtrue%26mkt%3D<value name="language"/>-<value name="country"/>&nsvis=&ec=1" /></test> + <field ref="logout_refresh_re" name="lc" group="1"/> + <field ref="logout_refresh_re" name="id" group="2"/> + </parse> + <check> + <input ref="logout_page2"/> + <test>window\.location\.replace\("http://<value expr="server.replace('.','\\.')"/>/mail/logout\.aspx\?redirect=true&mkt=<value name="language"/>-<value name="country"/>&lc=<value name="lc"/>"\);</test> + </check> + <check> + <input ref="logout_page3"/> + <test>^Location: http://www\.(?:live|msn)\.com</test> + </check> + </logout> <folders> <list> |
From: Michael D. <du...@us...> - 2007-12-07 06:27:11
|
Update of /cvsroot/pywebmail/webmail/webmail/client/config In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13590 Modified Files: pochta.ru.xml Log Message: folder design - multiple pages Index: pochta.ru.xml =================================================================== RCS file: /cvsroot/pywebmail/webmail/webmail/client/config/pochta.ru.xml,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** pochta.ru.xml 30 Nov 2007 20:39:14 -0000 1.13 --- pochta.ru.xml 7 Dec 2007 06:27:11 -0000 1.14 *************** *** 12,16 **** <fetch> <url_get id="login_result"> ! <url>http://new.www.pochta.ru/login.php</url> <file>login.htm</file> <method>POST</method> --- 12,16 ---- <fetch> <url_get id="login_result"> ! <url>http://www.pochta.ru/login.php</url> <file>login.htm</file> <method>POST</method> *************** *** 40,44 **** <fetch> <url_get id="folders_list"> ! <url>http://new.www.pochta.ru/list.php</url> <file>folders.htm</file> <method>GET</method> --- 40,44 ---- <fetch> <url_get id="folders_list"> ! <url>http://www.pochta.ru/list.php</url> <file>folders.htm</file> <method>GET</method> *************** *** 66,76 **** <fetch> <url_get id="folder_page"> ! <url>http://new.www.pochta.ru/mailbox.php</url> <file>folder_<value name="folder"/>_page<value name="page"/>.htm</file> <method>GET</method> <fields> <field name="id"><value name="session"/></field> ! <field name="mailb"><value name="folder"/></field> ! <field name="pg"><value name="page"/></field> </fields> <url_options> --- 66,76 ---- <fetch> <url_get id="folder_page"> ! <url>http://www.pochta.ru/mailbox.php</url> <file>folder_<value name="folder"/>_page<value name="page"/>.htm</file> <method>GET</method> <fields> <field name="id"><value name="session"/></field> ! <field name="mailbox"><value name="folder"/></field> ! <field name="page"><value name="page"/></field> </fields> <url_options> *************** *** 84,88 **** <test ref="relogin_error_re" inverse="true" result="relogin" error_group="1"/> <start>1</start> ! <next group="1"><a href="mailbox\.php\?id=<value name="session"/>&pg=(\d+)" id="link_next_f">Next&nbsp;?&raquo;</a></next> </pages> <item> --- 84,88 ---- <test ref="relogin_error_re" inverse="true" result="relogin" error_group="1"/> <start>1</start> ! <next group="1"><a href="mailbox\.php\?id=<value name="session"/>&page=(\d+)" id="link_next_f">[^&]*&nbsp;?&raquo;</a></next> </pages> <item> *************** *** 101,105 **** <fetch> <url_get id="message_eml"> ! <url>http://new.www.pochta.ru/view.php</url> <file>message_<value name="folder"/>_<value name="msgid"/>.txt</file> <method>GET</method> --- 101,105 ---- <fetch> <url_get id="message_eml"> ! <url>http://www.pochta.ru/view.php</url> <file>message_<value name="folder"/>_<value name="msgid"/>.txt</file> <method>GET</method> |
From: Michael D. <du...@us...> - 2007-12-06 10:13:23
|
Update of /cvsroot/pywebmail/webmail In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28408 Modified Files: checker_manage.py Log Message: debug info on sleep (for -n) Index: checker_manage.py =================================================================== RCS file: /cvsroot/pywebmail/webmail/checker_manage.py,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** checker_manage.py 4 Aug 2007 10:33:43 -0000 1.12 --- checker_manage.py 6 Dec 2007 10:13:26 -0000 1.13 *************** *** 243,247 **** def action_sleep(self, seconds): ! time.sleep(int(seconds)) return 1 --- 243,250 ---- def action_sleep(self, seconds): ! if self.verbose > 1: ! print '- sleep', int(seconds) ! if self.doexec: ! time.sleep(int(seconds)) return 1 |
From: Michael D. <du...@us...> - 2007-12-06 10:12:54
|
Update of /cvsroot/pywebmail/webmail In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28046 Modified Files: checker.py Log Message: misc fixes Index: checker.py =================================================================== RCS file: /cvsroot/pywebmail/webmail/checker.py,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** checker.py 4 Aug 2007 10:32:22 -0000 1.15 --- checker.py 6 Dec 2007 10:12:44 -0000 1.16 *************** *** 69,77 **** return 'plain' ! def msg_prepare(self, msg): default_compare = 'literal' if self.verify == 'sendmail': default_compare = 'minimal' ! compare = self.config.get('compare', default_compare) return getattr(self, 'msg_prepare_'+compare)(msg) --- 69,91 ---- return 'plain' ! def _get_compare(self): default_compare = 'literal' if self.verify == 'sendmail': default_compare = 'minimal' ! return self.config.get('compare', default_compare) ! ! def msg_compare(self, msg1, msg2): ! compare = self._get_compare() ! if compare == 'least': ! l = min(len(msg1), len(msg2)) ! msg1 = msg1[:l] ! msg2 = msg2[:l] ! return msg1 == msg2 ! ! def msg_prepare(self, msg): ! compare = self._get_compare() ! if compare == 'least': ! #compare = 'minimal' ! compare = 'literal' return getattr(self, 'msg_prepare_'+compare)(msg) *************** *** 101,105 **** head = '' for k in 'from to date subject'.split(): ! v = re.sub('\s+', ' ', msg.get(v)).strip() head += '%s: %s\n' % (k,v) msg.rewindbody() --- 115,119 ---- head = '' for k in 'from to date subject'.split(): ! v = re.sub('\s+', ' ', msg.get(k)).strip() head += '%s: %s\n' % (k,v) msg.rewindbody() *************** *** 266,270 **** custom_mbx += msg2s+'\n' raise ! if msg1x != msg2x: log.warn('%s: message %s: get() != custom_get(%s)', self.name, msginfo.uid, custom) --- 280,284 ---- custom_mbx += msg2s+'\n' raise ! if not self.msg_compare(msg1x, msg2x): log.warn('%s: message %s: get() != custom_get(%s)', self.name, msginfo.uid, custom) *************** *** 310,314 **** else: msg2s = test_mbx1[msginfo.uid] ! if msg1s != msg2s: log.warn('%s: message %s: get(%s) != get(%s)', self.name, msginfo.uid, mailbox_name, mailbox1_name) --- 324,328 ---- else: msg2s = test_mbx1[msginfo.uid] ! if not self.msg_compare(msg1s, msg2s): log.warn('%s: message %s: get(%s) != get(%s)', self.name, msginfo.uid, mailbox_name, mailbox1_name) *************** *** 363,366 **** --- 377,382 ---- msginfo.msghash = hash(self.msg_prepare_literal(msg1)) l.sort(lambda a,b:cmp(a.msghash,b.msghash)) + elif orderby != 'none': + log.warn('Unknown orderby=%s', orderby) for msginfo in l: msg1 = msginfo.get() *************** *** 380,384 **** else: msg2s = test_mbx1[msgno] ! if msg1s != msg2s: dbg1 = repr(msg1s) if len(dbg1) > 30: dbg1 = dbg1[:20]+'...'+dbg1[-10:] --- 396,400 ---- else: msg2s = test_mbx1[msgno] ! if not self.msg_compare(msg1s, msg2s): dbg1 = repr(msg1s) if len(dbg1) > 30: dbg1 = dbg1[:20]+'...'+dbg1[-10:] *************** *** 538,544 **** --- 554,565 ---- if not self.mailbox_settings: self.mailbox_settings = None + if self.max_threads == 1: + global threading + try: import dummy_threading as threading + except ImportError: pass return 1 def get_mailbox_by_name(self, name): + log.debug("get_mailbox_by_name(%s): mailbox_settings=%s", name, self.mailbox_settings) return webmail.settings.MailboxesListSetup.get_mailbox_by_name(self, name, self.mailbox_settings) |
From: Michael D. <du...@us...> - 2007-12-01 02:39:01
|
Update of /cvsroot/pywebmail/webmail/webmail/client/config In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11115 Removed Files: HotMail.xml.1.1.7 Log Message: --- HotMail.xml.1.1.7 DELETED --- |
From: Michael D. <du...@us...> - 2007-12-01 02:38:32
|
Update of /cvsroot/pywebmail/webmail/webmail/client/config In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10813 Modified Files: HotMail.xml Log Message: backward compatible, WL login and download, NOTFIXED: delete Index: HotMail.xml =================================================================== RCS file: /cvsroot/pywebmail/webmail/webmail/client/config/HotMail.xml,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** HotMail.xml 26 Jul 2007 08:44:21 -0000 1.19 --- HotMail.xml 1 Dec 2007 02:38:32 -0000 1.20 *************** *** 1,6 **** <?xml version="1.0"?> ! <service version="1.1.8"> <setup> ! <assign> <field name="inbox">Inbox</field> <field name="inbox_curmbox">00000000-0000-0000-0000-000000000001</field> --- 1,6 ---- <?xml version="1.0"?> ! <service version="1.1.7"> <setup> ! <fixed> <field name="inbox">Inbox</field> <field name="inbox_curmbox">00000000-0000-0000-0000-000000000001</field> *************** *** 9,24 **** <field name="language">EN</field> <field name="country">EN</field> ! <cookie name="CkTst" path="/" domain="login.live.com">G<value expr="str(int(time()))"/></cookie> ! </assign> </setup> <login> <fetch> ! <url_get id="login_form"> ! <url>http://www.hotmail.com/</url> <file>login0.htm</file> <method>GET</method> <fields/> <url_options> <option name="blocking">1</option> <option name="use_meta_refresh">0</option> <option name="override_ua">moz</option> --- 9,25 ---- <field name="language">EN</field> <field name="country">EN</field> ! </fixed> </setup> <login> <fetch> ! <url_get id="login_init"> ! <url>http://mail.live.com/</url> <file>login0.htm</file> <method>GET</method> <fields/> <url_options> + <option name="use_redirect">0</option> <option name="blocking">1</option> + <option name="do_save_headers">1</option> <option name="use_meta_refresh">0</option> <option name="override_ua">moz</option> *************** *** 30,37 **** <method>GET</method> <fields> ! <field name="id">2</field> ! <field name="svc">mail</field> ! <field name="lc">1033</field> ! <field name="_lang">EN</field> </fields> <url_options> --- 31,41 ---- <method>GET</method> <fields> ! <field name="wa">wsignin1.0</field> ! <field name="rpsnv">10</field> ! <field name="ct"><value name="login_arg_ct"/></field> ! <field name="rver"><value name="login_arg_rver"/></field> ! <field name="wp">MBI</field> ! <field name="wreply">http://mail.live.com/default.aspx</field> ! <field name="id"><value name="login_arg_id"/></field> </fields> <url_options> *************** *** 43,56 **** </url_get> <url_get id="login_result2"> ! <url>https://login.live.com/ppsecure/post.srf?id=2&svc=mail&msppjph=1&lc=1033&_lang=EN&bk=<value name="login_arg_bk"/></url> <file>login2.htm</file> <method>POST</method> <fields> ! <field name="PPSX"><value name="login_arg_ppsx"/></field> <field name="PwdPad"><value expr="'IfYouAreReadingThisYouHaveTooMuchFreeTime'[:-len(password)]"/></field> <field name="login"><value name="email"/></field> <field name="passwd"><value name="password"/></field> ! <field name="LoginOptions">2</field> <field name="PPFT"><value name="login_arg_ppft"/></field> </fields> <url_options> --- 47,68 ---- </url_get> <url_get id="login_result2"> ! <url>https://login.live.com/ppsecure/post.srf?wa=wsignin1.0&rpsnv=10&ct=<value name="login_arg_ct"/>&rver=<value name="login_arg_rver"/>&wp=MBI&wreply=http:%2F%2Fmail.live.com%2Fdefault.aspx&id=<value name="login_arg_id"/>&bk=<value name="login_arg_bk"/></url> <file>login2.htm</file> <method>POST</method> <fields> ! <field name="idsbho">1</field> <field name="PwdPad"><value expr="'IfYouAreReadingThisYouHaveTooMuchFreeTime'[:-len(password)]"/></field> + <field name="LoginOptions">2</field> + <field name="CS"></field> + <field name="FedState"></field> + <field name="PPSX"><value name="login_arg_ppsx"/></field> + <field name="type">11</field> <field name="login"><value name="email"/></field> <field name="passwd"><value name="password"/></field> ! <field name="remMe">1</field> ! <field name="NewUser">1</field> <field name="PPFT"><value name="login_arg_ppft"/></field> + <field name="i1">0</field> + <field name="i2">2</field> </fields> <url_options> *************** *** 62,74 **** </url_get> <url_get id="login_result3"> ! <url>http://www.hotmail.msn.com/cgi-bin/sbox</url> <file>login3.htm</file> <method>GET</method> <fields> ! <field name="t"><value name="login_arg_t"/></field> ! <field name="p"><value name="login_arg_p"/></field> ! <field name="lc">1033</field> ! <field name="id">2</field> ! <field name="vv">400</field> </fields> <url_options> --- 74,82 ---- </url_get> <url_get id="login_result3"> ! <url>http://mail.live.com/default.aspx</url> <file>login3.htm</file> <method>GET</method> <fields> ! <field name="wa">wsignin1.0</field> </fields> <url_options> *************** *** 78,106 **** </url_options> </url_get> ! <url_get id="login_result4"> ! <url>http://<value name="server"/>/cgi-bin/hmhome</url> ! <file>login4.htm</file> <method>GET</method> <fields> ! <field name="fti">yes</field> ! <field name="curmbox">F000000001</field> ! <field name="a"><value name="session"/></field> ! <field name="_lang"><value name="language"/></field> ! <field name="country"><value name="country"/></field> </fields> ! <url_options/> </url_get> </fetch> <pre_require> <parse> ! <choose> ! <when test="a2bool(getdefault('debug','0'))"> ! <input ref="login_form"/> ! </when> ! <otherwise> ! <fixed><line><form action=""></line></fixed> ! </otherwise> ! </choose> ! <test>(?i)<form[^>]*></test> </parse> <parse> --- 86,114 ---- </url_options> </url_get> ! <url_get id="home"> ! <url>http://<value name="server"/>/mail/TodayLight.aspx</url> ! <file>home.htm</file> <method>GET</method> <fields> ! <field name="wa">wsignin1.0</field> ! <!--field name="n"><value name="session"/></field--> ! <field name="n"><value expr="str(randrange(10000000000))"/></field> ! <field name="gs">true</field> </fields> ! <url_options> ! <option name="use_redirect">0</option> ! <option name="use_meta_refresh">0</option> ! <option name="do_save_headers">1</option> ! <option name="override_ua">moz</option> ! </url_options> </url_get> </fetch> <pre_require> <parse> ! <input ref="login_init"/> ! <test id="login_init_re">^Location: http://login\.live\.com/login\.srf\?wa=wsignin1\.0&rpsnv=10&ct=([0-9]+)&rver=([0-9.]+)&wp=MBI&wreply=http:%2F%2Fmail\.live\.com%2Fdefault\.aspx&id=([0-9]+)\r?$</test> ! <field name="login_arg_ct" ref="login_init_re" group="1"/> ! <field name="login_arg_rver" ref="login_init_re" group="2"/> ! <field name="login_arg_id" ref="login_init_re" group="3"/> </parse> <parse> *************** *** 109,123 **** <test inverse="yes"><input type="hidden" name="mspppostint" id="mspppostint" value="([^">]*)"></test> <test inverse="yes"><input type="hidden" name="PPStateXfer" id="PPStateXfer" value="1"></test> ! <test id="login_arg1"><form [^>]* action="https://login\.live\.com/ppsecure/post\.srf\?id=2&[^>"]*&bk=(\d+)"(?: [^>]*)></test> ! <field name="login_arg_bk" group="1" ref="login_arg1"/> ! <test id="login_arg2"><input type="hidden" name="PPFT" id="i0327" value="([^">]*)"/></test> ! <field name="login_arg_ppft" group="1" ref="login_arg2"/> ! <test id="login_arg3"><input type="hidden" id="i0326" name="PPSX" value="([^">]*)"/></test> ! <field name="login_arg_ppsx" group="1" ref="login_arg3"/> <field name="MSPOK" group="1">^Set-Cookie: MSPOK=([^;]*);</field> </parse> ! <assign> <cookie name="MSPOK" path="/" domain="login.live.com"><value name="MSPOK"/></cookie> ! </assign> </pre_require> <parse> --- 117,131 ---- <test inverse="yes"><input type="hidden" name="mspppostint" id="mspppostint" value="([^">]*)"></test> <test inverse="yes"><input type="hidden" name="PPStateXfer" id="PPStateXfer" value="1"></test> ! <test id="login_arg_bk_re">var srf_uPost='https://login\.live\.com/ppsecure/post\.srf\?wa=wsignin1\.0&rpsnv=10&ct=<value name="login_arg_ct"/>&rver=<value expr="login_arg_rver.replace('.','\\.')"/>&wp=MBI&wreply=http%3A%2F%2Fmail\.live\.com%2Fdefault\.aspx&id=<value name="login_arg_id"/>&bk=(\d+)';</test> ! <field name="login_arg_bk" group="1" ref="login_arg_bk_re"/> ! <test id="login_arg_ppft_re">var srf_sFT='<input type="hidden" name="PPFT" id="i0327" value="([^">]*)"/>';</test> ! <field name="login_arg_ppft" group="1" ref="login_arg_ppft_re"/> ! <test id="login_arg_ppsx_re">var srf_sRBlob='([^']*)';</test> ! <field name="login_arg_ppsx" group="1" ref="login_arg_ppsx_re"/> <field name="MSPOK" group="1">^Set-Cookie: MSPOK=([^;]*);</field> </parse> ! <fixed> <cookie name="MSPOK" path="/" domain="login.live.com"><value name="MSPOK"/></cookie> ! </fixed> </pre_require> <parse> *************** *** 127,167 **** <test inverse="yes">(?i)<META HTTP-EQUIV="REFRESH" CONTENT="0; URL=http://www\.hotmail\.msn\.com/cgi-bin/sbox\?(?:did=1&)?t=([^&"]*)&p=([^&"]*)(?:&lc=1033&id=2)?"></test> <test inverse="yes">top\.location\.replace\("http://www\.hotmail\.msn\.com/cgi-bin/sbox\?(?:did=1&)?t=([^&"]*)&p=([^&"]*)&lc=\d+&id=\d+"\);</test> ! <test id="login_args">(?:top|window)\.location\.replace\("http://www\.hotmail\.msn\.com/cgi-bin/sbox\?(?:did=1&)?t=([^&"]*)&p=([^&"]*)&lc=\d+&id=\d+(?:&vv=(?:400|410|500))?"\);</test> ! <field name="login_arg_t" group="1" ref="login_args"/> ! <field name="login_arg_p" group="2" ref="login_args"/> </parse> <parse> <input ref="login_result3"/> <test>^Status:\s+302\s+</test> <test inverse="yes">^Location: http://([^/]+)/cgi-bin/hmhome\?fti=yes&curmbox=F000000001&a=([^&\r\n]+)\r?$</test> <test inverse="yes">^Location: http://([^/]+)/cgi-bin/hmhome\?fti=yes&curmbox=F000000001&a=([^&]+)&_lang=([^&]+)&country=(.+)$</test> ! <test id="login_results">^Location: http://([^/]+)/cgi-bin/hmhome\?fti=yes&curmbox=00000000%2d0000%2d0000%2d0000%2d000000000001&a=([^&\r\n]+)\r?$</test> <field name="server" group="1" ref="login_results"/> ! <field name="session" group="2" ref="login_results"/> </parse> - <check> - <choose> - <when test="a2bool(getdefault('debug','0'))"> - <input ref="login_result4"/> - </when> - <otherwise> - <fixed> - <line><font class="G"><value name="email"/></font></line> - <line>_UM="curmbox=00000000%2d0000%2d0000%2d0000%2d000000000001&a=<value name="session"/>"</line> - </fixed> - </otherwise> - </choose> - <test><font class="G"><value name="email"/></font></test> - <test>_UM\s*=\s*"curmbox=00000000%2d0000%2d0000%2d0000%2d000000000001&a=<value name="session"/>"</test> - </check> <parse> <choose> ! <when test="language=='DA'"><!-- Dansk --> <fixed><line>inbox=Indbakke</line></fixed> </when> ! <when test="language=='DE'"><!-- Deutsch --> <fixed><line>inbox=Posteingang</line></fixed> </when> ! <when test="language=='EN'"><!-- English --> <fixed> <line>inbox=Inbox</line> --- 135,171 ---- <test inverse="yes">(?i)<META HTTP-EQUIV="REFRESH" CONTENT="0; URL=http://www\.hotmail\.msn\.com/cgi-bin/sbox\?(?:did=1&)?t=([^&"]*)&p=([^&"]*)(?:&lc=1033&id=2)?"></test> <test inverse="yes">top\.location\.replace\("http://www\.hotmail\.msn\.com/cgi-bin/sbox\?(?:did=1&)?t=([^&"]*)&p=([^&"]*)&lc=\d+&id=\d+"\);</test> ! <test inverse="yes">(?:top|window)\.location\.replace\("http://www\.hotmail\.msn\.com/cgi-bin/sbox\?(?:did=1&)?t=([^&"]*)&p=([^&"]*)&lc=\d+&id=\d+(?:&vv=(?:400|410|500))?"\);</test> ! <test>window\.location\.replace\("http://mail\.live\.com/default\.aspx\?wa=wsignin1\.0"\);</test> </parse> <parse> <input ref="login_result3"/> <test>^Status:\s+302\s+</test> + <test inverse="yes" error_group="1">^Location: /mail/LoginError.aspx?error=(\d+)&</test> <test inverse="yes">^Location: http://([^/]+)/cgi-bin/hmhome\?fti=yes&curmbox=F000000001&a=([^&\r\n]+)\r?$</test> <test inverse="yes">^Location: http://([^/]+)/cgi-bin/hmhome\?fti=yes&curmbox=F000000001&a=([^&]+)&_lang=([^&]+)&country=(.+)$</test> ! <test inverse="yes">^Location: http://([^/]+)/cgi-bin/hmhome\?fti=yes&curmbox=00000000%2d0000%2d0000%2d0000%2d000000000001&a=([^&\r\n]+)\r?$</test> ! <test inverse="yes">^Location: http://([^/]+)/mail/mail\.aspx\?&?ip=([^&\r\n]+)&d=([^&\r\n]+)&mf=0\r?$</test> ! <test id="login_results">^Location: http://([^/]+)/mail/TodayLight\.aspx\?wa=wsignin1\.0&n=(\d+)&gs=true\r?$</test> <field name="server" group="1" ref="login_results"/> ! <!--field name="session" group="2" ref="login_results"/--> ! </parse> ! <parse> ! <input ref="home"/> ! <test id="check_email_header"><a id="uxp_hdr_meLink" title="<value name="email"/>" href="#"></test> ! <!--test>action="TodayLight\.aspx\?wa=wsignin1\.0&amp;n=<value name="session"/>&amp;gs=true"</test--> ! <test id="language_specific_re"><link rel="stylesheet" href="/mail/ThemeCommon_([0-9]+[0-9.]+[0-9]+)\.aspx\?Theme=1&culture=(..)-(..)" type="text/css"/></test> ! <field name="version" group="1" ref="language_specific_re"/> ! <field name="language" group="2" ref="language_specific_re"/> ! <field name="country" group="3" ref="language_specific_re"/> </parse> <parse> <choose> ! <when test="language=='da'"><!-- Dansk --> <fixed><line>inbox=Indbakke</line></fixed> </when> ! <when test="language=='de'"><!-- Deutsch --> <fixed><line>inbox=Posteingang</line></fixed> </when> ! <when test="language=='en'"><!-- English --> <fixed> <line>inbox=Inbox</line> *************** *** 172,200 **** </fixed> </when> ! <when test="language=='ES'"><!-- Espanol --> <fixed><line>inbox=Bandeja de entrada</line></fixed> </when> ! <when test="language=='FR'"><!-- francais --> <fixed><line>inbox=Bo\xEEte de r\xE9ception</line></fixed> </when> ! <when test="language=='IT'"><!-- Italiano --> <fixed><line>inbox=Posta in arrivo</line></fixed> </when> ! <when test="language=='NL'"><!-- Nederlands --> <fixed><line>inbox=Postvak IN</line></fixed> </when> ! <when test="language=='NO'"><!-- Norsk --> <fixed><line>inbox=Innboks</line></fixed> </when> ! <when test="language=='BR'"><!-- Portugues (Brasil) --> <fixed><line>inbox=Caixa de Entrada</line></fixed> </when> ! <when test="language=='FI'"><!-- suomi --> <fixed><line>inbox=Saapuneet</line></fixed> </when> ! <when test="language=='SV'"><!-- Svenska --> <fixed><line>inbox=Inkorgen</line></fixed> </when> ! <when test="language=='KO'"><!-- Korea --> <fixed> <line>inbox=\ubc1b\uc740 \ud3b8\uc9c0\ud568</line> --- 176,204 ---- </fixed> </when> ! <when test="language=='es'"><!-- Espanol --> <fixed><line>inbox=Bandeja de entrada</line></fixed> </when> ! <when test="language=='fr'"><!-- francais --> <fixed><line>inbox=Bo\xEEte de r\xE9ception</line></fixed> </when> ! <when test="language=='it'"><!-- Italiano --> <fixed><line>inbox=Posta in arrivo</line></fixed> </when> ! <when test="language=='nl'"><!-- Nederlands --> <fixed><line>inbox=Postvak IN</line></fixed> </when> ! <when test="language=='no'"><!-- Norsk --> <fixed><line>inbox=Innboks</line></fixed> </when> ! <when test="language=='br'"><!-- Portugues (Brasil) --> <fixed><line>inbox=Caixa de Entrada</line></fixed> </when> ! <when test="language=='fi'"><!-- suomi --> <fixed><line>inbox=Saapuneet</line></fixed> </when> ! <when test="language=='sv'"><!-- Svenska --> <fixed><line>inbox=Inkorgen</line></fixed> </when> ! <when test="language=='ko'"><!-- Korea --> <fixed> <line>inbox=\ubc1b\uc740 \ud3b8\uc9c0\ud568</line> *************** *** 205,209 **** </fixed> </when> ! <when test="language=='JA'"><!-- Japan --> <fixed> <line>inbox=\u53d7\u4fe1\u30c8\u30ec\u30a4</line> --- 209,213 ---- </fixed> </when> ! <when test="language=='ja'"><!-- Japan --> <fixed> <line>inbox=\u53d7\u4fe1\u30c8\u30ec\u30a4</line> *************** *** 214,218 **** </fixed> </when> ! <when test="language=='CN'"><!-- China --> <fixed> <line>inbox=\u6536\u4ef6\u7bb1</line> --- 218,222 ---- </fixed> </when> ! <when test="language=='cn'"><!-- China --> <fixed> <line>inbox=\u6536\u4ef6\u7bb1</line> *************** *** 223,227 **** </fixed> </when> ! <when test="language=='TW'"><!-- Taiwan --> <fixed> <line>inbox=\u6536\u4ef6\u5323</line> --- 227,231 ---- </fixed> </when> ! <when test="language=='tw'"><!-- Taiwan --> <fixed> <line>inbox=\u6536\u4ef6\u5323</line> *************** *** 232,242 **** </fixed> </when> ! <when test="language=='x-RU'"><!-- Joke: Not yet available on HotMail --> <fixed> <line>inbox=\u0412\u0445\u043e\u0434\u044f\u0449\u0438\u0435</line> <line>sent=\u041e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435</line> - <line>draft=\u0428\u0430\u0431\u043b\u043e\u043d\u044b</line> <line>trash=\u0423\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0435</line> - <line>spam=\u041c\u0443\u0441\u043e\u0440\u043d\u044b\u0435</line> </fixed> </when> --- 236,246 ---- </fixed> </when> ! <when test="language=='ru'"><!-- Russian --> <fixed> <line>inbox=\u0412\u0445\u043e\u0434\u044f\u0449\u0438\u0435</line> + <line>spam=\u041d\u0435\u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043f\u043e\u0447\u0442\u0430</line> + <line>draft=\u0427\u0435\u0440\u043d\u043e\u0432\u0438\u043a\u0438</line> <line>sent=\u041e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435</line> <line>trash=\u0423\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0435</line> </fixed> </when> *************** *** 250,274 **** </login> <folders> - <fetch> - <url_get id="folders_list"> - <url>http://<value name="server"/>/cgi-bin/folders</url> - <file>folders.htm</file> - <method>GET</method> - <fields> - <field name="a"><value name="session"/></field> - </fields> - <url_options> - <option name="do_save_headers">1</option> - </url_options> - </url_get> - </fetch> <list> ! <input ref="folders_list"/> <item> ! <start><tr></start> ! <end></tr></end> ! <test ref="folder_info_re"/> ! <field name="curmbox" group="1" id="folder_info_re" parse="url"><td nowrap(?: colspan=2| *)><a href="/cgi-bin/HoTMaiL\?(?:a=<value name="session"/>&)?curmbox=([^&]+)&a=<value name="session"/>" >([^<]+)</a>&nbsp;</td></field> ! <field name="name" group="2" ref="folder_info_re"/> </item> </list> --- 254,270 ---- </login> <folders> <list> ! <input ref="home"/> ! <test ref="check_email_header"/> ! <list> ! <start><ul id="folderList"</start> ! <end></ul></end> ! </list> <item> ! <start><li class="FolderItemNormal ListItem (?: BoldText)?"</start> ! <end></li></end> ! <test id="folder_info_re"><a (?:class="DisplayBlock" )?href="InboxLight\.aspx\?FolderID=([0-9A-Fa-f-]+)&n=\d+" title="([^"]*?)(?: \(\d+ \))?"></test> ! <field name="curmbox" group="1" ref="folder_info_re" parse="url"/> ! <field name="name" group="2" ref="folder_info_re" parse="decode(utf-8),html"/> </item> </list> *************** *** 277,289 **** <fetch> <url_get id="folder_page"> ! <url>http://<value name="server"/>/cgi-bin/HoTMaiL</url> <file>folder_<value name="folder"/>_<value name="curmbox"/>_page<value name="page"/>.htm</file> <method>GET</method> <fields> ! <field name="curmbox"><value name="curmbox"/></field> ! <field name="a"><value name="session"/></field> ! <field name="page"><value name="page"/></field> </fields> ! <url_options/> </url_get> </fetch> --- 273,289 ---- <fetch> <url_get id="folder_page"> ! <url>http://<value name="server"/>/mail/InboxLight.aspx</url> <file>folder_<value name="folder"/>_<value name="curmbox"/>_page<value name="page"/>.htm</file> <method>GET</method> <fields> ! <field name="FolderID"><value name="curmbox"/></field> ! <field name="n"><value expr="str(randrange(10000000000))"/></field> ! <field name="InboxSortAscending">False</field> ! <field name="InboxSortBy">Date</field> ! <field name="Page"><value name="page"/></field> </fields> ! <url_options> ! <option name="override_ua">moz</option> ! </url_options> </url_get> </fetch> *************** *** 291,295 **** <pages> <input ref="folder_page"/> ! <test><font class="G"><value name="email"/></font></test> <start>1</start> <next group="1"><a href="javascript:HM\('page=(\d+)(?:&wo=&msg=)'\)" title="Next Page"></next> --- 291,295 ---- <pages> <input ref="folder_page"/> ! <test ref="check_email_header"/> <start>1</start> <next group="1"><a href="javascript:HM\('page=(\d+)(?:&wo=&msg=)'\)" title="Next Page"></next> *************** *** 297,310 **** <empty_list_test>There are no messages in this folder.</empty_list_test> <item bounds="inclusive"> ! <start><tr(?: bgcolor=#FFF7E5)? name="</start> <end></tr></end> <test ref="msg_info_re"/> ! <field name="id" ref="msg_info_re" group="1"/> ! <field name="from_email" group="1" parse="html"><tr (?:bgcolor=#FFF7E5 )?name="([^"]+)"></field> ! <field name="from_name" group="2" parse="html" id="msg_info_re"><td><a href="javascript:G\('/cgi-bin/getmsg\?msg=([^'&)]+)[^']*'\)">([^<]*)</a>&nbsp;</td></field> ! <!-- There are "len=..." argument in "G('/cgi-bin/getmsg?msg=...')" string but not for all messages..! What a pity... --> ! <field name="size" group="1" parse="html,replace(KB$,k),replace(MB$,m),replace(GB$,g)">(?:<td><a href="javascript:G\('/cgi-bin/getmsg?msg=.*&len=|<td align=right>)([^&"<]+)</field> ! <field name="subject" group="1" parse="html"></a>&nbsp;</td>\w*<td>([^<]*)</td></field> ! <field name="date" group="1" parse="html,date(%b %d)"><td>([^<]*)</td>\w*<td align=right></field> </item> </list> --- 297,308 ---- <empty_list_test>There are no messages in this folder.</empty_list_test> <item bounds="inclusive"> ! <start><tr class="(?:InboxContentItemUnread)?" ></start> <end></tr></end> <test ref="msg_info_re"/> ! <field name="id" id="msg_info_re" group="1"><td ><input type="checkbox" name="SelectedMessages" value="([0-9A-Fa-f-]+)" onclick="selectone\(event\)" title="[^>"]*"></td></field> ! <field name="from_name" group="1" parse="html"><td class="(?:InboxContentItemUnread)?" nowrap><a href="ReadMessageLight\.aspx\?[^"]+" class="TruncateFrom">([^<]*)</a></td></field> ! <field name="subject" group="1" parse="html"><td class="(?:InboxContentItemUnread)?"><a href="ReadMessageLight\.aspx\?[^"]+">([^<]*)&#x200f;</a></td></field> ! <field name="date" group="1" parse="html,date(%d.%m.%Y)"><td class="NoWrap">([^<]+)</td></field> ! <field name="size" group="1" parse="html,decode(utf-8),replace(KB$,k),replace(КБ$,k),replace(MB$,m),replace(МБ$,m),replace(GB$,g),replace(ГБ$,g)"><td class="TextAlignRight">([^lt;]*)</td></field> </item> </list> *************** *** 313,336 **** <fetch> <url_get id="message_eml"> ! <url>http://<value name="server"/>/cgi-bin/getmsg</url> <file>message_<value name="folder"/>_<value name="msgid"/>.txt</file> <method>GET</method> <fields> ! <field name="msg"><value name="msgid"/></field> ! <field name="raw">1</field> ! <field name="curmbox"><value name="curmbox"/></field> ! <field name="a"><value name="session"/></field> </fields> ! <url_options/> </url_get> </fetch> <join_lines> <list> ! <cut> ! <input ref="message_eml"/> ! <start><pre>\n</start> ! <end></pre></end> ! </cut> ! <item group="1" parse="pre-html">^(.*)$</item> </list> </join_lines> --- 311,410 ---- <fetch> <url_get id="message_eml"> ! <url>http://<value name="server"/>/mail/GetMessageSource.aspx</url> <file>message_<value name="folder"/>_<value name="msgid"/>.txt</file> <method>GET</method> <fields> ! <field name="msgid"><value name="msgid"/></field> ! <field name="gs">true</field> </fields> ! <url_options> ! <option name="override_ua">moz</option> ! </url_options> </url_get> </fetch> <join_lines> <list> ! <replace> ! <cut> ! <input ref="message_eml"/> ! <start><pre></start> ! <end></</end> ! </cut> ! <replaces> ! <item> ! <search>&#9;</search> ! <replace><value expr="chr(9)"/></replace> ! </item> ! <item> ! <search>&#34;</search> ! <replace>"</replace> ! </item> ! <item> ! <search>&#39;</search> ! <replace>'</replace> ! </item> ! <item> ! <search>&#40;</search> ! <replace>(</replace> ! </item> ! <item> ! <search>&#41;</search> ! <replace>)</replace> ! </item> ! <item> ! <search>&#43;</search> ! <replace>+</replace> ! </item> ! <item> ! <search>&#47;</search> ! <replace>/</replace> ! </item> ! <item> ! <search>&#58;</search> ! <replace>:</replace> ! </item> ! <item> ! <search>&#59;</search> ! <replace>;</replace> ! </item> ! <item> ! <search>&#60;</search> ! <replace><</replace> ! </item> ! <item> ! <search>&#61;</search> ! <replace>=</replace> ! </item> ! <item> ! <search>&#62;</search> ! <replace>></replace> ! </item> ! <item> ! <search>&#64;</search> ! <replace>@</replace> ! </item> ! <item> ! <search>&#91;</search> ! <replace>[</replace> ! </item> ! <item> ! <search>&#93;</search> ! <replace>]</replace> ! </item> ! <item> ! <search>&quot;</search> ! <replace>"</replace> ! </item> ! <item> ! <search>&lt;</search> ! <replace><</replace> ! </item> ! <item> ! <search>&gt;</search> ! <replace>></replace> ! </item> ! </replaces> ! </replace> ! <item group="1">(.*?)&#13;&#10;</item> </list> </join_lines> *************** *** 361,364 **** --- 435,439 ---- <domain>hotmail.com</domain> <domain>msn.com</domain> + <domain>live.com</domain> <domain>hotmail.fr</domain> <domain>hotmail.it</domain> *************** *** 369,372 **** --- 444,452 ---- <domain>hotmail.co.th</domain> <domain>hotmail.com.tr</domain> + <domain>webtv.com</domain> + <domain>charter.com</domain> + <domain>compaq.net</domain> + <domain>passport.com</domain> + <domain>messengeruser.com</domain> </domains> </service> |