driftwood 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/lib/driftwood.rb +22 -0
- data/lib/driftwood/bigquery.rb +4 -0
- data/lib/driftwood/slack.rb +5 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 577ddadc21bbfaa22fec813d3b3129f6c2c22b14
|
4
|
+
data.tar.gz: 4c398d3e159fdc8c0b400ae25aff5d88ff6ac71f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 639d06b08ad608fe3a40acc9828ca7ef669c3fb77525f17ea6bdf87e96772bc264c178bd2c70aa57c8bc47bbb6ff1f365d3cdfa90445258f72064cd41e168305
|
7
|
+
data.tar.gz: a8dd564442f732181b712ce80eef36e441c6f9d7f04a9655a76043349304bb71868f8b08895eb584f722f30773886f81bc93d8e27fd950fbffdfe47d7223e14e
|
data/CHANGELOG.md
CHANGED
data/lib/driftwood.rb
CHANGED
@@ -46,6 +46,17 @@ class Driftwood < Sinatra::Base
|
|
46
46
|
user = @slack.normalize_user(event_data['user'])
|
47
47
|
$logger.info "Registered new user: #{user['name']} (#{user['real_name']})"
|
48
48
|
@bigquery.insert_user(user)
|
49
|
+
# send them welcome infos
|
50
|
+
|
51
|
+
end
|
52
|
+
|
53
|
+
@slack.register_handler('member_joined_channel') do |team_id, event_data|
|
54
|
+
user = @slack.user_info(event_data['team'], event_data['user'])
|
55
|
+
user = @slack.normalize_user(user)
|
56
|
+
channel = @slack.channel_name(event_data['team'], event_data['channel'])
|
57
|
+
$logger.info "User #{user['name']} (#{user['real_name']}) joined ##{channel}"
|
58
|
+
# send them welcome infos
|
59
|
+
|
49
60
|
end
|
50
61
|
|
51
62
|
@slack.register_handler('message') do |team_id, event_data|
|
@@ -66,6 +77,17 @@ class Driftwood < Sinatra::Base
|
|
66
77
|
$logger.error e.message
|
67
78
|
$logger.debug e.backtrace.join("\n")
|
68
79
|
end
|
80
|
+
|
81
|
+
loop do
|
82
|
+
sleep 86400 # Once a day; 60 * 60 * 24
|
83
|
+
begin
|
84
|
+
$logger.info "Purging deleted users..."
|
85
|
+
@bigquery.purge_deleted_users
|
86
|
+
rescue => e
|
87
|
+
$logger.error e.message
|
88
|
+
$logger.debug e.backtrace.join("\n")
|
89
|
+
end
|
90
|
+
end
|
69
91
|
end
|
70
92
|
|
71
93
|
end
|
data/lib/driftwood/bigquery.rb
CHANGED
@@ -126,6 +126,10 @@ class Driftwood::Bigquery
|
|
126
126
|
:creation => Time.now.strftime('%Y-%m-%d %H:%M:%S%z')).success?
|
127
127
|
end
|
128
128
|
|
129
|
+
def purge_deleted_users
|
130
|
+
@dataset.query('DELETE FROM slack_users WHERE deleted = true')
|
131
|
+
end
|
132
|
+
|
129
133
|
# Ensure that all users have creation dates. If they don't have one yet, assume now
|
130
134
|
# This will catch any users who've been created during downtime if we restart the service
|
131
135
|
def reconcile_user_creations()
|
data/lib/driftwood/slack.rb
CHANGED
@@ -219,7 +219,7 @@ class Driftwood::Slack
|
|
219
219
|
|
220
220
|
users.each do |row|
|
221
221
|
normalize_user(row)
|
222
|
-
end
|
222
|
+
end.compact
|
223
223
|
end
|
224
224
|
|
225
225
|
def messages(team_id, starting_from = 0)
|
@@ -287,12 +287,14 @@ class Driftwood::Slack
|
|
287
287
|
end
|
288
288
|
|
289
289
|
def normalize_user(user)
|
290
|
+
# Why slack? Why?
|
291
|
+
return if user['deleted']
|
292
|
+
|
290
293
|
preserve_fields = [ 'team_id', 'user_id', 'name', 'real_name','display_name',
|
291
294
|
'updated', 'deleted', 'tz', 'tz_offset', 'is_owner', 'is_admin',
|
292
295
|
'status_text', 'status_emoji', 'image_72', 'image_192',
|
296
|
+
'title', 'phone', 'skype', 'email',
|
293
297
|
]
|
294
|
-
# Why slack? Why?
|
295
|
-
preserve_fields.concat ['title', 'phone', 'skype', 'email'] unless user['deleted']
|
296
298
|
|
297
299
|
user['user_id'] = user.delete('id')
|
298
300
|
user['title'] = user['profile']['title']
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: driftwood
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben Ford
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-07-
|
11
|
+
date: 2018-07-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sinatra
|