social_cleaner 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/README +1 -1
  2. data/lib/social_cleaner/twitr.rb +44 -28
  3. metadata +3 -3
data/README CHANGED
@@ -14,7 +14,7 @@ require 'rubygems'
14
14
  gem 'social_cleaner'
15
15
  require 'social_cleaner'
16
16
 
17
- cleaner = SocialCleaner::Twitr.new(consumer_token, consumer_secret, access_token, access_secret, delete_after_days)
17
+ cleaner = SocialCleaner::Twitr.new("consumer_token", "consumer_secret", "access_token", "access_secret", delete_after_days)
18
18
  cleaner.delete_messages
19
19
 
20
20
 
@@ -2,49 +2,68 @@ module SocialCleaner
2
2
 
3
3
  class Twitr
4
4
 
5
+ # parameters
5
6
  attr_accessor :consumer_token, :consumer_secret, :access_token, :access_secret, :delete_after_days
6
7
 
8
+ # client object
9
+ attr_accessor :client
10
+
11
+ # tweet id's to be deleted
12
+ attr_accessor :expire_ids, :expire_before
13
+
14
+
7
15
  def initialize(consumer_token, consumer_secret, access_token, access_secret, delete_after_days)
8
- self.consumer_token = consumer_token
9
- self.consumer_secret = consumer_secret
10
- self.access_token = access_token
11
- self.access_secret = access_secret
12
- self.delete_after_days = delete_after_days
16
+ consumer_token = consumer_token
17
+ consumer_secret = consumer_secret
18
+ access_token = access_token
19
+ access_secret = access_secret
20
+ delete_after_days = delete_after_days
21
+ expire_ids = []
13
22
  end
14
23
 
15
- def delete_messages
24
+
25
+ def create_client
16
26
  # Let's get a Twitter Client created
17
27
  oauth = Twitter::OAuth.new(consumer_token, consumer_secret)
18
28
  oauth.authorize_from_access(access_token, access_secret)
19
29
 
20
30
  client = Twitter::Base.new(oauth)
21
-
22
- # Expire deadline
23
- expire_before = Time.now - (delete_after_days * 60 * 60 * 24)
24
- expire_ids = []
25
-
26
- $stderr.puts "Expiring all Twitter updates prior to #{expire_before.to_s}."
27
-
28
- # Iterate through timeline
29
- # The old tweet id's don't contain a timestamp. maybe implement this for later?
30
- timeline = client.user_timeline
31
- timeline.each do |status|
31
+ end
32
+
33
+
34
+ def add_tweets_to_queue(statusses)
35
+ statusses.each do |status|
32
36
  if Time.parse(status["created_at"]) < expire_before
33
37
  $stderr.puts "Queueing tweet delete status ID #{status["id"]} created at #{status["created_at"]} (#{status["text"]})."
34
38
  $stdout.puts "#{status["id"]}\t\t#{status["created_at"]}\t\t#{status["text"]}"
35
39
  expire_ids.push(status["id"])
36
40
  end
37
41
  end
42
+ end
38
43
 
39
- retweets = client.retweeted_by_me
40
- retweets.each do |retweet|
41
- if Time.parse(status["created_at"]) < expire_before
42
- $stderr.puts "Queueing retweet delete status ID #{status["id"]} created at #{status["created_at"]} (#{status["text"]})."
43
- $stdout.puts "#{status["id"]}\t\t#{status["created_at"]}\t\t#{status["text"]}"
44
- expire_ids.push(status["id"])
45
- end
44
+
45
+ def delete_tweets
46
+ expire_ids.each do |delete_status|
47
+ $stderr.puts "Deleting #{delete_status}..."
48
+ client.status_destroy(delete_status)
46
49
  end
50
+ end
51
+
52
+
53
+ def delete_messages
54
+ # Create client object
55
+ create_client
56
+
57
+ # Expire deadline
58
+ expire_before = Time.now - (delete_after_days * 60 * 60 * 24)
59
+
60
+ $stderr.puts "Expiring all Twitter updates prior to #{expire_before.to_s}."
47
61
 
62
+ # Iterate through timeline
63
+ # The old tweet id's don't contain a timestamp. maybe implement this for later?
64
+ add_tweets_to_queue(client.user_timeline)
65
+ add_tweets_to_queue(client.retweeted_by_me)
66
+
48
67
  # Now we'll sort the array, this will have the affect of putting the oldest items first in
49
68
  # the list to be deleted.
50
69
  expire_ids.sort!
@@ -53,10 +72,7 @@ module SocialCleaner
53
72
 
54
73
  # Now let's delete the stuff
55
74
  # Note: the delete method is not rate limited.
56
- expire_ids.each do |delete_status|
57
- $stderr.puts "Deleting #{delete_status}..."
58
- client.status_destroy(delete_status)
59
- end
75
+ delete_tweets
60
76
  end
61
77
  end
62
78
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: social_cleaner
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 2
10
- version: 0.0.2
9
+ - 3
10
+ version: 0.0.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - "Micha\xC3\xABl Rigart"