2020-08-21 09:41:11 +00:00
|
|
|
|
# Import-Export app
|
2020-05-14 13:22:29 +00:00
|
|
|
|
|
|
|
|
|
## Main blocks
|
|
|
|
|
|
2020-08-21 09:41:11 +00:00
|
|
|
|
This is basic overview of the main Import-Export blocks.
|
2020-05-14 13:22:29 +00:00
|
|
|
|
|
|
|
|
|
```mermaid
|
|
|
|
|
graph LR
|
|
|
|
|
S[ProtonMail server]
|
|
|
|
|
U[User]
|
|
|
|
|
|
2020-08-12 11:56:49 +00:00
|
|
|
|
subgraph "Import-Export app"
|
2020-05-14 13:22:29 +00:00
|
|
|
|
Users
|
|
|
|
|
Frontend["Qt / CLI"]
|
|
|
|
|
ImportExport
|
|
|
|
|
Transfer
|
|
|
|
|
|
|
|
|
|
Frontend --> ImportExport
|
|
|
|
|
Frontend --> Transfer
|
|
|
|
|
ImportExport --> Users
|
|
|
|
|
ImportExport --> Transfer
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
EML --> Transfer
|
|
|
|
|
MBOX --> Transfer
|
|
|
|
|
IMAP --> Transfer
|
|
|
|
|
S --> Transfer
|
|
|
|
|
|
|
|
|
|
Transfer --> EML
|
|
|
|
|
Transfer --> MBOX
|
|
|
|
|
Transfer --> S
|
|
|
|
|
|
|
|
|
|
U --> Frontend
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Code structure
|
|
|
|
|
|
2020-08-12 11:56:49 +00:00
|
|
|
|
More detailed graph of main types used in Import-Export app and connection between them.
|
2020-05-14 13:22:29 +00:00
|
|
|
|
|
|
|
|
|
```mermaid
|
|
|
|
|
graph TD
|
|
|
|
|
PM[ProtonMail Server]
|
|
|
|
|
EML[EML]
|
|
|
|
|
MBOX[MBOX]
|
|
|
|
|
IMAP[IMAP]
|
|
|
|
|
|
2020-08-12 11:56:49 +00:00
|
|
|
|
subgraph "Import-Export app"
|
|
|
|
|
subgraph "pkg users"
|
|
|
|
|
subgraph "pkg credentials"
|
2020-05-14 13:22:29 +00:00
|
|
|
|
CredStore[Store]
|
|
|
|
|
Creds[Credentials]
|
|
|
|
|
|
|
|
|
|
CredStore --> Creds
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
US[Users]
|
|
|
|
|
U[User]
|
|
|
|
|
|
|
|
|
|
US --> U
|
|
|
|
|
end
|
|
|
|
|
|
2020-08-12 11:56:49 +00:00
|
|
|
|
subgraph "pkg frontend"
|
2020-05-14 13:22:29 +00:00
|
|
|
|
CLI
|
|
|
|
|
Qt
|
|
|
|
|
end
|
|
|
|
|
|
2020-08-12 11:56:49 +00:00
|
|
|
|
subgraph "pkg importExport"
|
2020-05-14 13:22:29 +00:00
|
|
|
|
IE[ImportExport]
|
|
|
|
|
end
|
|
|
|
|
|
2020-08-12 11:56:49 +00:00
|
|
|
|
subgraph "pkg transfer"
|
2020-05-14 13:22:29 +00:00
|
|
|
|
Transfer
|
|
|
|
|
Rules
|
|
|
|
|
Progress
|
|
|
|
|
|
|
|
|
|
Provider
|
|
|
|
|
LocalProvider
|
|
|
|
|
EMLProvider
|
|
|
|
|
MBOXProvider
|
|
|
|
|
IMAPProvider
|
|
|
|
|
PMAPIProvider
|
|
|
|
|
|
|
|
|
|
Mailbox
|
|
|
|
|
Message
|
|
|
|
|
|
|
|
|
|
Transfer --> |source|Provider
|
|
|
|
|
Transfer --> |target|Provider
|
|
|
|
|
Transfer --> Rules
|
|
|
|
|
Transfer --> Progress
|
|
|
|
|
|
|
|
|
|
Provider --> LocalProvider
|
|
|
|
|
Provider --> EMLProvider
|
|
|
|
|
Provider --> MBOXProvider
|
|
|
|
|
Provider --> IMAPProvider
|
|
|
|
|
Provider --> PMAPIProvider
|
|
|
|
|
|
|
|
|
|
LocalProvider --> EMLProvider
|
|
|
|
|
LocalProvider --> MBOXProvider
|
|
|
|
|
|
|
|
|
|
Provider --> Mailbox
|
|
|
|
|
Provider --> Message
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
subgraph PMAPI
|
|
|
|
|
APIM[ClientManager]
|
|
|
|
|
APIC[Client]
|
|
|
|
|
|
|
|
|
|
APIM --> APIC
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
CLI --> IE
|
|
|
|
|
CLI --> Transfer
|
|
|
|
|
CLI --> Progress
|
|
|
|
|
Qt --> IE
|
|
|
|
|
Qt --> Transfer
|
|
|
|
|
Qt --> Progress
|
|
|
|
|
|
|
|
|
|
U --> CredStore
|
|
|
|
|
U --> Creds
|
|
|
|
|
|
|
|
|
|
US --> APIM
|
|
|
|
|
U --> APIM
|
|
|
|
|
|
|
|
|
|
PMAPIProvider --> APIM
|
|
|
|
|
EMLProvider --> EML
|
|
|
|
|
MBOXProvider --> MBOX
|
|
|
|
|
IMAPProvider --> IMAP
|
|
|
|
|
|
|
|
|
|
IE --> US
|
|
|
|
|
IE --> Transfer
|
|
|
|
|
|
|
|
|
|
APIC --> PM
|
|
|
|
|
```
|