imap-backup 9.0.1.rc1 → 9.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b3265f2db3d9cf928f1f89f0bc3ed7ef9b97f81ece419c17b2000433889a558f
4
- data.tar.gz: '0886830e13d3ad8cf02e2ca152733d14031444a2d17eb0b43dc1121cfb822280'
3
+ metadata.gz: 4e9d95502af3aa99d3ad49581ff743c641d12f308a1326ba2aabc1dcc2ec5f4f
4
+ data.tar.gz: ddf93a5e5bcc90ef698607b53224f5082da7cd0a7f65b52e0bf892999bb96898
5
5
  SHA512:
6
- metadata.gz: b790f8f237496fc0c10d4a50293d628931020e96da738ad2588b014138efdda25ea172a976e92a1b142ed316072cd46341369206604b9e6a5a2ed5b40b5459ac
7
- data.tar.gz: 60551fd6309b09bc4efb4f5537f5e1c1ec5c7439d17fec8c1657e7a17b31620eabe8e1e0c049de3a430d4706e4334c9954c13ce329fcc32f6c80889b7467c25f
6
+ metadata.gz: 582736b8992988cb3d34c48022cf59044d92c8c9488a133afe49610f4abf8853a98c31eb6c61e677d47363252dcbf5a2b923646b2643dd059bd71923a06e652f
7
+ data.tar.gz: 11ba0236028272763b078aa0e9d84d636fcb98478a7d225c1c8406c771838d158fd218ba259697a2aac7ead306d9fe13eb89f2aec1712d7416ff7afca86beb4e
data/docs/development.md CHANGED
@@ -64,7 +64,7 @@ fetch_data_items = imap.uid_fetch(uids, ["BODY[]"])
64
64
  # Older Ruby Versions
65
65
 
66
66
  Dockerfiles are available for all the supported Ruby versions,
67
- see the `docker` directory.
67
+ see the `container` directory.
68
68
 
69
69
  # Contributing
70
70
 
@@ -14,24 +14,24 @@ module Imap::Backup
14
14
  def run
15
15
  all_names = Account::Connection::FolderNames.new(client: client, account: account).run
16
16
 
17
- names =
18
- if account.folders&.any?
17
+ configured =
18
+ case
19
+ when account.folders&.any?
19
20
  account.folders.map { |af| af[:name] }
21
+ when account.folder_blacklist
22
+ []
20
23
  else
21
24
  all_names
22
25
  end
23
26
 
24
- all_names.map do |name|
25
- backup =
26
- if account.folder_blacklist
27
- !names.include?(name)
28
- else
29
- names.include?(name)
30
- end
31
- next if !backup
27
+ names =
28
+ if account.folder_blacklist
29
+ all_names - configured
30
+ else
31
+ all_names & configured
32
+ end
32
33
 
33
- Account::Folder.new(account.connection, name)
34
- end.compact
34
+ names.map { |name| Account::Folder.new(account.connection, name) }
35
35
  end
36
36
  end
37
37
  end
@@ -15,6 +15,12 @@ module Imap::Backup
15
15
  config = load_config(**options)
16
16
  each_connection(config, emails) do |connection|
17
17
  connection.run_backup(refresh: refresh)
18
+ rescue StandardError => e
19
+ message =
20
+ "Backup for account '#{connection.account.username}' " \
21
+ "failed with error #{e}"
22
+ Logger.logger.warn message
23
+ next
18
24
  end
19
25
  end
20
26
 
@@ -33,14 +33,24 @@ module Imap::Backup
33
33
  end
34
34
 
35
35
  def source_uid(destination_uid)
36
+ if destination_store == {}
37
+ raise "Assign UID validities with #reset before calling #source_uid"
38
+ end
39
+
36
40
  map.key(destination_uid)
37
41
  end
38
42
 
39
43
  def destination_uid(source_uid)
44
+ if destination_store == {}
45
+ raise "Assign UID validities with #reset before calling #destination_uid"
46
+ end
47
+
40
48
  map[source_uid]
41
49
  end
42
50
 
