Commit graph

272 commits

Author SHA1 Message Date
Clément DOUIN 158bc86cfa
release v0.5.6 (#301)
* make use of mailparse::MailAddr

* move addr logic to a dedicated file

* update changelog

* add suffix to downoalded attachments with same name (#204)

* implement sort command (#34)

* introduce backends structure (#296)

* implement backend structure poc

* improve config namings

* improve account namings and structure

* rename imap vars to backend

* maildir backend (#299)

* refactor config system, preparing maildir backend

* rename deserializable by deserialized

* wrap backend in a Box

* reword backend trait methods

* merge list envelopes functions

* remove find_raw_msg from backend trait

* remove expunge fn from backend trait

* rename add_msg from backend trait

* init maildir integration tests, start impl maildir backend fns

* implement remaining methods maildir backend, refactor trait

* improve backend trait, add copy and move fns

* remove usage of Mbox in handlers

* reorganize backends folder structure

* move mbox out of domain folder

* rename mbox entities

* improve mbox structure

* remove unused files, move smtp module

* improve envelope, impl get_envelopes for maildir

* link maildir mail entry id to envelope id

* use erased-serde to make backend get_mboxes return a trait object

* remove unused mbox files

* rename Output trait

* make get_envelopes return a trait object

* remove unused impl for imap envelope

* update backend return signature with Box

* replace impl from imap::Fetch to mailparse::ParsedMail

* split flags by backends

* remove unused flags from msg

* remove remaining flags from domain

* impl maildir copy and move, improve maildir e2e tests

* set up imap backend e2e tests

* move domain/msg to msg

* repair broken tests

* fix maildir envelopes encoding issues

* add date column to maildir envelopes

* implement maildir list pagination

* improve maildir subdir path management

* add pgp and maildir features to readme

* update changelog

* bump version v0.5.6
2022-02-22 16:54:39 +01:00
Clément DOUIN 585fa77af5
release v0.5.5 (#290)
* update main screenshot readme

* add contributing file

* update changelog

* doc: remove roadmap from reame

* improve main comments

* improve arg and handler logs

* fix multiple recipients issue (#288)

* add notify-query config option (#289)

* set up end-to-end encryption (#287)

* init basic pgp encrypt/decrypt

* add small rpgp poc for (#286)

* improve decrypt parts logs

* add pgp-decrypt-cmd to config

* add pgp-encrypt-cmd to config

* init pgp signature

* improve decrypt part readability

* improve encrypt multipart, remove sign

* remove unused md5 lib

* add encrypt arg to reply and forward commands

* fix typos

* prepare v0.5.5
2022-02-08 14:50:09 +01:00
Clément DOUIN e33a9a72e9
release v0.5.4 (#285)
* replace bsd3 license by bsd4

* add attachments with save and send commands (#284)

* set up tpl save and send commands

* improve msg save and send handlers

* add vim msg#add_attachment fn

* improve vim logs

* update changelog

* add attachment keybind vim doc

* reverse range order fetch envelopes (#276)

* bump version v0.5.4
2022-02-05 00:29:57 +01:00
Clément DOUIN 0e452d8a47
update readme badges 2022-02-04 00:23:02 +01:00
Clément DOUIN c5ed252f33
bump version v0.5.3 2022-02-03 23:34:15 +01:00
Clément DOUIN 8c54097286
remove branch condition deployment 2022-02-03 16:15:22 +01:00
Clément DOUIN 8f202b0f00
set up crates.io deployment in github actions 2022-02-03 15:54:57 +01:00
Clément DOUIN 9e320135ec
prepare cargo publishing 2022-02-03 15:54:57 +01:00
Clément DOUIN 3a42c937be
link imap debug mode with env logger (#269) 2022-02-03 15:54:56 +01:00
Clément DOUIN 8cdeba62a1
release v0.5.2 (#282)
* doc: fix blur in list msg screenshots (#181)

* fix a typo in mbox arg (#245)

`targetted` to `targeted` 👌🏻

* make inbox, sent and drafts folder customizable (#246)

* mbox: make inbox, sent and drafts folder customizable

* msg: update send handler parameters order

* vim: fix extracting message ids from list (#247)

The current method doesn't work because the list uses a fancy line
character (`│`) as the separator, not a regular pipe character (`|`).
Matching for the first number in the line instead solves the problem and
will continue to work regardless of what separator is used.

* add new line after printing strings (#251)

* init cargo workspace (#252)

* init cargo workspaces

* nix: fix assets path

* doc: update rtp vim plugin

* vim: add error message if loading vim plugin from vim/

* init sub crates (#253)

* init sub crates

* doc: update readme

* doc: improve main readme

* doc: add links, add missing crate task

* doc: update emojis

* update cargo lock

* implement contact completion with completefunc (#250)

This allows users to define a command for contact completion with
`g:himalaya_complete_contact_cmd` and trigger it with `<C-x><C-u>` when
writing an email.

* fix clippy lints (#255)

* revert cargo workspace feature

* fix nix run (#274)

* replace cargo2nix by naersk

* add rust-analyzer and rustfmt to nix build inputs

* remove wiki from git submodules, update changelog

* fix missing range when fetch fails, add more logs (#276)

* add missing fix in changelog

* remove blank lines and spaces from plain parts (#280)

* fix watch command (#271)

* remove also tabs from text parts (#280)

* pin native-tls minor version (#278)

* improve msg sanitization (#280)

* fix mbox vim plugin telescope preview (#249)

* bump version v0.5.2

* update changelog

Co-authored-by: Austin Traver <austintraver@gmail.com>
Co-authored-by: Jason Cox <dev@jasoncarloscox.com>
Co-authored-by: Gökmen Görgen <gkmngrgn@gmail.com>
Co-authored-by: Ethiraric <ethiraric@gmail.com>
2022-02-02 02:21:35 +01:00
Clément DOUIN f9775ae8af
doc: update project desc, bump version v0.5.1 2021-10-24 23:41:12 +02:00
Clément DOUIN 43785b3c1e
vim: render msg table directly from cli (#238)
* vim: render msg table from cli directly

* doc: update changelog
2021-10-24 23:34:04 +02:00
Clément DOUIN e154481c5b
add max table width arg, refactor printer (#237)
* printer: refactor output to pass down args from cli

* msg: add missing max width arg to search cmd

* output: rename printer service, merge print with output folder

* doc: update changelog and wiki

* table: rename print fn
2021-10-24 21:02:02 +02:00
Clément DOUIN 192445d7e4
make use of termcolor crate to disable colors (#236)
* table: replace custom color by termcolor

* table: deactivate colors if not tty

* table: rename printable to print, add more comments

* table: make use of writters, fix tests

* doc: update changelog

* doc: add page to wiki
2021-10-24 00:17:12 +02:00
Alan Morgan 09d3de5e6f
parse raw message as ut8 lossy (#234)
Reading a message raw uses uses utf_lossy to ensure the message can be read
even if there is invalid utf8.
2021-10-23 17:23:25 +02:00
Clément DOUIN eaa83b71ef
notify cannot get body (#233)
* imap: fix notify cmd

* doc: update changelog
2021-10-23 00:46:21 +02:00
Clément DOUIN f0b2fd788d
remove error when empty subject (#232)
* msg: remove error when empty subject

* doc: update changelog
2021-10-23 00:25:34 +02:00
Clément DOUIN d9272917f5
clean msg flags, merge tpl entity in msg (#231)
* merge tpl entity into msg

* change envelope subject type to cow

* msg: fix save command when raw msg comes from stdin

* msg: clean flags
2021-10-23 00:17:24 +02:00
Igbanam Ogbuluijah 45aac9fbec
delete vim read buffers on list msgs (#224)
0.5.0 came with the amazing option of reading the mail in the same view.
The issue with this is, if you go back to the message list and read some
new mail, it opens a new pane to read the new mail. This change follows
the path of modern mail readers which have one pane to load the email in.

Technically, this change closes any open "Himalaya read message" pane
before creating a new one. This close-open should create the illusion of
having the same pane reload the content.

A possible extension of this would be to clear the contents of the pane,
and re-use the same pane to load the new message. A good time to go this
extension is if Himalaya chooses to use persistent connections to the
mail server.
2021-10-14 14:04:52 +02:00
Clément DOUIN 85f3ce8976
add mailbox handler tests (#225)
* make imap.fetch_mboxes return a Mboxes struct

* add mbox handler tests
2021-10-14 12:52:30 +02:00
Clément DOUIN 8af14734c3
improve mailbox structure (#223)
* split entities, remove manual serialization, add comments

* add mbox arg subbcmds test

* finalize mbox arg tests

* fix typos in comments

* add missing tests for entities

* rename fetch mbox imap fn
2021-10-13 20:48:42 +02:00
Clément DOUIN d21778c35e
improve text parts (#221) 2021-10-11 23:04:33 +02:00
Clément DOUIN 284929d5dc
add missing issue changelog v0.5.0 2021-10-11 00:37:52 +02:00
Clément DOUIN 767eee95f5
release v0.5.0 2021-10-11 00:06:46 +02:00
Clément DOUIN b7d068c729
improve folder struct + msg management (#217)
* make imap list and search return msg instead of fetch

* move imap logouts to main fn

* improve list command

* improve search command

* improve flags command

* improve template reply

* improve tpl forward command

* refactor tpl and msg reply/forward

* refactor copy, move and write commands

* refactor attachment command

* fix attachment part of copy and move commands

* fix send, save, read and mbox

* put back notify and watch commands

* fix msg encoding

* refactor edit choices, clean dead code

* fix attachment for write, reply and forward commands

* refactor config mod struct

* refactor project folder struct

* fix vim plugin (#215)
2021-10-10 22:58:57 +02:00
Igbanam Ogbuluijah 794860befe
Fix the message list bug (#216)
With the current version of Himalaya, the Vim front breaks because it
can't find headers.subject in the JSON output from Himalaya. The JSON
output today from Himalaya representing a message looks like so

```json
    {
      "uid": 12345,
      "flags": [],
      "subject": "Subject",
      "subject_len": 7,
      "sender": "Sender",
      "sender_len": 6,
      "date": "2020-12-11 06:38:19"
    },
```

This reverts some of the changes in b9a9d0e, but not all of them.
2021-10-10 09:10:37 +02:00
Paolo Barbolini 8f4718c057
Remove unused lettre_email crate (#209) 2021-09-29 22:32:59 +02:00
Clément DOUIN b9a9d0e687
fix vim msg list and read 2021-09-19 18:08:27 +02:00
Clément DOUIN 9931658ea3
review template, write and search commands 2021-09-19 17:21:42 +02:00
Clément DOUIN 079572666a
review reply command 2021-09-19 17:04:05 +02:00
Clément DOUIN 7a43bdd46e
review read command 2021-09-19 16:58:10 +02:00
Clément DOUIN d706a13e5e
review mailto command 2021-09-19 16:51:58 +02:00
Clément DOUIN ac75c1d37a
review move command 2021-09-19 16:48:09 +02:00
Clément DOUIN c7940f72ff
review mailboxes command 2021-09-19 16:42:45 +02:00
Clément DOUIN cebff51e5b
review list command 2021-09-19 16:41:02 +02:00
Clément DOUIN e609fc296c
review forward command 2021-09-19 16:35:52 +02:00
Clément DOUIN 65664d5405
review flag command, remove lib + dead code 2021-09-19 14:24:00 +02:00
Clément DOUIN 71818e04b4
review delete command 2021-09-19 11:36:11 +02:00
Clément DOUIN 2e27972716
review copy command 2021-09-19 11:18:17 +02:00
Clément DOUIN c155d30e54
review completion command 2021-09-19 11:04:01 +02:00
Clément DOUIN 2bcad3ff87
review attachment command 2021-09-19 10:55:15 +02:00
Clément DOUIN 474fae06ee
move attachment, body and header to dedicated folders 2021-09-19 10:14:25 +02:00
Clément DOUIN cdce6c0bf2
fix tpl forward/reply, fix flag subcmd (#190) 2021-09-19 00:08:57 +02:00
Clément DOUIN e065d8d905
fix new tpl sig 2021-09-18 21:45:26 +02:00
Clément DOUIN 8e2a703e2b
improve arg comments, rename arg Match to Command 2021-09-18 15:15:36 +02:00
Clément DOUIN e41a71648c
rename output cli to arg 2021-09-18 00:32:46 +02:00
Clément DOUIN 94e9711c58
split input into submodules 2021-09-18 00:29:49 +02:00
Clément DOUIN 8fbbb324da
merge back account with config 2021-09-17 21:55:11 +02:00
Clément DOUIN 94f7dd5b05
remove config from domain module 2021-09-17 18:30:17 +02:00
Clément DOUIN 54493540b4
improve msg arg/handlers + tpl + flag 2021-09-17 18:17:11 +02:00