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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b0ceb93290851608b58a6472c7497f38cdef8619
4
- data.tar.gz: e9cb1c47fafb28d01e7eeee8e315f9fd0876881f
3
+ metadata.gz: 227551c418ddd3f0a6eeabe2fd4695302f336bad
4
+ data.tar.gz: d1df8e777fd3f2a3056cb52bee0e81c671851455
5
5
  SHA512:
6
- metadata.gz: 20f018a877f22a921ae3b6e1a56238753a2ed9da2a162b9808d7669632fbcbe98c8a60b9ffd84b84e6b8d06eb8d3104a4270502388cca5a0f6dbb791a72188a6
7
- data.tar.gz: c54de583283fedccab0a5a8e65c8b5a06565f355c8aa3c609d6138e7c604b4867a709db0454c86146c42d30ee96d47dd9054af4899d49661a761e54f30eb2bdc
6
+ metadata.gz: 6195c397e38e9c35938c59b83d36befd34ed4953d2eed8ff0c7e1a5636379294c7aad8e3da94a5b2b6c3c0c4b99ddd4fd2cc2c58829fc3f55f4141d4d8b22733
7
+ data.tar.gz: 255e5b4e693b5717f3533eeb5b97c6bb6d40af1782f8948f50444b3f5c595b130361ffba1f4ab5db6f2f3ec08e6deba492010dcb0a2efb8d724b1c0896ecd351
data/.gitignore CHANGED
@@ -27,7 +27,7 @@ build/
27
27
 
28
28
  # for a library or gem, you might want to ignore these files since the code is
29
29
  # intended to run in multiple environments; otherwise, check them in:
30
- # Gemfile.lock
30
+ Gemfile.lock
31
31
  # .ruby-version
32
32
  # .ruby-gemset
33
33
 
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
@@ -1,3 +1,3 @@
1
1
  module Slackup
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
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.5
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-06-25 00:00:00.000000000 Z
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!