43
51
  def map_uids(source:, destination:)
52
+ raise "Assign UID validities with #reset before calling #map_uids" if destination_store == {}
53
+
44
54
  map[source] = destination
45
55
  end
46
56
 
@@ -2,8 +2,8 @@ module Imap; end
2
2
 
3
3
  module Imap::Backup
4
4
  MAJOR = 9
5
- MINOR = 0
6
- REVISION = 1
7
- PRE = "rc1".freeze
5
+ MINOR = 1
6
+ REVISION = 0
7
+ PRE = nil
8
8
  VERSION = [MAJOR, MINOR, REVISION, PRE].compact.map(&:to_s).join(".")
9
9
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: imap-backup
3
3
  version: !ruby/object:Gem::Version
4
- version: 9.0.1.rc1
4
+ version: 9.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joe Yates
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-12-29 00:00:00.000000000 Z
11
+ date: 2023-02-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: highline
@@ -217,11 +217,8 @@ files:
217
217
  - LICENSE
218
218
  - README.md
219
219
  - bin/imap-backup
220
- - docs/configuration.md
221
220
  - docs/delimiters-and-prefixes.md
222
221
  - docs/development.md
223
- - docs/restore.md
224
- - docs/setup.md
225
222
  - imap-backup.gemspec
226
223
  - lib/cli_coverage.rb
227
224
  - lib/email/mboxrd/message.rb
@@ -301,9 +298,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
301
298
  version: '2.6'
302
299
  required_rubygems_version: !ruby/object:Gem::Requirement
303
300
  requirements:
304
- - - ">"
301
+ - - ">="
305
302
  - !ruby/object:Gem::Version
306
- version: 1.3.1
303
+ version: '0'
307
304
  requirements: []
308
305
  rubygems_version: 3.3.7
309
306
  signing_key:
@@ -1,25 +0,0 @@
1
- Configuration is stored in a JSON file.
2
-
3
- The format is documented [here](files/config.md).
4
-
5
- # Folders
6
-
7
- By default, all folders are backed-up. You can override this by choosing
8
- specific folders.
9
-
10
- # Connection options
11
-
12
- You can override the parameters passed to `Net::IMAP` with `connection_options`.
13
-
14
- See the Ruby Standard Library documentation for `Net::IMAP` of details of [supported parameters](https://ruby-doc.org/stdlib-3.1.2/libdoc/net-imap/rdoc/Net/IMAP.html#method-c-new).
15
-
16
- Specifically, if you are using a self-signed certificate and get SSL errors, e.g.
17
- `certificate verify failed`, you can choose to not verify the TLS connection.
18
-
19
- Connection options can be entered via `imap-backup setup` as JSON.
20
-
21
- Choose the account, then 'modify connection options'.
22
-
23
- For example:
24
-
25
- ![Entering connection options as JSON](./images/entering-connection-options-as-json.png "Entering connection options as JSON")
data/docs/restore.md DELETED
@@ -1,28 +0,0 @@
1
- # FAQ
2
-
3
- # How does restore work?
4
-
5
- Backed-up emails are pushed to the IMAP server.
6
- If there are clashes, folders are renamed.
7
-
8
- # What are all these 'INBOX.12345' files?
9
-
10
- If, when the backup is launched, the IMAP server contains a folder with
11
- the same name, but different history to the local backup, the local
12
- emails cannot simply be added to the existing folder.
13
-
14
- In this case, a numeric suffix is added to the **local** folder,
15
- before it is restored.
16
-
17
- In this way, old and new emails are kept separate.
18
-
19
- # Will my email get overwritten?
20
-
21
- No.
22
-
23
- Emails are identified by folder and a specific email id. Any email that
24
- is already on the server is skipped.
25
-
26
- ## How do I restore to a different service?
27
-
28
- It is best to use the `migrate` command in this case.
data/docs/setup.md DELETED
@@ -1,5 +0,0 @@
1
- # HOWTOs
2
-
3
- ## Set the server for a Google Apps account
4
-
5
- Use `imap.gmail.com` as the 'server' setting.