flowpi 0.1.0 → 0.1.2

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: 71e2b841556a2b641e396afb43d484a6d9c416b8
4
- data.tar.gz: af27106e8b60e08440bd013c41311830e5e2fd52
3
+ metadata.gz: bba6e25feb3930784e93a932a2a7e5a2440a1698
4
+ data.tar.gz: 974dab7df3cae2a26f707c099b80630439069b81
5
5
  SHA512:
6
- metadata.gz: c91fb02ea594be15b289f0d2c5b70f24deb693c1886ca7e1cc787eb2b301bc33c4b67dee45907e195abf1459a187bcd039b9d9e6732766773c908af0c3a44c8c
7
- data.tar.gz: 4e5d5bdf448334ac2d57a8b53f91ebec3eb2d26d942cec06798c544932b80a743700e8dc9093d3f0332a017b8994c2a35497e211d38bffb53f299560aa94926e
6
+ metadata.gz: 8d807a9474b2f7bf2ce79279296fb618b5c62fa53c37c1ddcb43a47f1aaad51af0dccea36a10dcedca2af3d4b7695ea8cef87f9987acc791605f6d5272a08342
7
+ data.tar.gz: b2c5daa4db7df9d91188fd04cd2e3594245748c3d94279f9a0fad7b20f16b4b0eef0a45ae8bc8ec8f44d38d5cd240eb35ac801d7dc83277b279f9a205f02c7f4
data/bin/flowpi.rb CHANGED
@@ -7,5 +7,8 @@ require 'flowpi'
7
7
  Flowpi::Server.new(
8
8
  token: ENV.fetch('FLOW_TOKEN'),
9
9
  filter: ENV.fetch('FLOW_FILTER'),
10
- message_matcher: Regexp.new(ENV.fetch('FLOW_MATCH')),
10
+ message_matcher: Regexp.new(ENV.fetch('FLOW_MATCH'), Regexp::IGNORECASE),
11
+ log_file: ENV.fetch('FLOW_LOG_FILE', nil),
12
+ log_level: ENV.fetch('FLOW_LOG_LEVEL', 'WARN'),
13
+ log_date_format: ENV['FLOW_LOG_DATE_FORMAT'],
11
14
  ).run
data/lib/flowpi.rb CHANGED
@@ -1,15 +1,28 @@
1
1
  require 'em-http'
2
2
  require 'json'
3
+ require 'logger'
3
4
 
4
5
  module Flowpi
5
- VERSION = '0.1.0'
6
-
7
6
  class Server
7
+ attr_reader :logger
8
+
8
9
  def initialize(options = {})
9
10
  @options = options
11
+ if @options[:log_file].nil? || @options[:log_file].empty?
12
+ @logger = ::Logger.new(STDOUT)
13
+ else
14
+ @logger = ::Logger.new(@options[:log_file])
15
+ end
16
+ @logger.level = ::Logger.const_get(@options.fetch(:log_level, 'WARN'))
17
+ @logger.datetime_format = @options.fetch(:log_date_format, '%Y-%m-%d %H:%M:%S')
18
+
19
+ trap "SIGINT" do
20
+ exit 130
21
+ end
10
22
  end
11
23
 
12
24
  def run
25
+ logger.info "Starting Flowpi..."
13
26
  http = EM::HttpRequest.new(
14
27
  "https://stream.flowdock.com/flows?filter=#{@options[:filter]}",
15
28
  :keepalive => true, :connect_timeout => 0, :inactivity_timeout => 0)
@@ -30,10 +43,10 @@ module Flowpi
30
43
  message = Flowpi::Message.new.parse(line)
31
44
  if message.has_content?
32
45
  if message.content.match(@options[:message_matcher])
33
- puts "Speaking message: #{message.content}"
46
+ logger.info { "Speaking message: #{message.content}" }
34
47
  %x(espeak "#{message.content}" 2>/dev/null)
35
48
  else
36
- puts "Ignoring message: #{message.content}"
49
+ logger.debug { "Ignoring message: #{message.content}" }
37
50
  end
38
51
  end
39
52
  end
@@ -0,0 +1,3 @@
1
+ module Flowpi
2
+ VERSION = '0.1.2'
3
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flowpi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Olle Johansson
@@ -75,6 +75,7 @@ extra_rdoc_files: []
75
75
  files:
76
76
  - bin/flowpi.rb
77
77
  - lib/flowpi.rb
78
+ - lib/flowpi/version.rb
78
79
  homepage: https://github.com/ollej/flowpi
79
80
  licenses:
80
81
  - MIT