trackchange 0.5.4 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 7fff88084507d3bb6491075831326bd746ff5654
4
+ data.tar.gz: eafe79d242ae9951be8db6abf65ae6be16b92264
5
+ SHA512:
6
+ metadata.gz: 6e39519d1ebdfb374a85a8860699cfbd0bd0eae293f01c1c10cd58f70e63170e7254c4ee51f2fca24bdae4dcda8a9a95188cf2ff780471736ff434b959ec3e5e
7
+ data.tar.gz: 8dd95fa1e90352a578ff59b4c435fed3a070606414d7fabaede742ef999b84dee2a6124321085d994b3b78be9ae2162f2eec8db9f46bfa25bd53c5181d80bc6b
data/README.md CHANGED
@@ -27,6 +27,9 @@ Or install it yourself as:
27
27
  # Set path to store RSS feed
28
28
  trackchange rss <path>
29
29
 
30
+ # Set slack hook
31
+ trackchange slack <url>
32
+
30
33
  # Add site
31
34
  trackchange add <url>
32
35
 
@@ -64,7 +67,7 @@ with. (Unfortunately pandoc only works with http, not with https and
64
67
  does not follow redirects, hence the version with curl.)
65
68
 
66
69
  lynx -dump '%url%' | uniq | sed -e "/References/,/\s+[0-9]+\. h/d"
67
-
70
+
68
71
  lynx -nolist -dump '%url%' | uniq
69
72
 
70
73
  pandoc '%url%' -t markdown
@@ -75,6 +78,17 @@ does not follow redirects, hence the version with curl.)
75
78
 
76
79
  phantomjs %queryscript% '%url%' '%selector%'
77
80
 
81
+ ### slack_hook (optional)
82
+
83
+ ...
84
+
85
+ ### slack (optional)
86
+
87
+ Allows to change the defaults...
88
+
89
+ - channel
90
+ - username
91
+ - icon_emoji
78
92
 
79
93
  ### rss_path (optional)
80
94
 
@@ -39,6 +39,11 @@ module Trackchange
39
39
  store_config!
40
40
  end
41
41
 
42
+ def slack
43
+ config.slack_hook = args.first
44
+ store_config!
45
+ end
46
+
42
47
  def add
43
48
  config.sites ||= []
44
49
  config.sites |= [ { url: args.first } ]
@@ -2,6 +2,8 @@ require 'logger'
2
2
  require 'fileutils'
3
3
  require 'tempfile'
4
4
  require 'rss'
5
+ require 'faraday'
6
+ require 'json'
5
7
 
6
8
  module Trackchange
7
9
  class Probe < Struct.new(:config)
@@ -16,6 +18,20 @@ module Trackchange
16
18
  config.sites.each { |site| probe(site) }
17
19
  end
18
20
 
21
+ def faraday
22
+ @faraday ||= Faraday.new do |f|
23
+ f.request :url_encoded
24
+ f.adapter Faraday.default_adapter
25
+ end
26
+ end
27
+
28
+ def slack_defaults
29
+ {
30
+ 'username' => 'trackchange',
31
+ 'icon_emoji' => ':fax:'
32
+ }
33
+ end
34
+
19
35
  def probe(site)
20
36
  url = site[:url]
21
37
  fname = url.sub(%r{https?://}, '').tr_s('/?&', '...')
@@ -69,6 +85,12 @@ module Trackchange
69
85
 
70
86
  return if skip_notification
71
87
 
88
+ if slack_hook = config.slack_hook
89
+ message = slack_defaults.merge(config.slack.to_h)
90
+ message['text'] = "#{url}\n\n#{result}"
91
+ faraday.post slack_hook, payload: JSON.unparse(message)
92
+ end
93
+
72
94
  if email = config.email # send email
73
95
  logger.info "sending notification to #{email}"
74
96
  begin
@@ -1,3 +1,3 @@
1
1
  module Trackchange
2
- VERSION = "0.5.4"
2
+ VERSION = "0.6.0"
3
3
  end
@@ -19,6 +19,7 @@ Gem::Specification.new do |spec|
19
19
  spec.require_paths = ["lib"]
20
20
 
21
21
  spec.add_dependency "cronedit"
22
+ spec.add_dependency "faraday"
22
23
 
23
24
  spec.add_development_dependency "bundler", "~> 1.3"
24
25
  spec.add_development_dependency "rake"
metadata CHANGED
@@ -1,62 +1,69 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trackchange
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.4
5
- prerelease:
4
+ version: 0.6.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - phil
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2016-01-06 00:00:00.000000000 Z
11
+ date: 2018-03-29 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: cronedit
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: faraday
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
28
39
  - !ruby/object:Gem::Version
29
40
  version: '0'
30
41
  - !ruby/object:Gem::Dependency
31
42
  name: bundler
32
43
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
44
  requirements:
35
- - - ~>
45
+ - - "~>"
36
46
  - !ruby/object:Gem::Version
37
47
  version: '1.3'
38
48
  type: :development
39
49
  prerelease: false
40
50
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
51
  requirements:
43
- - - ~>
52
+ - - "~>"
44
53
  - !ruby/object:Gem::Version
45
54
  version: '1.3'
46
55
  - !ruby/object:Gem::Dependency
47
56
  name: rake
48
57
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
58
  requirements:
51
- - - ! '>='
59
+ - - ">="
52
60
  - !ruby/object:Gem::Version
53
61
  version: '0'
54
62
  type: :development
55
63
  prerelease: false
56
64
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
65
  requirements:
59
- - - ! '>='
66
+ - - ">="
60
67
  - !ruby/object:Gem::Version
61
68
  version: '0'
62
69
  description: Track change of websites
@@ -67,7 +74,7 @@ executables:
67
74
  extensions: []
68
75
  extra_rdoc_files: []
69
76
  files:
70
- - .gitignore
77
+ - ".gitignore"
71
78
  - Gemfile
72
79
  - LICENSE.txt
73
80
  - README.md
@@ -83,32 +90,25 @@ files:
83
90
  homepage: ''
84
91
  licenses:
85
92
  - MIT
93
+ metadata: {}
86
94
  post_install_message:
87
95
  rdoc_options: []
88
96
  require_paths:
89
97
  - lib
90
98
  required_ruby_version: !ruby/object:Gem::Requirement
91
- none: false
92
99
  requirements:
93
- - - ! '>='
100
+ - - ">="
94
101
  - !ruby/object:Gem::Version
95
102
  version: '0'
96
- segments:
97
- - 0
98
- hash: -4087208790757576818
99
103
  required_rubygems_version: !ruby/object:Gem::Requirement
100
- none: false
101
104
  requirements:
102
- - - ! '>='
105
+ - - ">="
103
106
  - !ruby/object:Gem::Version
104
107
  version: '0'
105
- segments:
106
- - 0
107
- hash: -4087208790757576818
108
108
  requirements: []
109
109
  rubyforge_project:
110
- rubygems_version: 1.8.23
110
+ rubygems_version: 2.4.5.1
111
111
  signing_key:
112
- specification_version: 3
112
+ specification_version: 4
113
113
  summary: Track change of websites
114
114
  test_files: []