summaryrefslogtreecommitdiff
path: root/alot
Commit message (Collapse)AuthorAge
* retire Message.accumulate_bodyPatrick Totzke2019-08-15
| | | | | | ... in favour of get_body_text to de-clutter the Message class. The functionality is implemented in alot.db.utils.extract_body, which now contains the hard-coding of the html warning.
* rename Message.get_text_content() to get_body_text()Patrick Totzke2019-08-15
|
* update docstringsPatrick Totzke2019-08-15
|
* Update to new (3.6) email message APIPatrick Totzke2019-08-15
| | | | | | | This uses email.message.EmailMessage.get_body() to find the best candidate for a "body" message part and replaces our own ad-hoc solution in alot.db.utils.extract_bodytext, which was based on a walk through all parts.
* remove field_key parameter from PipetoCommandPatrick Totzke2019-08-15
| | | | I don't think anyone needs anything else but copiousoutput here
* pep8 fixes in alot/widgetsPatrick Totzke2019-08-11
|
* remove unused importsPatrick Totzke2019-08-11
|
* ContactsCompletion: use db.utils.formataddrMichael J Gruber2019-08-10
| | | | | | | | | | | | email.utils.formataddr does more encoding than we need at this point - headers will be encoded when they get inserted anyway. Use db.utils.formataddr instead. Fixes #1378 Note that some tests need to be (and are) changed: The expectation of the old tests was to get a completely escaped result. Also, add an umlaut test.
* Merge pull request #1398 from pazz/0.8-summary-onlyLucas Hoffmann2019-07-22
|\ | | | | Faster Thread loading
| * explicit expand method in MessageTreesPatrick Totzke2019-06-03
| | | | | | | | | | to make sure that all parts exist when messages are expanded (see pydoc string)
| * cosmeticsPatrick Totzke2019-06-02
| |
| * Only create MessageSummary initiallyPatrick Totzke2019-06-02
| | | | | | | | | | | | | | | | | | | | | | This will prevent the whole message from being read and interpreted at the time we instantiate a MessageTree for display and instead only create the (cheap!) summary widget. When a user manually interacts with the Message widgets (for example by unfolding/toggling source) then the content parts will anyway be reassembled. The consequence of this patch is that loading large threads should be much faster.
* | Options overwrite default values for sent_tags and draft_tagssgelb2019-07-07
|/ | | | | In addition, remove hardcoded default values from `account.py` and use defaults from `alot.rc.spec`
* refactor ReplyCommandPatrick Totzke2019-06-02
| | | | | This moves the static methods clear_my_address and ensure_unique_address out of ReplyCommand and into alot.db.utils.
* fix: use from-header from disk when replyingPatrick Totzke2019-06-02
| | | | | | | | | | | | | | | | see issue #1402 If the "author" string (a decoded version of the From header value) is read from the notmuch index, it may have already removed quotes around real name parts containing a comma. This means that `alot.db.message.get_author()` will potentially misinterpret it because python's email libs decoding behaviour is different. For example, 'Ä, B <a@b.c>' will yield address 'Ä' and empty name!. This commit makes sure that the original from header is read from disk when one replies to a message, which avoids the above problem.
* fix formataddrPatrick Totzke2019-06-02
| | | | | | | | | | | | | | | | | | | | | This adds a local utility function `formataddr` which acts as the direct inverse of `email.utils.parseaddr`. The problem with `email.utils.formataddr` is (currently) that - it encodes non-ascii characters and - it does not re-introduce quotes around the real name parts in case parseaddr removed them: >>>parseaddr('"Ö, Ä" <a@b.c>') >>>('Ö, Ä', 'a@b.c') >>>formataddr(('Ö, Ä', 'a@b.c')) >>>'=?utf-8?q?=C3=96=2C_=C3=84?= <a@b.c>' >>>parseaddr('=?utf-8?q?=C3=96=2C_=C3=84?= <a@b.c>') >>>('=?utf-8?q?=C3=96=2C_=C3=84?=', 'a@b.c') related issue #1402
* adjust to variable python-magic APIMichael J Gruber2019-06-02
| | | | | | | | Depending on the libmagic/ctypes version, magic_version is a function or a constant. So far, the code expected a constant and fails on the function variant with a TypeError. Test with callable() und use the magic_version attribute accordingly.
* remove old new-style classes syntaxPatrick Totzke2019-05-27
| | | | | | Python3 only supports "new-style" classes (those extending object), and we don't need to explicitly inherit from this root class any more. See http://pylint-messages.wikidot.com/messages:c1001
* do not remove quotes around realname partsPatrick Totzke2019-05-27
| | | | | | | | | | | | | when decoding headers containing email addresses; Some MUAs (exchange) will add headers in the form: To: "Last, First" <x@y.z> Prior to this commit, alot would remove the quotes (apparently they violate RFC 2047). However, this then would lead to problems where the additional comma is interpreted as separator between several recipients. This commit causes alot to not remove the quotes.
* Fix double width characters in search viewCaio Prado2019-05-14
| | | | | Hotfix for double width characters causing columns misalign in search view (https://github.com/pazz/alot/issues/1393)
* update docs for tag commands in search modePatrick Totzke2019-05-11
| | | | Closes #1391
* cleanup trailing whitespacePatrick Totzke2019-05-11
|
* fix mergePatrick Totzke2019-05-11
| | | | | | | | Since this branch was created, master has diverged in that ComposeCommand now stores the determined sender account in the envelope. (see #117). This commit makes sure that the newly split methods read the account from there.
* fix pyflakes issuesPatrick Totzke2019-05-11
|
* commands/globals: split remaining functionality out of applyPatrick Totzke2019-05-11
| | | | The last few functions are very small so just doe them in one go.
* commands/globals: Split encryption code into a helperDylan Baker2019-05-11
|
* commands/globals: Split code for setting a missing To headerDylan Baker2019-05-11
|
* commands/globals: split gpg signing code into a helperDylan Baker2019-05-11
|
* commands/globals: split envelope setting codePatrick Totzke2019-05-11
|
* commands/globals split out the signature setting codeDylan Baker2019-05-11
|
* commands/globals: split the code for setting ...Patrick Totzke2019-05-11
| | | | account and From header
* commands/globals: split out the code for loading a templateDylan Baker2019-05-11
|
* commands/globals: wrap apply in an error handlerDylan Baker2019-05-11
| | | | | | | | As we split the apply method up into separate methods we need a way for those helpers to stop execution of the method. This wraps the real apply method inside of a try/except block with a custom exception. Any helper that is intended to run in the apply method simply needs to raise this exception, and apply will return.
* expose subject and to headers to forward_prefix hookNick Hu2019-05-11
|
* fix double-line issuePatrick Totzke2019-03-04
| | | | | | | | | Tagstrings with double-width characters resulted in not enough horizontal space being allocated, which lead urwid to draw the statusline in two lines instead of one (see #742). This lets urwid calculate the necessary width itself, using its pack() method.
* adding new config options to the docsAndrés Martano2019-03-04
|
* Config to display in thread buffer status bar all tags present in a thread, ↵Andres MRM2019-03-04
| | | | or tags common to all messages in thread
* bump yearPatrick Totzke2019-02-14
|
* bump version stringPatrick Totzke2019-02-14
|
* restore lenient libmagic decodingMichael J Gruber2019-02-07
| | | | | | | | 176cffcd ("refactor alot.db.utils.remove_cte", 2018-12-04) created a few problems with 8bit quoted-printable e-mails, see #1291 #1360. This commit restores the old libmagic fallback which did not cause this problem.
* addressbook: add logging statementsMatthieu Coudron2019-02-06
| | | | to help troubleshoot problems
* db/message: accept attachments of type pgp-encryptedRuben Pollan2019-01-21
| | | | | | | | | | | | | | | | | In case of a '.gpg' file being attached to a non-encrypted email some email clients (like thunderbird) will mark this attachment as content type 'application/pgp-encrypted'. Alot used to discard that mime part because the same content type is being used in PGP/MIME to signal de version: https://tools.ietf.org/html/rfc3156#section-6.1 Now alot differenciates two cases: * Normal PGP/MIME encrypted messages, where we need to discard the 'application/pgp-encrypted' mime part. Detected because this part is followed by a 'application/octet-stream' mime part. * A mime part with aplication/pgp-encrypted as content type, that is displayed as attachment.
* ~ expansion for .config/alot/configbrady2019-01-06
| | | | | | | | pep8! Better variable names, new feature into docs. Make sphinx documentation.
* restore support for regex in section namesWill Dietz2018-12-22
|
* Set local variable before useageLucas Hoffmann2018-12-14
| | | | Fixes #1351.
* bump version stringPatrick Totzke2018-12-10
|
* rename get_account_by_address to account_matching_addressvrs2018-12-10
| | | | | ... since accounts' addresses can overlap and get_account_by_address promises too much. Also remove now-obsolete get_addresses.
* match addresses against accounts, not address listsvrs2018-12-10
| | | | fixes #1230, fixes an unfiled bug in clear_my_address()
* attach accounts to envelopesvrs2018-12-10
| | | | simplifies a few tests, fixes #1177
* refactor alot.db.utils.remove_ctePatrick Totzke2018-12-07
| | | | | | | This makes remove_cte more accepting of incorrect Content-Transfer-Encoding header values: instead of looking for exact matches of valid values, it now tests if a valid value appears as substring.