flowpi 0.1.0 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
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