imap-filter 0.0.2 → 0.0.3

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
  SHA1:
3
- metadata.gz: bd4508c320978c8e671d778d278acb636f4e53a4
4
- data.tar.gz: 2d7b0f4d4002bb82aaaf369e8d4d79b4f7ad6dea
3
+ metadata.gz: 2c399442d61849b86b6ab7f58a8d8e5e8e01566f
4
+ data.tar.gz: d19e15efc6dc6fdd1ad25a547fd2abac18cc1d95
5
5
  SHA512:
6
- metadata.gz: fdd58ff83f6b8ff66e942bb44f42eb11ebd68d508540fdc24ab25e3bd17658424edfe589cce2a55cb5978e9a43610512617e359f9f6d4858a067f827655f2e14
7
- data.tar.gz: 7f7acc334eb004be3eb61c71dd1d9a7c4c06db4816246a8e9097fc18e3ffda81c0fc93d0489e7da8293834e6885299d1709796ca59ebd216a7ee7333030bcd52
6
+ metadata.gz: c8d3cc7800137f896ba21e5cb838b222379673a8d968060f1c530af56a572a2b75650bccba54336294725cefd6ddaeaa36dca1eebc694149ecc3877b43bf2bb4
7
+ data.tar.gz: 76210364367885058ab7bb22adf455579383d60d580f598b53758b4b7e1ee11174c478034c1f6d18b91cfdd4ddad64ac6619e19f2436f5cafd8f06dff20a0afb
data/.semver CHANGED
@@ -1,5 +1,5 @@
1
1
  ---
2
2
  :major: 0
3
3
  :minor: 0
4
- :patch: 2
4
+ :patch: 3
5
5
  :special: ''
data/Gemfile CHANGED
@@ -5,6 +5,7 @@ gem "awesome_print", "~> 1"
5
5
  gem "text-table", "~> 1"
6
6
  gem "thor", "~> 0"
7
7
  gem "colorize", "~> 0"
8
+ gem "aspector", "~> 0"
8
9
 
9
10
  # Add dependencies to develop your gem here.
10
11
  # Include everything needed to run rake, tests, features, etc.
data/Gemfile.lock CHANGED
@@ -2,17 +2,18 @@ GEM
2
2
  remote: https://rubygems.org/
3
3
  specs:
4
4
  addressable (2.4.0)
5
+ aspector (0.14.0)
5
6
  awesome_print (1.7.0)
6
7
  binding_of_caller (0.7.2)
7
8
  debug_inspector (>= 0.0.1)
8
9
  builder (3.2.2)
9
- byebug (9.0.5)
10
+ byebug (9.0.6)
10
11
  coderay (1.1.1)
11
12
  colorize (0.8.1)
12
13
  debug_inspector (0.0.2)
13
14
  descendants_tracker (0.0.4)
14
15
  thread_safe (~> 0.3, >= 0.3.1)
15
- diff-lcs (1.1.3)
16
+ diff-lcs (1.2.5)
16
17
  docile (1.1.5)
17
18
  faraday (0.9.2)
18
19
  multipart-post (>= 1.2, < 3)
@@ -76,14 +77,14 @@ GEM
76
77
  rake (11.3.0)
77
78
  rdoc (3.12.2)
78
79
  json (~> 1.4)
79
- rspec (2.8.0)
80
- rspec-core (~> 2.8.0)
81
- rspec-expectations (~> 2.8.0)
82
- rspec-mocks (~> 2.8.0)
83
- rspec-core (2.8.0)
84
- rspec-expectations (2.8.0)
85
- diff-lcs (~> 1.1.2)
86
- rspec-mocks (2.8.0)
80
+ rspec (2.99.0)
81
+ rspec-core (~> 2.99.0)
82
+ rspec-expectations (~> 2.99.0)
83
+ rspec-mocks (~> 2.99.0)
84
+ rspec-core (2.99.2)
85
+ rspec-expectations (2.99.2)
86
+ diff-lcs (>= 1.1.3, < 2.0)
87
+ rspec-mocks (2.99.4)
87
88
  semver (1.0.1)
