1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188
|
== Version: 0.0.8 (23 August 2004) ==
libgmail.py
* Fixed login to work again after it was broken by a Gmail change.
Centralised cookie extraction. Added debug-level logging of cookie
extraction & storage.
* Add trash/delete message thread functionality to account object.
constants.py, libgmail.py, mkconstants.py
* Add trash/delete single message functionality to account object.
demos/gmailpopd.py
* Initial rough POP3 proxy server demo. Works with Mail.app when I
tried it... :-) Sometimes causes items to be downloaded even when
they don't *really* need to be. Causes some items to be marked as
read even if the client doesn't actually request them.
* Refactored message retrieval from account snapshot to allow
partial message retrieval (for TOP functionality).
* Added POP3 TOP command functionality which is required by Mozilla as it
(wrongly) doesn't work with the absolute minimum command set
specified by the RFC and requires TOP.
* Fixed copy/paste error to change 'ftp_QUIT' to 'pop_QUIT'.
* Moved byte-stuffing and message massaging into separate functions.
libgmail.py, demos/archive.py, demos/gmailftpd.py, demos/gmailpopd.py, demos/gmailsmtp.py, demos/sendmsg.py
* Added `GmailLoginFailure` exception to enable tidier handling of
login failures (which could be bad username/password or a Gmail
change).
* Updated demos to catch `GmailLoginFailure` exception.
* Removed non-supported "LOGIN" authentication method in SMTP demo
that was included in the server capability response in error.
ANNOUNCE
* Minor typo fix.
== Version: 0.0.7 (03 August 2004) ==
constants.py, mkconstants.py
* Added attachment related constants.
libgmail.py, demos/gmailsmtp.py
* Allow file data to be specified directly (rather than via an on-
disk file) when specifying attachments (this allows using existing
Message instance payloads mostly directly). Modify SMTP Proxy demo
to handle sending attachments.
demos/gmailftpd.py
* Initial import of Gmail attachments FTP Proxy!
libgmail.py
* Corrected version info for previous release.
* Added 'getMessagesByQuery' function. Added initial attachment
retrieval handling. Clean up handling of references to parent
objects & account objects. Version info update.
* Handle sending attachments. Works, but implementation is extremely
*cough* sub-optimal...
* Don't try to attach files if there are none.
== Version: 0.0.6 (15 July 2004) ==
demos/gmailsmtp.py
* That was too easy, there oughta be a law! Thanks to Python's
undocumented SMTP server module we can now send mail with a
standard mail client via (E)SMTP. Extended standard SMTP class to
handle ESMTP EHLO & AUTH PLAIN commands.
libgmail.py
* Added utility function '_retrieveJavascript' to 'GmailAccount' to
help developers who want to look at it. (In theory also so you can
regenerate 'constants.py' but the Javascript Gmail now uses isn't
actually useful for that anymore...) (Added by request.)
== Version: 0.0.5 (11 July 2004) ==
libgmail.py, demos/sendmsg.py
* Added functionality to enable message sending. Modified automatic
cookie handling. Added command line example to send a message.
Enabled page requests to be either a URL or a Request instance.
constants.py, mkconstants.py
* Added more useful constants.
== Version: 0.0.4 (11 July 2004) ==
constants.py, mkconstants.py
* Include standard folder/search name constants.
* Add more useful constants.
constants.py, libgmail.py, mkconstants.py
* Added category name retrieval.
mkconstants.py
* 'mkconstants' isn't really useful anymore with the new JS version.
libgmail.py
* Add ability to get number of unread messages.
* Handle items that might be 'bunched' such as thread lists better.
* Only warn about mismatched Javascript versions once module import.
(Note: This may mean the Javascript version may change more than
once in a session and the second change won't be warned, but that
shouldn't be much of an issue...)
* Refactor URL construction. Refactor query/search operation in
preparation for adding searches.
* More refactoring. Made thread search query more generic to allow
use by (to come) label searches etc. Threads now belong to
'GmailSearchResult' instances rather than folders. Threads now
retrieve their own messages rather than relying on their parent to
do so.
* We now refer to categories as labels, as the UI does. Enable
retrieval by label.
libgmail.py, demos/archive.py
* Allow all pages of results to be returned for a 'getFolder'
request. (Not tested much.)
* Provide easy access to standard folder names. Added length
property to folders. Examples now handle empty folders gracefully.
* Now uses 'getMessagesByXXXXX' style method names for folders &
labels. Now refer to original message source as 'source' & not
'body'. Enable demos to search by folder name or label name.
== Version: 0.0.3 (8 July 2004) ==
libgmail.py
* Allow username to be specified on the command line instead of prompting.
* Rough special case handling of when more than one set of thread information data is present on a page (seemed to occur when using 'all' search after a certain number of items). TODO: Make this fix work at the page parsing level, but splitting all tuples into individual items.
* Add cookie handling code to enable us to remove requirement for ClientCookie package. (Especially for Adrian... :-) )
demos/archive.py
* *Extremely* rough mbox creation--turns out the mails retrieved had '\r' characters at the end of the headers. The mbox file appears to be successfully imported by OS X's Mail.app client.
* Allow username to be specified on the command line instead of prompting.
== Version: 0.0.2a (~6 July 2004) ==
* No code change, renamed to try to avoid SourceForge mirroring problems.
== Version: 0.0.2 (5 July 2004) ==
constants.py
* Useful constants from the Gmail Javascript code as Python module.
* Update to match current live Javascript.
* Fudge some enumerations that we need to start at 0.
libgmail.py
* Refactor to make use of Folder/Thread/Message model. Standardised some naming. Make use of imported Gmail constants. Centralise page retrieval & parsing.
* Calculate number of messages in thread.
* Refactor & reorganise code. Minor style edits. Refine design of folder, thread & message classes. Modify folders, threads & messages to be as lazy as possible when it comes to retrieving data from the net. Enable message instances to retrieve their original mail text. Add Gmail implementation notes. Hide password entry. Demo now displays threads & messages.
* Version date change.
mkconstants.py
* Tool to make useful constants from the Gmail Javascript code available via a Python module.
* Fudge some enumerations that we need to start at 0.
demos/archive.py
* Initial rough demo to archive all messages into text files.
CHANGELOG
* Added.
== Version: 0.0.1 (2 July 2004) ==
libgmail.py
* Initial import of version 0.0.1 (as posted in comp.lang.python).
|