slackup 0.0.5 → 0.0.6
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 +4 -4
- data/.gitignore +1 -1
- data/lib/slackup.rb +50 -0
- data/lib/slackup/version.rb +1 -1
- metadata +2 -3
- data/Gemfile.lock +0 -36
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 227551c418ddd3f0a6eeabe2fd4695302f336bad
|
4
|
+
data.tar.gz: d1df8e777fd3f2a3056cb52bee0e81c671851455
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6195c397e38e9c35938c59b83d36befd34ed4953d2eed8ff0c7e1a5636379294c7aad8e3da94a5b2b6c3c0c4b99ddd4fd2cc2c58829fc3f55f4141d4d8b22733
|
7
|
+
data.tar.gz: 255e5b4e693b5717f3533eeb5b97c6bb6d40af1782f8948f50444b3f5c595b130361ffba1f4ab5db6f2f3ec08e6deba492010dcb0a2efb8d724b1c0896ecd351
|
data/.gitignore
CHANGED
data/lib/slackup.rb
CHANGED
@@ -46,6 +46,11 @@ class Slackup
|
|
46
46
|
channels.each do |channel|
|
47
47
|
write_channel_messages(channel)
|
48
48
|
end
|
49
|
+
Dir.chdir(groups_dir) do
|
50
|
+
groups.each do |group|
|
51
|
+
write_group_messages(group)
|
52
|
+
end
|
53
|
+
end
|
49
54
|
write_stars
|
50
55
|
write_users
|
51
56
|
Dir.chdir(ims_dir) do
|
@@ -130,6 +135,35 @@ class Slackup
|
|
130
135
|
@channels ||= Slack.channels_list["channels"]
|
131
136
|
end
|
132
137
|
|
138
|
+
# {
|
139
|
+
# "ok": true,
|
140
|
+
# "groups": [
|
141
|
+
# {
|
142
|
+
# "id": "G0ABC",
|
143
|
+
# "name": "some-group",
|
144
|
+
# "is_group": true,
|
145
|
+
# "created": 1436923155,
|
146
|
+
# "creator": "UABC",
|
147
|
+
# "is_archived": false,
|
148
|
+
# "members": [
|
149
|
+
# ],
|
150
|
+
# "topic": {
|
151
|
+
# "value": "",
|
152
|
+
# "creator": "",
|
153
|
+
# "last_set": 0
|
154
|
+
# },
|
155
|
+
# "purpose": {
|
156
|
+
# "value": "Some group",
|
157
|
+
# "creator": "UABC",
|
158
|
+
# "last_set": 1437105751
|
159
|
+
# }
|
160
|
+
# }
|
161
|
+
# ]
|
162
|
+
# }
|
163
|
+
def groups
|
164
|
+
@groups ||= Slack.groups_list["groups"]
|
165
|
+
end
|
166
|
+
|
133
167
|
Im = Struct.new(:im_hash) do
|
134
168
|
def id; im_hash["id"]; end
|
135
169
|
|
@@ -174,6 +208,15 @@ class Slackup
|
|
174
208
|
end
|
175
209
|
end
|
176
210
|
|
211
|
+
# https://api.slack.com/methods/groups.history
|
212
|
+
def write_group_messages(group)
|
213
|
+
messages = Slack.groups_history(channel: group["id"], count: "1000")["messages"]
|
214
|
+
File.open(backup_filename(group["name"]), "w") do |f|
|
215
|
+
formatted_messages = format_group_messages(messages)
|
216
|
+
f.write serialize(formatted_messages)
|
217
|
+
end
|
218
|
+
end
|
219
|
+
|
177
220
|
def format_messages(messages)
|
178
221
|
messages.reverse.map { |msg|
|
179
222
|
if msg.has_key?("text") && msg.has_key?("user")
|
@@ -190,6 +233,7 @@ class Slackup
|
|
190
233
|
end
|
191
234
|
|
192
235
|
alias_method :format_channel_messages, :format_messages
|
236
|
+
alias_method :format_group_messages, :format_messages
|
193
237
|
alias_method :format_im_messages, :format_messages
|
194
238
|
|
195
239
|
# gets user name for an id, if mapping is known, else returns the input
|
@@ -235,6 +279,12 @@ class Slackup
|
|
235
279
|
@ims_dir
|
236
280
|
end
|
237
281
|
|
282
|
+
def groups_dir
|
283
|
+
@groups_dir ||= "groups"
|
284
|
+
FileUtils.mkdir_p(@groups_dir)
|
285
|
+
@groups_dir
|
286
|
+
end
|
287
|
+
|
238
288
|
def backup_filename(name)
|
239
289
|
"#{name}.yml"
|
240
290
|
end
|
data/lib/slackup/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: slackup
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Benjamin Fleischer
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-07-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: slack-api
|
@@ -69,7 +69,6 @@ files:
|
|
69
69
|
- ".gitignore"
|
70
70
|
- CODE_OF_CONDUCT.md
|
71
71
|
- Gemfile
|
72
|
-
- Gemfile.lock
|
73
72
|
- LICENSE
|
74
73
|
- README.md
|
75
74
|
- Rakefile
|
data/Gemfile.lock
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
slackup (0.0.5)
|
5
|
-
slack-api (~> 1.1, >= 1.1.3)
|
6
|
-
|
7
|
-
GEM
|
8
|
-
remote: https://rubygems.org/
|
9
|
-
specs:
|
10
|
-
eventmachine (1.0.7)
|
11
|
-
faraday (0.9.1)
|
12
|
-
multipart-post (>= 1.2, < 3)
|
13
|
-
faraday_middleware (0.9.1)
|
14
|
-
faraday (>= 0.7.4, < 0.10)
|
15
|
-
faye-websocket (0.9.2)
|
16
|
-
eventmachine (>= 0.12.0)
|
17
|
-
websocket-driver (>= 0.5.1)
|
18
|
-
multi_json (1.11.1)
|
19
|
-
multipart-post (2.0.0)
|
20
|
-
rake (10.4.2)
|
21
|
-
slack-api (1.1.6)
|
22
|
-
faraday (>= 0.7, < 0.10)
|
23
|
-
faraday_middleware (~> 0.8)
|
24
|
-
faye-websocket (~> 0.9.2)
|
25
|
-
multi_json (~> 1.0, >= 1.0.3)
|
26
|
-
websocket-driver (0.5.4)
|
27
|
-
websocket-extensions (>= 0.1.0)
|
28
|
-
websocket-extensions (0.1.2)
|
29
|
-
|
30
|
-
PLATFORMS
|
31
|
-
ruby
|
32
|
-
|
33
|
-
DEPENDENCIES
|
34
|
-
bundler (~> 1.9)
|
35
|
-
rake (~> 10.0)
|
36
|
-
slackup!
|