88
89
  simplecov (0.12.0)
89
90
  docile (~> 1.1.0)
@@ -100,6 +101,7 @@ PLATFORMS
100
101
  ruby
101
102
 
102
103
  DEPENDENCIES
104
+ aspector (~> 0)
103
105
  awesome_print (~> 1)
104
106
  bundler (~> 1)
105
107
  colorize (~> 0)
data/README.org CHANGED
@@ -223,7 +223,7 @@
223
223
  to do is search a single field, like in this case, the From
224
224
  field.
225
225
 
226
- Others are obvios: to:, cc:, subject: will all work here.
226
+ Others are obvios: to:, cc:, subject: will all work here.no-expand
227
227
 
228
228
  *** Environment variables
229
229
  | Variable | Description |
@@ -279,9 +279,11 @@
279
279
 
280
280
  ** Release Notes and Known Issues
281
281
  *** Release Notes
282
- | Version | Breif | Description |
283
- |---------+-----------------+-------------|
284
- | v0.0.2 | Initial Release | |
282
+ | Version | Breif | Description |
283
+ |---------+------------------------+--------------------------------------------------------------------------------------------------------------------------------|
284
+ | v0.0.2 | Initial Release | |
285
+ | v0.0.3 | Fixed bug with timeout | On some lengthy remove copy/move operations, the source account can timeout. We do a simple NOOP to keep the connection alive. |
286
+
285
287
  *** Known Issues
286
288
  | Date | Description |
287
289
  |------------+----------------------------------------------------------------|
@@ -319,3 +321,10 @@
319
321
  acc.imap.fetch(1..2, 'BODY[TEXT]') -- the entire text, flags as well.
320
322
  acc.imap.fetch(1..2, 'BODY[HEADER.FIELDS (SUBJECT)]')
321
323
  :END:
