Class: T::Delete

Inherits:
Thor
  • Object
show all
Includes:
Requestable
Defined in:
lib/t/delete.rb

Constant Summary

Constants included from Requestable

Requestable::DEFAULT_HOST, Requestable::DEFAULT_PROTOCOL

Instance Method Summary collapse

Methods included from Requestable

#base_url, #client, #host, included, #protocol

Constructor Details

#initializeDelete

Returns a new instance of Delete.



13
14
15
16
# File 'lib/t/delete.rb', line 13

def initialize(*)
  super
  @rcfile = RCFile.instance
end

Instance Method Details

#block(user, *users) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/t/delete.rb', line 21

def block(user, *users)
  users.unshift(user)
  if options['id']
    users.map!(&:to_i)
  else
    users.map!(&:strip_ats)
  end
  users = users.threaded_map do |user|
    retryable(:tries => 3, :on => Twitter::Error::ServerError, :sleep => 0) do
      client.unblock(user, :include_entities => false)
    end
  end
  number = users.length
  say "@#{@rcfile.active_profile[0]} unblocked #{number} #{number == 1 ? 'user' : 'users'}."
  say
  say "Run `#{File.basename($0)} block #{users.map{|user| "@#{user.screen_name}"}.join(' ')}` to block."
end

#dm(direct_message_id, *direct_message_ids) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/t/delete.rb', line 41

def dm(direct_message_id, *direct_message_ids)
  direct_message_ids.unshift(direct_message_id)
  direct_message_ids.map!(&:strip_commas)
  direct_message_ids.each do |direct_message_id|
    unless options['force']
      direct_message = client.direct_message(direct_message_id.to_i, :include_entities => false)
      return unless yes? "Are you sure you want to permanently delete the direct message to @#{direct_message.recipient.screen_name}: \"#{direct_message.text}\"? [y/N]"
    end
    direct_message = client.direct_message_destroy(direct_message_id.to_i, :include_entities => false)
    say "@#{@rcfile.active_profile[0]} deleted the direct message sent to @#{direct_message.recipient.screen_name}: \"#{direct_message.text}\""
  end
end

#favorite(status_id, *status_ids) ⇒ Object



57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/t/delete.rb', line 57

def favorite(status_id, *status_ids)
  status_ids.unshift(status_id)
  status_ids.map!(&:strip_commas)
  status_ids.each do |status_id|
    unless options['force']
      status = client.status(status_id.to_i, :include_entities => false, :include_my_retweet => false, :trim_user => true)
      return unless yes? "Are you sure you want to remove @#{status.user.screen_name}'s status: \"#{status.text}\" from your favorites? [y/N]"
    end
    status = client.unfavorite(status_id.to_i, :include_entities => false)
    say "@#{@rcfile.active_profile[0]} unfavorited @#{status.user.screen_name}'s status: \"#{status.text}\""
  end
end

#list(list) ⇒ Object



74
75
76
77
78
79
80
81
82
# File 'lib/t/delete.rb', line 74

def list(list)
  list = list.to_i if options['id']
  list = client.list(list)
  unless options['force']
    return unless yes? "Are you sure you want to permanently delete the list \"#{list.name}\"? [y/N]"
  end
  list = client.list_destroy(list.id)
  say "@#{@rcfile.active_profile[0]} deleted the list \"#{list.name}\"."
end

#status(status_id, *status_ids) ⇒ Object



86
87
88
89
90
91
92
93
94
95
96
97
# File 'lib/t/delete.rb', line 86

def status(status_id, *status_ids)
  status_ids.unshift(status_id)
  status_ids.map!(&:strip_commas)
  status_ids.each do |status_id|
    unless options['force']
      status = client.status(status_id.to_i, :include_entities => false, :include_my_retweet => false, :trim_user => true)
      return unless yes? "Are you sure you want to permanently delete @#{status.user.screen_name}'s status: \"#{status.text}\"? [y/N]"
    end
    status = client.status_destroy(status_id.to_i, :include_entities => false, :trim_user => true)
    say "@#{@rcfile.active_profile[0]} deleted the status: \"#{status.text}\""
  end
end