slackpolice 0.1.0 → 0.2.0
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/README.md +9 -15
- data/lib/slackpolice/cli.rb +17 -0
- data/lib/slackpolice/client.rb +27 -0
- data/lib/slackpolice/version.rb +1 -1
- 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: 6524a33282ba911981e607533a6231aa5f076875
|
4
|
+
data.tar.gz: 920a22d1ff49e47ef27ccc596066db5bc45511c1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4231568902960edf2e31c1fa4b00a986364d1cd7e61727377f3613877fdbd67551d25723534aae16df9e16a26413f7390fbea319f8ada456b63e7fe15e269575
|
7
|
+
data.tar.gz: c492b25593a32532057ab814928123889999196149f43c4785e1c1165f2d03a2bb6f5173aafaf4a1caa726b70640889ca482a8b7582903816239594c18736957
|
data/README.md
CHANGED
@@ -1,28 +1,22 @@
|
|
1
1
|
# Slackpolice
|
2
2
|
|
3
|
-
|
3
|
+
Slackpolice is Slack administration tools.
|
4
4
|
|
5
|
-
|
5
|
+
* Archive non members channels.
|
6
|
+
* Delete old files.
|
6
7
|
|
7
8
|
## Installation
|
8
9
|
|
9
|
-
Add this line to your application's Gemfile:
|
10
|
-
|
11
|
-
```ruby
|
12
|
-
gem 'slackpolice'
|
13
|
-
```
|
14
|
-
|
15
|
-
And then execute:
|
16
|
-
|
17
|
-
$ bundle
|
18
|
-
|
19
|
-
Or install it yourself as:
|
20
|
-
|
21
10
|
$ gem install slackpolice
|
22
11
|
|
23
12
|
## Usage
|
24
13
|
|
25
|
-
|
14
|
+
```
|
15
|
+
Commands:
|
16
|
+
slackpolice archive --api-token=API_TOKEN # archive no members channels
|
17
|
+
slackpolice help [COMMAND] # Describe available commands or one specific command
|
18
|
+
slackpolice remove_files --api-token=API_TOKEN # remove expired files
|
19
|
+
```
|
26
20
|
|
27
21
|
## Development
|
28
22
|
|
data/lib/slackpolice/cli.rb
CHANGED
@@ -12,6 +12,23 @@ module Slackpolice
|
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
|
+
desc :remove_files, "remove expired files"
|
16
|
+
method_option :api_token, type: :string, required: true
|
17
|
+
method_option :days, type: :numeric, default: 7
|
18
|
+
method_option :dry_run, type: :boolean, default: false
|
19
|
+
def remove_files
|
20
|
+
dt = Date.today.prev_day(options['days'])
|
21
|
+
if options[:dry_run]
|
22
|
+
client.expired_files(dt).each do |f|
|
23
|
+
puts "deleted: #{Time.at(f['created'])} #{f['title']} (dry-run)"
|
24
|
+
end
|
25
|
+
else
|
26
|
+
client.delete_expired_files(dt).each do |f|
|
27
|
+
puts "deleted: #{Time.at(f['created'])} #{f['title']}"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
15
32
|
private
|
16
33
|
|
17
34
|
def client
|
data/lib/slackpolice/client.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'slack-api-wrapper'
|
2
2
|
require 'logger'
|
3
|
+
require 'date'
|
3
4
|
|
4
5
|
module Slackpolice
|
5
6
|
class Client
|
@@ -17,6 +18,16 @@ module Slackpolice
|
|
17
18
|
resp = @client.channels_archive('channel' => c['id'])
|
18
19
|
archives << c if resp['ok']
|
19
20
|
end
|
21
|
+
archives
|
22
|
+
end
|
23
|
+
|
24
|
+
def delete_expired_files(ts_to = Date.today.prev_day(7))
|
25
|
+
Enumerator.new do |y|
|
26
|
+
expired_files(ts_to).each do |f|
|
27
|
+
resp = @client.files_delete('file' => f['id'])
|
28
|
+
y << f if resp['ok']
|
29
|
+
end
|
30
|
+
end
|
20
31
|
end
|
21
32
|
|
22
33
|
def no_members_channels
|
@@ -24,5 +35,21 @@ module Slackpolice
|
|
24
35
|
c['num_members'] == 0 && c['is_archived'] == false
|
25
36
|
end
|
26
37
|
end
|
38
|
+
|
39
|
+
def expired_files(ts_to = Date.today.prev_day(7))
|
40
|
+
page = 1
|
41
|
+
Enumerator.new do |y|
|
42
|
+
begin
|
43
|
+
resp = @client.files_list('ts_to' => ts_to.to_time.to_i, 'page' => page)
|
44
|
+
if resp['ok']
|
45
|
+
pages = resp['paging']['pages']
|
46
|
+
resp['files'].map do |file|
|
47
|
+
y << file
|
48
|
+
end
|
49
|
+
end
|
50
|
+
page += 1
|
51
|
+
end while pages >= page && 100 > page # over 100 page is not found. api bug?
|
52
|
+
end
|
53
|
+
end
|
27
54
|
end
|
28
55
|
end
|
data/lib/slackpolice/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: slackpolice
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ISOBE Kazuhiko
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-12-
|
11
|
+
date: 2015-12-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|