async-rest 0.7.1 → 0.7.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: df246c63c9561d2c40b8100b86e5aa65968f857e94465f62dfe3a12bd68d7767
4
- data.tar.gz: 84a3a25386017801e9e373be1bfdf60319d5fdc159e46f148fefc204d41fdacc
3
+ metadata.gz: 3adbfb21cd205efe945c0b0197e5eb84d7d70c132038537ac55e1328b0105f11
4
+ data.tar.gz: 22e7085cf862cea15fdcff5d539ca788dc127746938509e2a8e79d421c643c82
5
5
  SHA512:
6
- metadata.gz: f59fefa922f38bc47922209e258e6b906146f843c3c9f415f52df98cec1d2e30e2ead2cf7aee5e0a8be42f6eb43451dc5b9247d5c0227e1edb129e84343d7a86
7
- data.tar.gz: 708cdc890a4759c20bdd26ad5a0370a34dfbd2ea7dd601a666a827e09e3fa213c77fa83f39b25b61dc1e09f7506df058d48c9c0cedc15affb2170b900d519981
6
+ metadata.gz: 03af9605664643cb7f6e5a8d7adce8d2cbc265836749bb2652cb6ec329b68c52653e2f207947b187d4480976e7d9dbf6ea056569d72ce508b3f13e1b076dde41
7
+ data.tar.gz: 20c7bab7de8886462e3077ecbf6e30967ade6025b961d14e249b72d27a4f296267e96ffdf46c2ee19bc8ab65235782d043cc76227d9e168b70a223c9dc00dc4e
@@ -0,0 +1,56 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'pry'
4
+ require 'set'
5
+
6
+ def rate_limited?(response)
7
+ pp response
8
+
9
+ response[:error] == "ratelimited"
10
+ end
11
+
12
+ require 'async/rest/resource'
13
+
14
+ URL = "https://slack.com/api"
15
+ TOKEN = "xoxp-your-api-token"
16
+
17
+ Async::REST::Resource.for(URL) do |resource|
18
+ authenticated = resource.with(parameters: {token: TOKEN})
19
+ delete = authenticated.with(path: "chat.delete")
20
+
21
+ page = 1
22
+ while true
23
+ search = authenticated.with(path: "search.messages", parameters: {page: page, count: 100, query: "from:@username before:2019-02-15"})
24
+ representation = search.get
25
+
26
+ messages = representation.value[:messages]
27
+ matches = messages[:matches]
28
+
29
+ puts "Found #{matches.count} messages on page #{page}..."
30
+
31
+ break if matches.empty?
32
+
33
+ matches.each do |message|
34
+ text = message[:text]
35
+ channel_id = message[:channel][:id]
36
+ channel_name = message[:channel][:name]
37
+ timestamp = message[:ts]
38
+
39
+ pp [timestamp, channel_name, text]
40
+
41
+ message_delete = Async::REST::Representation.new(
42
+ delete.with(parameters: {channel: channel_id, ts: timestamp})
43
+ )
44
+
45
+ response = message_delete.post
46
+ if rate_limited?(response.read)
47
+ puts "Rate limiting..."
48
+ Async::Task.current.sleep 1
49
+ end
50
+ end
51
+
52
+ page += 1
53
+ end
54
+ end
55
+
56
+ puts "Done"
@@ -24,6 +24,8 @@ require 'async/http/accept_encoding'
24
24
  require 'async/http/reference'
25
25
  require 'async/http/url_endpoint'
26
26
 
27
+ require_relative 'representation'
28
+
27
29
  module Async
28
30
  module REST
29
31
  # The key abstraction of information in REST is a resource. Any information that can be named can be a resource: a document or image, a temporal service (e.g. "today's weather in Los Angeles"), a collection of other resources, a non-virtual object (e.g. a person), and so on. In other words, any concept that might be the target of an author's hypertext reference must fit within the definition of a resource. A resource is a conceptual mapping to a set of entities, not the entity that corresponds to the mapping at any particular point in time.
@@ -20,6 +20,6 @@
20
20
 
21
21
  module Async
22
22
  module REST
23
- VERSION = "0.7.1"
23
+ VERSION = "0.7.2"
24
24
  end
25
25
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: async-rest
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.1
4
+ version: 0.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-02-09 00:00:00.000000000 Z
11
+ date: 2019-02-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: async-http
@@ -123,6 +123,7 @@ files:
123
123
  - README.md
124
124
  - Rakefile
125
125
  - async-rest.gemspec
126
+ - examples/slack/clean.rb
126
127
  - lib/async/rest.rb
127
128
  - lib/async/rest/representation.rb
128
129
  - lib/async/rest/resource.rb