pry-send_tweet.rb 0.6.0 → 0.7.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/CHANGELOG.md +43 -0
- data/Dockerfile +6 -4
- data/Gemfile +3 -1
- data/README.md +139 -52
- data/lib/pry-send_tweet.rb +31 -11
- data/lib/pry/send_tweet/{base_command.rb → commands/base_command.rb} +15 -6
- data/lib/pry/send_tweet/commands/read_tweets.rb +83 -0
- data/lib/pry/send_tweet/commands/send_tweet.rb +141 -0
- data/lib/pry/send_tweet/commands/twitter_action.rb +109 -0
- data/lib/pry/send_tweet/commands/twitter_action/delete_tweet_actions.rb +16 -0
- data/lib/pry/send_tweet/commands/twitter_action/follow_actions.rb +30 -0
- data/lib/pry/send_tweet/commands/twitter_action/like_actions.rb +17 -0
- data/lib/pry/send_tweet/commands/twitter_action/mute_actions.rb +20 -0
- data/lib/pry/send_tweet/commands/twitter_action/profile_actions.rb +42 -0
- data/lib/pry/send_tweet/commands/twitter_action/suggested_actions.rb +20 -0
- data/lib/pry/send_tweet/commands/twitter_search.rb +35 -0
- data/lib/pry/send_tweet/renderers/tweet_renderer.rb +78 -0
- data/lib/pry/send_tweet/version.rb +1 -1
- data/pry-send_tweet.gemspec +2 -1
- metadata +31 -10
- data/lib/pry/send_tweet/mixins/tweet_renderer.rb +0 -58
- data/lib/pry/send_tweet/read_tweets_command.rb +0 -78
- data/lib/pry/send_tweet/send_tweet_command.rb +0 -96
- data/lib/pry/send_tweet/twitter_action_command.rb +0 -184
@@ -1,184 +0,0 @@
|
|
1
|
-
class Pry::SendTweet::TwitterAction < Pry::SendTweet::BaseCommand
|
2
|
-
match 'twitter-action'
|
3
|
-
description 'Like, unlike, follow, unfollow and more'
|
4
|
-
banner <<-B
|
5
|
-
twitter-action OPTIONS
|
6
|
-
|
7
|
-
Like, unlike, follow, unfollow and more.
|
8
|
-
B
|
9
|
-
|
10
|
-
def options(o)
|
11
|
-
#
|
12
|
-
# Like / unlike tweets
|
13
|
-
#
|
14
|
-
o.on 'like-tweet=', 'Like a tweet'
|
15
|
-
o.on 'unlike-tweet=', 'Unlike a tweet'
|
16
|
-
#
|
17
|
-
# Follow / unfollow a user
|
18
|
-
#
|
19
|
-
o.on 'follow=', 'Follow a user'
|
20
|
-
o.on 'unfollow=', 'Unfollow a user'
|
21
|
-
#
|
22
|
-
# Delete tweets and reweets
|
23
|
-
#
|
24
|
-
o.on 'delete-retweet=', 'Delete a retweet'
|
25
|
-
o.on 'delete-tweet=', 'Delete a tweet'
|
26
|
-
#
|
27
|
-
# Retweet a tweet
|
28
|
-
#
|
29
|
-
o.on 'retweet=', 'Retweet a tweet'
|
30
|
-
#
|
31
|
-
# Profile management
|
32
|
-
#
|
33
|
-
o.on 'set-profile-bio', 'Set your profiles bio'
|
34
|
-
o.on 'set-profile-url=', 'Set the URL associated with your profile'
|
35
|
-
o.on 'set-profile-banner-image=', 'Set your profiles banner image'
|
36
|
-
o.on 'set-profile-name=', 'Set the name associated with your profile'
|
37
|
-
o.on 'set-profile-image=', 'Set your profile image'
|
38
|
-
end
|
39
|
-
|
40
|
-
def process
|
41
|
-
super
|
42
|
-
case
|
43
|
-
when opts.present?('like-tweet') then like_tweet
|
44
|
-
when opts.present?('unlike-tweet') then unlike_tweet
|
45
|
-
when opts.present?('follow') then follow_user
|
46
|
-
when opts.present?('unfollow') then unfollow_user
|
47
|
-
when opts.present?('delete-tweet') then delete_tweet
|
48
|
-
when opts.present?('delete-retweet') then delete_retweet
|
49
|
-
when opts.present?('retweet') then retweet_tweet
|
50
|
-
when opts.present?('set-profile-banner-image') then set_profile_banner_image
|
51
|
-
when opts.present?('set-profile-bio') then set_profile_bio
|
52
|
-
when opts.present?('set-profile-name') then set_profile_name
|
53
|
-
when opts.present?('set-profile-image') then set_profile_image
|
54
|
-
when opts.present?('set-profile-url') then set_profile_url(opts['set-profile-url'])
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
private
|
59
|
-
|
60
|
-
def set_profile_url(url)
|
61
|
-
if client.update_profile url: url
|
62
|
-
page "Profile URL updated"
|
63
|
-
else
|
64
|
-
raise Pry::CommandError, "Something went wrong"
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
def set_profile_image
|
69
|
-
path = opts['set-profile-image']
|
70
|
-
if client.update_profile_image path
|
71
|
-
page "Profile image updated"
|
72
|
-
else
|
73
|
-
raise Pry::CommandError, "Something went wrong"
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
def set_profile_banner_image
|
78
|
-
path = opts['set-profile-banner-image']
|
79
|
-
if client.update_profile_banner Base64.strict_encode64(File.binread(path))
|
80
|
-
page "Profile banner updated"
|
81
|
-
else
|
82
|
-
raise Pry::CommandError, "Something went wrong"
|
83
|
-
end
|
84
|
-
end
|
85
|
-
|
86
|
-
def set_profile_name
|
87
|
-
client.update_profile name: opts['set-profile-name']
|
88
|
-
page "Profile name updated"
|
89
|
-
end
|
90
|
-
|
91
|
-
def set_profile_bio
|
92
|
-
Tempfile.open('pry-send_tweet-set-bio') do |file|
|
93
|
-
Pry::Editor.new(_pry_).invoke_editor(file.path, 0)
|
94
|
-
file.rewind
|
95
|
-
client.update_profile description: file.read
|
96
|
-
page "Profile bio updated"
|
97
|
-
end
|
98
|
-
end
|
99
|
-
|
100
|
-
def retweet_tweet
|
101
|
-
tweet_url = opts['retweet']
|
102
|
-
if !client.retweet(tweet_url).empty?
|
103
|
-
page "Tweet retweeted"
|
104
|
-
else
|
105
|
-
raise Pry::CommandError, "Something went wrong"
|
106
|
-
end
|
107
|
-
end
|
108
|
-
|
109
|
-
def like_tweet
|
110
|
-
tweets = client.favorite(opts['like-tweet'])
|
111
|
-
if tweets.any?
|
112
|
-
render_tweets tweets, title: bold("Liked tweets"), timeout: false
|
113
|
-
else
|
114
|
-
page "Tweet was not liked. Maybe you liked that tweet already?"
|
115
|
-
end
|
116
|
-
end
|
117
|
-
|
118
|
-
def unlike_tweet
|
119
|
-
tweets = client.unfavorite(opts['unlike-tweet'])
|
120
|
-
if tweets.any?
|
121
|
-
render_tweets tweets, title: bold("Unliked tweets"), timeout: false
|
122
|
-
else
|
123
|
-
page "Tweet was not unliked. Maybe you haven't liked that tweet?"
|
124
|
-
end
|
125
|
-
end
|
126
|
-
|
127
|
-
def delete_retweet
|
128
|
-
tweets = client.unretweet(opts['delete-retweet'])
|
129
|
-
if tweets.any?
|
130
|
-
render_tweets tweets, title: bold("Deleted retweets"), timeout: false
|
131
|
-
else
|
132
|
-
page "Retweet was not deleted. Maybe you deleted it already?"
|
133
|
-
end
|
134
|
-
end
|
135
|
-
|
136
|
-
def delete_tweet
|
137
|
-
tweets = client.destroy_status(opts['delete-tweet'])
|
138
|
-
if tweets.any?
|
139
|
-
render_tweets tweets, title: bold("Deleted tweets"), timeout: false
|
140
|
-
else
|
141
|
-
page "Tweet was not deleted. Maybe you deleted it already?"
|
142
|
-
end
|
143
|
-
end
|
144
|
-
|
145
|
-
def follow_user
|
146
|
-
usernames = find_usernames_in(opts['follow'])
|
147
|
-
follows = client.follow(usernames)
|
148
|
-
if follows.empty?
|
149
|
-
page "Didn't follow #{list_usernames(usernames)}, " \
|
150
|
-
"you could be following them already."
|
151
|
-
else
|
152
|
-
page numbered_list(bold("Users you started following"), follows) {|user, index|
|
153
|
-
display_followed_or_unfollowed(user, index)
|
154
|
-
}
|
155
|
-
end
|
156
|
-
end
|
157
|
-
|
158
|
-
def unfollow_user
|
159
|
-
usernames = find_usernames_in(opts['unfollow'])
|
160
|
-
unfollows = client.unfollow(usernames)
|
161
|
-
if unfollows.empty?
|
162
|
-
page "Didn't unfollow #{list_usernames(usernames)} " \
|
163
|
-
"you might not be following them already."
|
164
|
-
else
|
165
|
-
page numbered_list(bold("Users you stopped following"), unfollows) {|user, index|
|
166
|
-
display_followed_or_unfollowed(user, index)
|
167
|
-
}
|
168
|
-
end
|
169
|
-
end
|
170
|
-
|
171
|
-
def display_followed_or_unfollowed(user, index)
|
172
|
-
sn = "@#{user.screen_name}"
|
173
|
-
"#{sn} #{bold(bright_blue('|'))} #{user.url}"
|
174
|
-
end
|
175
|
-
|
176
|
-
def list_usernames(ary)
|
177
|
-
find_usernames_in(*ary).map do |username|
|
178
|
-
bold("@#{username}")
|
179
|
-
end.join(', ')
|
180
|
-
end
|
181
|
-
|
182
|
-
Pry.commands.add_command(self)
|
183
|
-
Pry.commands.alias_command "on-twitter", "twitter-action"
|
184
|
-
end
|