-
Notifications
You must be signed in to change notification settings - Fork 190
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
create vendors module to support idiosyncratic IMAP providers #131
Comments
@zevaverbach a vendors module would be an awesome addition. I would gladly accept a PR. |
Will do! Would it be acceptable to employ such a module “magically“ in the constructor of Imbox? In addition to being able to do so manually . |
@zevaverbach What I think would work well:
https://github.com/martinrusev/imbox/blob/master/imbox/__init__.py#L68
|
@martinrusev super elegant, thank you. Will submit a PR soon. |
…lMessages class. 'vendor' is now a kwarg for Imbox, but there's also a lookup dict created in vendors/__init__.py for 'magic' determination of the vendor from the hostname. added `authentication_error_message` as a class attribute to `Imbox`. If `Imbox.vendor` is not None, look for a custom authentication error string, and raise it if there's a problem logging in. The default error value is raised if there is no custom string. created `name_authentication_string_dict` from all subclasses of `Messages` in `vendors/__init__.py`, for the lookup mentioned above. Implement architecture discussed in martinrusev#131, deciding whether to use `Messages` or a subclass of it in `Imbox.messages` based on the `Imbox.vendor` value. Use the `folder_lookup` dict, present on `Messages` but only filled in on its subclasses, to select the right folder based on a lowercased "standard" name given as the value of `folder`. created a blank `folder_lookup` on `Messages`. filled in the first vendor that subclasses `Messages`, `GmailMessages`. It contains class attributes `authentication_error_message`, `hostname`, `name`, used for purposes described above, as well as `folder_lookup` which is a dict containing aliases, sometimes several, for Gmail's unique folder naming scheme. These aliases are meant to be "human-friendly" for intuitive `folder` selection in calls to `Imbox.messages`. fixes martinrusev#131. prevent too much bookkeeping in vendors/__init__.py by adding each vendor.__name__ to __all__ from the vendors list.
This was alluded to in #123. Here are a few things such a module could support:
folder
names, and vice versa. For example, in Gmail the archived messages correspond with"[Gmail]/All Mail"
(including the double quotes!), whereas in Yahoo Mail it'sArchive
Imbox
, helpful error messages might be displayed. For example, with Yahoo:Have you clicked "Allow apps that use less secure sign in" here?: https://login.yahoo.com/account/security
.Would you accept a PR that accomplishes this, at least for a few large IMAP providers?
The text was updated successfully, but these errors were encountered: