refactor msg model (#173)
* Adding Mail structure
Adding a main structure which can be used for *everything* which has to do with
a mail:
- Writing a new mail
- Fetching the information of a mail
* Write mails
User can write mails now
* Writing mail
When mail is converted to a sendable message, it'll print out a nice little
error message what to do and which field is missing a value.
* Mail
List subcommand works with new struct now.
* Forwarding
Started implementation for forwarding message
* Breaking Commit
This is just a "backup" commit
* First finished
Himalaya can compile successfully now.
* Removed uneccessary files
- Moved everything from msg/mail to msg/model
- Removed uneccessary files
* Renaming
Renamed all "Mail" and "Mails" struct to "Msg" and "Msgs".
* Cleaning
Removed an CLI-Subcommand which can't be used anymore
* Flags
Fixed flags to vector and added the template subcommand back
* Changes to Flags
Changed the datatype from Vec<Flag<'static>> to HashSet<Flag<'static>>, because
each Message/Mail can include only one flag-type, so why not a HashSet for this
job?
* Cargo.toml changes
Fixed the lettre-dependencie which points to the pull request with the given
serde implementation for ContentType (needed for Attachments).
* Fix Template bug and removed unnecessary files.
- Removed the msg/flag/flag.rs file since we can use the imap::types::Flag
implementation now
- `himalaya template new` printed the template two times. This should be fixed
now
* Template command
Fixed formatting when printing out template
* Sending Mail
Fixed bug that user can't send a mail
* Msg
Moved the body from the attachment-vector out to an external attribute of the
struct.
* Msg listing and changed Msg::from to Msg::try_from
- Fixed bug that listing didn't showed up addresses in the `From:` field for
example
- Made each `from` trait function to `try_from` for better error-handling
* Tests
- Fixed tests in `tests/imap_conn.rs`
* Cargo.toml changes, Bug fixes, Documentation
- Updated mailparse to 0.13.4
- Added new "new" function to Account
- Cleaned up some functions (removed some)
- Added Eq and PartialEq derives for msg
- Bugfix:
It couldn't get the body of some mails, because they were inside a
multipart/alternative part. Now the mail is iterating through all subparts
and picks up the firs text/plain "attachment" and uses it as the body.
* Changed Msg attributes viewability
- Made the "main attributes" of the Msg struct public
- Removed to getter functions
* Big envelope changes
- Added documentation
- Removed the getter functions, beacuse the attributes are public
* Documentation and Cleanup
- Removed the `new` constructor of the envelope, since it's actually the same as
Envelope::default()
- Addded tests and Documentation to Attachments.rs
* Documentation and Tests
- Added docuemntation for msg/body.rs
- Fixed some syntax errors in the doc strings
* General msg
- Added `get_raw` function and `raw` field for the `Msg` struct.
- Fixed raw output of msg
- Started documentation + tests for the Msg struct
* Changes to Msg
- Added Clone derive
- Added documentation for change_to_reply method
- Added tests to change_to_reply method
* Msg tests and Account changes
- Changed `Account::new()` function
- Added more documentation to Msg struct
- Added more tests to Msg struct
* Removed an unknown file
Removed src/.rust_info.json (don't know where it came)
* Msgs finished(?)
Added final documentation to the Msg struct.
* ImapConnector Fix
Fixed the bug, when trying to move a msg, the envelope wasn't applied to the
fetch. Fixed that in the `get_msg` method.
* Msg
- Bug fixes:
- Adding Message ID and Subject in the to_sendable_msg function
- Removed an println statement for debugging
- Added more error messages
* Cargo.toml
Changed order and added some comments to the dependencies.
* Msg
Removed an unnecessary documentation part.
* Fixed documentation
* Removing non-debugflags for dev profile
Removing debug=false for the dev profile since it was just for me.
* Cleanup
Removed the comment blocks and reduced some comments
* Cleanup
Reformatted some stuff
* Cleanup
Replaced the word "mail" with "msg".
* Formatting
Fixed formatting in src/flag/model.rs file
* Little fix
* Changes and tests
- New "feature":
If you reply to a reply, the subject won't look like this for example:
Re: Re: Re: Re: Re: Re: The subject
- Fixed tests. All tests pass now (run `cargo test`)
* Idea(?)
Renamed all <module>_matches/_subcmds to general "matches" and "subcmds()".
All modules have the same: "matches()" and "subcmds()"
* Little fix
Changed the name from "imap_conn" to "conn" by mistake. Fixed that
* Bug fix
When sending a message, himalaya will generate a UUID on its own if there's no
message-id for the message yet.
* Bug fix
Removed angle brackets, since they are added through the lettre library.
* Bugfix
Removed an unnecessary (old) line.
* Cleanup
Removed the last comment blocks.
* Fixed lettre dependencie
* Bugfixes and Error handling
- When calling the msg_interaction function, the user can edit the msg first,
before the prompt comes up
- Also added a error output, if the msg couldn't be converted into a sendable
message.
* Error handling
Improved output of error
* Bug fixes, Error Handling
- Improved error handling for the string parsing
- Added attempt to fix the bug that a whitespace is added in the end of an
address
* Trimming
Added trims to avoid invalid white spaces in the addresses.
* Fixing whitespace bug
All addresses are gonna trimmed before adding to a header now
* Adding encoding, Changed dependencie
- Added encoding for the body part
- Changed the lettre dependencie of lettre to TornaxO7's fork of lettre, because
the "ContentTypeEncoding" struct needs the "Eq", "Serialize" and "Deserialize"
derives.
* Improved Error handling
Added a warning, if a message included an unknown attachment.
* Fixed tests
Fixed the documentation for passing the tests.
* Doc change
* Bugfis: When replying, signature is added now as well
* Bugfix: Forwarding Message
When forwarding a message, himalaya, put the signature in the end of the
mail/msg. Now it's added above the '-------Forwarded Message---------' line.
* Readjusted tests and new method
- Changed the way to create a new account:
- Account::new => Sets signautre to "None"
- Account::new_with_signature => Sets signature to the given argument
This makes it more flexible to create specifique accounts for tests for
example.
- Fixed the tests so all are passing now
* improve sig and sig delim concat process
* add signature delim struct comment
* fix signatures + tests
* fix body and signature new lines
* Adding [serde(rename_all = "camelCase")] to structs
* fix reply indentation and signature new lines
* add default rustfmt.toml
* apply fmt on all the project
* fix msg tests
* Makeing Ctx struct independent
- The Ctx struct doesn't include references anymore. This makes it easier to
create new Ctx instances by doing the following:
Ctx {
<attribute>: <value>,
.. Ctx::default()
}
This helps especially for writing tests.
Also the attributes of the Ctx struct in the main-entry function aren't used
anymore after creating the Ctx struct. So there's no need to have only
references in the Ctx struct.
* Fixing JSON output
- JSON of message includes `hasAttachment` key now
- JSON output shows both body types: Text and Html
- Changed `Body` struct so it can store html and text now.
* Tests
Updated tests with the latest Body implementation
* Fixes
- Removed suspicious println macro in serializer of msg... *cough cough*
- Fixed output in the "read" command
- othe small fixes
* Formatting
Formatted all files
* Msg
- Adding 'get_full_message' method which prints out all information of the
message in a string
* New Msg-Struct
Adding MsgSerialized, a struct, which represents the "correct" serialized
version of a message because it includes another attribute: `has_attachment`.
* Cleanup
Removed the manual serialize implementation of `Msg` and added a little more
info about the MsgSerialized.
* Test fixes
Adjusted all tests so all are passing now.
* Little changes
- Used a better condition for checking if the message includes attachments or
not
- format fixes
* Fixing tests and Docs
- Provided more docs
- Refactored tests and added more tests
* Expanding specials
Added more "special characters" which will add some quotes around the name if it
includes at least one of them.
* Fixing test
Improved the detection if the mail-name includes a special character or not.
* Variable renaming
Renamed a variable for better readability.
* Envelope renaming
* Small change
Renamed the variable of the `TryFrom` implementation for the
imap_proto::Envelope.
* Last stuff
- Making the attributes of mboxes independent. We can store them now as well!
- Added more docs
- Added type-safety for flags
- Expanded flags a bit
- Added more tests
- Added a short summary of the file-structure in the beginning of the doc.
* Help command fix
Fixing help command description.
* Small doc change
* Doc fix
Fixing the link to the mbox delimiter.
* Fixing typo
* Doc fix
* Added docs for Output struct
* Fixing tests
Fixing a little test issue
* Formatting changes + doc change
- Removed bold + capital words for logout-doc
- Run format on each *.rs file
* Fixing tests
- Testing the return value of the flags struct as a string doesn't really work
since it's a HashSet => Converted it into a Vec (in the test) to set the order
as well.
- Fixed imap test by reverting the changes in the test.
* Error handling
Changed error output when creating an Imap-Connection. Should help debugging :)
* Formatting fixes and refactoring
- Using `trim_end_matches` instead of "pop"s now.
- Executed `cargo fmt`
* Trying to fix test workflow
* Fixes
Updated dependencies with `cargo update` and let cargo point to master branch of
TornaxO7's lettre-fork because this should probably fix the issue with the
nix-build.
* Test fix
Fixing the workflow.
* Workflow fix
Removing semicolon
* Starting workflow
Added a new line to be able to push.
* Workflow
Reverting the workflow command.
* Workflows
Reverting workflow to master workflow.
* let actions/checkout@v2 run first
* Forwarded message's signature misplaced
Changes the order of the signature for forwarded messages.
* Output change
Changed the output if an error occurs.
* Fixing output for template-building
* Template shows raw data with JSON format #23
When printing the message in json, the raw message is printed out as a string
now.
* the_sender_is_not_displayed_properly_in_table_and_json #21
- When displaying the table, we'll look first, if a name exists, if yes => use
it otherwise use the email address.
- Added the rfc2047_decoder for parsing addresses
* Formatting
Run 'cargo fmt'
Co-authored-by: Clément DOUIN <soywod@users.noreply.github.com>
Co-authored-by: Erik <erik1000@protonmail.com>
2021-09-10 22:35:22 +00:00
|
|
|
max_width = 100
|
|
|
|
hard_tabs = false
|
|
|
|
tab_spaces = 4
|
|
|
|
newline_style = "Auto"
|
|
|
|
indent_style = "Block"
|
|
|
|
use_small_heuristics = "Default"
|
|
|
|
fn_call_width = 60
|
|
|
|
attr_fn_like_width = 70
|
|
|
|
struct_lit_width = 18
|
|
|
|
struct_variant_width = 35
|
|
|
|
array_width = 60
|
|
|
|
chain_width = 60
|
|
|
|
single_line_if_else_max_width = 50
|
|
|
|
wrap_comments = false
|
|
|
|
format_code_in_doc_comments = false
|
|
|
|
comment_width = 80
|
|
|
|
normalize_comments = false
|
|
|
|
normalize_doc_attributes = false
|
|
|
|
license_template_path = ""
|
|
|
|
format_strings = false
|
|
|
|
format_macro_matchers = false
|
|
|
|
format_macro_bodies = true
|
|
|
|
empty_item_single_line = true
|
|
|
|
struct_lit_single_line = true
|
|
|
|
fn_single_line = false
|
|
|
|
where_single_line = false
|
|
|
|
imports_indent = "Block"
|
|
|
|
imports_layout = "Mixed"
|
|
|
|
imports_granularity = "Preserve"
|
|
|
|
group_imports = "Preserve"
|
|
|
|
reorder_imports = true
|
|
|
|
reorder_modules = true
|
|
|
|
reorder_impl_items = false
|
|
|
|
type_punctuation_density = "Wide"
|
|
|
|
space_before_colon = false
|
|
|
|
space_after_colon = true
|
|
|
|
spaces_around_ranges = false
|
|
|
|
binop_separator = "Front"
|
|
|
|
remove_nested_parens = true
|
|
|
|
combine_control_expr = true
|
|
|
|
overflow_delimited_expr = false
|
|
|
|
struct_field_align_threshold = 0
|
|
|
|
enum_discrim_align_threshold = 0
|
|
|
|
match_arm_blocks = true
|
|
|
|
match_arm_leading_pipes = "Never"
|
|
|
|
force_multiline_blocks = false
|
|
|
|
fn_args_layout = "Tall"
|
|
|
|
brace_style = "SameLineWhere"
|
|
|
|
control_brace_style = "AlwaysSameLine"
|
|
|
|
trailing_semicolon = true
|
|
|
|
trailing_comma = "Vertical"
|
|
|
|
match_block_trailing_comma = false
|
|
|
|
blank_lines_upper_bound = 1
|
|
|
|
blank_lines_lower_bound = 0
|
|
|
|
edition = "2015"
|
|
|
|
version = "One"
|
|
|
|
inline_attribute_width = 0
|
|
|
|
merge_derives = true
|
|
|
|
use_try_shorthand = false
|
|
|
|
use_field_init_shorthand = false
|
|
|
|
force_explicit_abi = true
|
|
|
|
condense_wildcard_suffixes = false
|
|
|
|
color = "Auto"
|
|
|
|
required_version = "1.4.37"
|
|
|
|
unstable_features = false
|
|
|
|
disable_all_formatting = false
|
|
|
|
skip_children = false
|
|
|
|
hide_parse_errors = false
|
|
|
|
error_on_line_overflow = false
|
|
|
|
error_on_unformatted = false
|
|
|
|
report_todo = "Never"
|
|
|
|
report_fixme = "Never"
|
|
|
|
ignore = []
|
|
|
|
emit_mode = "Files"
|
|
|
|
make_backup = false
|