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 +4 -4
- data/.semver +1 -1
- data/Gemfile +1 -0
- data/Gemfile.lock +12 -10
- data/README.org +13 -4
- data/examples/default.imap +6 -0
- data/imap-filter.gemspec +6 -3
- data/lib/imap-filter.rb +1 -0
- data/lib/imap-filter/dsl.rb +1 -0
- data/lib/imap-filter/functionality.rb +2 -0
- data/lib/imap-filter/monkeypatches.rb +12 -0
- metadata +16 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 2c399442d61849b86b6ab7f58a8d8e5e8e01566f
         | 
| 4 | 
            +
              data.tar.gz: d19e15efc6dc6fdd1ad25a547fd2abac18cc1d95
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: c8d3cc7800137f896ba21e5cb838b222379673a8d968060f1c530af56a572a2b75650bccba54336294725cefd6ddaeaa36dca1eebc694149ecc3877b43bf2bb4
         | 
| 7 | 
            +
              data.tar.gz: 76210364367885058ab7bb22adf455579383d60d580f598b53758b4b7e1ee11174c478034c1f6d18b91cfdd4ddad64ac6619e19f2436f5cafd8f06dff20a0afb
         | 
    
        data/.semver
    CHANGED
    
    
    
        data/Gemfile
    CHANGED
    
    
    
        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. | 
| 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. | 
| 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. | 
| 80 | 
            -
                  rspec-core (~> 2. | 
| 81 | 
            -
                  rspec-expectations (~> 2. | 
| 82 | 
            -
                  rspec-mocks (~> 2. | 
| 83 | 
            -
                rspec-core (2. | 
| 84 | 
            -
                rspec-expectations (2. | 
| 85 | 
            -
                  diff-lcs ( | 
| 86 | 
            -
                rspec-mocks (2. | 
| 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 | 
| 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 | 
            +
             | 
    
        data/examples/default.imap
    CHANGED
    
    | @@ -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. | 
| 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. | 
| 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- | 
| 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
    
    
    
        data/lib/imap-filter/dsl.rb
    CHANGED
    
    
| @@ -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 |  | 
    
        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. | 
| 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- | 
| 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
         |