324
+
325
+
326
+ :Syswrite:
327
+ IOError: closed stream
328
+ from 2.3.1/lib/ruby/2.3.0/openssl/buffering.rb:322:in `syswrite'
329
+ :END:
330
+
@@ -49,6 +49,12 @@ filter :neat, 'yahoo:NEAT', :unseen do
49
49
  mark :seen
50
50
  end
51
51
 
52
+ filter :science, 'yahoo:Wissenschaft', :unseen do
53
+ cp 'gmx:Lists/Wissenschaft'
54
+ mark :seen
55
+ end
56
+
57
+
52
58
  filter :spam, 'gmx:INBOX', from: ['news.brgmedia.com', 'travel.hoteltravel-email.com'] do
53
59
  delete
54
60
  end
data/imap-filter.gemspec CHANGED
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: imap-filter 0.0.2 ruby lib
5
+ # stub: imap-filter 0.0.3 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "imap-filter"
9
- s.version = "0.0.2"
9
+ s.version = "0.0.3"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
13
13
  s.authors = ["Fred Mitchell"]
14
- s.date = "2016-09-25"
14
+ s.date = "2016-10-01"
15
15
  s.description = "\n imap-filter is a Ruby implementation of an IMAP filtering application.\n it can handle multiple IMAP accounts, and create IMAP folders automatically\n where none exists.\n\n The imap-filter DSL makes it easy to filter. You can also do \"dry-runs\"\n to make sure what happens is what is expected."
16
16
  s.email = "fred.mitchell@gmx.de"
17
17
  s.executables = ["imap-filter"]
@@ -56,6 +56,7 @@ Gem::Specification.new do |s|
56
56
  s.add_runtime_dependency(%q<text-table>, ["~> 1"])
57
57
  s.add_runtime_dependency(%q<thor>, ["~> 0"])
58
58
  s.add_runtime_dependency(%q<colorize>, ["~> 0"])
59
+ s.add_runtime_dependency(%q<aspector>, ["~> 0"])
59
60
  s.add_development_dependency(%q<rspec>, ["~> 2"])
60
61
  s.add_development_dependency(%q<yard>, ["~> 0"])
61
62
  s.add_development_dependency(%q<rdoc>, ["~> 3"])
@@ -74,6 +75,7 @@ Gem::Specification.new do |s|
74
75
  s.add_dependency(%q<text-table>, ["~> 1"])
75
76
  s.add_dependency(%q<thor>, ["~> 0"])
76
77
  s.add_dependency(%q<colorize>, ["~> 0"])
78
+ s.add_dependency(%q<aspector>, ["~> 0"])
77
79
  s.add_dependency(%q<rspec>, ["~> 2"])
78
80
  s.add_dependency(%q<yard>, ["~> 0"])
79
81
  s.add_dependency(%q<rdoc>, ["~> 3"])
@@ -93,6 +95,7 @@ Gem::Specification.new do |s|
93
95
  s.add_dependency(%q<text-table>, ["~> 1"])
94
96
  s.add_dependency(%q<thor>, ["~> 0"])
95
97
  s.add_dependency(%q<colorize>, ["~> 0"])
98
+ s.add_dependency(%q<aspector>, ["~> 0"])
96
99
  s.add_dependency(%q<rspec>, ["~> 2"])
97
100
  s.add_dependency(%q<yard>, ["~> 0"])
98
101
  s.add_dependency(%q<rdoc>, ["~> 3"])
data/lib/imap-filter.rb CHANGED
@@ -6,6 +6,7 @@ require 'colorize'
6
6
  require 'awesome_print'
7
7
  require 'net/imap'
8
8
  require 'forwardable'
9
+ require 'aspector'
9
10
 
10
11
  module ImapFilter
11
12
  end
@@ -77,6 +77,7 @@ module ImapFilter
77
77
  else
78
78
  @imap = Net::IMAP.new(fqdn, ssl: use_ssl)
79
79
  end
80
+ @imap.account = self
80
81
 
81
82
  print "\n *** auth #{userid} pass #{pass}...".light_cyan unless _options[:verbose] < 2
82
83
  imap.authenticate(auth_type, userid, pass)
@@ -79,6 +79,7 @@ module ImapFilter
79
79
  end
80
80
  raw = fdat.attr['ENVELOPE'].email_header + fdat.attr[BODYTEXT]
81
81
  dest_acc.imap.append dest_mbox, raw, fdat.attr['FLAGS']
82
+ acc.imap.noop # just to keep this account open TODO: we do not need a noop on every iteration
82
83
  end
83
84
  rescue => e
84
85
  puts "ERROR: #{e} -- perhaps you did a move or delete operation before copy?".light_red
@@ -116,6 +117,7 @@ module ImapFilter
116
117
 
117
118
  def mark *flags
118
119
  puts " mark #{flags} in #{acc.name}".light_blue unless _options[:verbose] < 1
120
+ puts "DISCONNECTED".light_red if acc.imap.disconnected?
119
121
  acc.imap.store seq, '+FLAGS.SILENT', flags unless seq.empty? or _options[:dryrun]
120
122
  end
121
123
 
@@ -34,4 +34,16 @@ class Net::IMAP::Envelope
34
34
  end
35
35
  end
36
36
 
37
+ class Net::IMAP
38
+ def account= acc
39
+ @account = acc
40
+ end
41
+ def account
42
+ @account
43
+ end
44
+ end
45
+
46
+ class IMAPHooks < Aspector::Base
47
+ default private_methods: true
48
+ end
37
49
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: imap-filter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fred Mitchell
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-25 00:00:00.000000000 Z
11
+ date: 2016-10-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: semver
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: aspector
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: rspec
85
99
  requirement: !ruby/object:Gem::Requirement