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 +4 -4
- data/bin/flowpi.rb +4 -1
- data/lib/flowpi.rb +17 -4
- data/lib/flowpi/version.rb +3 -0
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bba6e25feb3930784e93a932a2a7e5a2440a1698
|
4
|
+
data.tar.gz: 974dab7df3cae2a26f707c099b80630439069b81
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
46
|
+
logger.info { "Speaking message: #{message.content}" }
|
34
47
|
%x(espeak "#{message.content}" 2>/dev/null)
|
35
48
|
else
|
36
|
-
|
49
|
+
logger.debug { "Ignoring message: #{message.content}" }
|
37
50
|
end
|
38
51
|
end
|
39
52
|
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.
|
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
|